【Kubernetes 企业项目实战】09、Rancher 2.6 管理 k8s-v1.23 及以上版本高可用集群
目录
一、Rancher 介绍
1.1Rancher简介
1.2 Rancher 和 k8s 的区别
1.3 Rancher 企业使用案例
二、安装 Rancher
2.1 初始化环境
2.2 安装 Rancher
2.3 登录 Rancher 平台
三、通过 Rancher 管理已存在的 k8s 集群
3.1 配置 rancher
3.2 导入 k8s
四、通过 Rancher 仪表盘管理 k8s 集群:部署 tomcat 服务
4.1 创建名称空间
4.2 创建 deployment
4.3 创建 service 资源
4.4 创建 ingress 资源
4.5 本地 hosts 解析
一、Rancher 介绍
1.1Rancher简介
Rancher 是一个开源的企业级多集群 Kubernetes 管理平台,实现了 Kubernetes 集群在混合云+本地数据中心的集中部署与管理,以确保集群的安全性,加速企业数字化转型。
超过 40,000 家企业每天使用 Rancher 快速创新。
Rancher 官方文档:Rancher文档 | K8S文档 | Rancher | Rancher文档
1.2 Rancher 和 k8s 的区别
Rancher 和 k8s 都是用来作为容器的调度与编排系统。但是 rancher 不仅能够管理应用容器,更重要的一点是能够管理 k8s 集群。Rancher2.x 底层基于 k8s 调度引擎,通过 Rancher 的封装,用户可以在不熟悉 k8s 概念的情况下轻松的通过 Rancher 来部署容器到 k8s 集群当中。
1.3 Rancher 企业使用案例
1、中保银行
在使用 Rancher 平台之前,中银保险也尝试过使用原生的一些 Kubernetes 平台,但是这些平台学习使用成本高昂、运行维护特别复杂。尤其是当我公司使用多种混合云环境的时候,一个个 Kubernetes 集群就变成了一个个技术孤岛,反而加重了公司信息化转型的压力。Rancher 平台的采用有效地解决了之前平台使用中所存在的问题,提升我公司测试业务平台的运行维护效率。
—— 付春涛 中银保险有限公司 信息科技部 技术负责人
2、蔚来汽车数字运营中国
Rancher 友好的图形化管理界面和资源创建的易用性、多集群管理能力、AD 认证和权限管理集成、应用商店功能等各种能力,帮助我们简化了容器化应用的部署,得以方便地进行多云Kubernetes 管理和权限控制,提高了应用交付的效率。感谢 Rancher 团队,期待 Rancher 中国团队进一步优化功能,推进 Rancher 在国内的大量落地。
—— 赵鹏飞 蔚来汽车数字运营中国 运维开发工程师
3、上汽集团
Rancher 2.x 是数据中心级别的管理平台,拥有多云管理的能力,符合未来企业上云的架构规划演进;Rancher 的开源产品模式降低了技术人员的使用成本,在兼顾原生 Kubernetes 的同时,为开发人员提供了丰富的 API 与系统功能,提高了开发生产效率。同时,Rancher 专业的容器产品团队,架起了开源产品与生产业务的桥梁,在微服务、应用容器化、DevOps、业务上云等技术领域为上汽集团提供了可靠的支持。
—— 龚瀚申 上汽集团 PaaS 平台总监
二、安装 Rancher
2.1 初始化环境
机器规划(其中 k8s-v1.23 集群已存在):
| 主机名称 | IP | 最低配置 |
| rancher | 192.168.78.156 | 2vcpu / 3Gi 内存 |
| k8s-master1 | 192.168.78.143 | 3vcpu / 3Gi 内存 |
| k8s-node1 | 192.168.78.144 | 3vcpu / 3Gi 内存 |
| k8s-node2 | 192.168.78.145 | 3vcpu / 3Gi 内存 |
先进行初步的环境初始化,按照这篇文章的步骤进行操作:CentOS 7 初始化系统_centos7 初始化_Stars.Sky的博客-CSDN博客
# 配置 hosts 文件(所以机器都要执行)
vim /etc/hosts
192.168.78.143 k8s-master1
192.168.78.144 k8s-node1
192.168.78.145 k8s-node2
192.168.78.156 rancher# 关闭交换分区 swap,提升性能
[root@rancher ~]# swapoff -a # 临时关闭
[root@rancher ~]# sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久关闭:注释swap挂载,给swap这行开头加一下注释# 转发 IPv4 并让 iptables 看到桥接流量
[root@rancher ~]# cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF[root@rancher ~]# sudo modprobe overlay
[root@rancher ~]# sudo modprobe br_netfilter# 设置所需的 sysctl 参数,参数在重新启动后保持不变
[root@rancher ~]# cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF# 应用 sysctl 参数而不重新启动
[root@rancher ~]# sudo sysctl --system# 配置国内阿里云 docker 的 repo 源
[root@rancher ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo# 安装 docker-ce
[root@rancher ~]# yum install docker-ce docker-ce-cli containerd.io -y[root@rancher ~]# systemctl enable docker --now
# 配置 docker 镜像加速器
[root@rancher ~]# mkdir -p /etc/docker
[root@rancher ~]# vim /etc/docker/daemon.json
# 写入如下内容:
{
"registry-mirrors":["https://vh3bm52y.mirror.aliyuncs.com","https://registry.docker-cn.com","https://docker.mirrors.ustc.edu.cn","https://dockerhub.azk8s.cn","http://hub-mirror.c.163.com"]
}[root@rancher ~]# systemctl restart docker
2.2 安装 Rancher
Rancher 版本支持的 Kubernetes 版本:Support matrix | SUSE
Docker 安装 Rancher 官方文档:使用 Docker 将 Rancher 安装到单个节点中 | Rancher Manager
[root@rancher ~]# docker pull rancher/rancher:v2.6.4[root@rancher ~]# mkdir -p /opt/data/rancher_data[root@rancher ~]# docker run -d --restart=unless-stopped -p 80:80 -p 443:443 --privileged -v /opt/data/rancher_data:/var/lib/rancher --name rancher rancher/rancher:v2.6.4 [root@rancher ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
f20bff32a2cb rancher/rancher:v2.6.4 "entrypoint.sh" 4 seconds ago Up 3 seconds 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp rancher# unless-stopped:在容器退出时总是重启容器,但是不考虑在Docker守护进程启动时就已经停止了的容器
# privileged:使用该参数,container 内的 root 拥有真正的 root 权限。否则,container 内的 root 只是外部的一个普通用户权限。privileged 启动的容器,可以看到很多 host 上的设备,并且可以执行 mount。甚至允许你在 docker 容器中启动 docker 容器。
2.3 登录 Rancher 平台
在浏览器访问 rancher 的 ip 地址:192.168.78.156

# 获取登录密码
[root@rancher ~]# docker logs f20bff32a2cb 2>&1 | grep "Bootstrap Password:"
2023/02/23 05:31:29 [INFO] Bootstrap Password: x4n56jjh92bzjmnhdz5f6d9jlhwvglr6xw9ldqrnch96t7zmctbplh
把获取到的密码 x4n56jjh92bzjmnhdz5f6d9jlhwvglr6xw9ldqrnch96t7zmctbplh 复制到 password 位置:

设置密码(我设置的密码为 Qwe123456789):至少 12 个字符长度

设置语言:

三、通过 Rancher 管理已存在的 k8s 集群
3.1 配置 rancher

选择通用:

编辑集群名称:

3.2 导入 k8s
在 k8s 控制节点复制下图红色箭头标注的一串命令:

# 提前拉取 rancher/rancher-agent:v2.6.4 镜像
[root@k8s-master1 ~]# docker pull rancher/rancher-agent:v2.6.4
[root@k8s-node1 ~]# docker pull rancher/rancher-agent:v2.6.4
[root@k8s-node2 ~]# docker pull rancher/rancher-agent:v2.6.4[root@k8s-master1 ~]# curl --insecure -sfL https://192.168.78.156/v3/import/ndlfvzjfzpgscxt8b9tdrqdtt89mnwh7rfks9rrksqwk54qfp4rjh2_c-m-62m8lbqs.yaml | kubectl apply -f -# 验证 rancher-agent 是否部署成功:
[root@k8s-master1 ~]# kubectl get pods -n cattle-system -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
cattle-cluster-agent-57d5d69df4-m8rdq 1/1 Running 0 11s 10.244.36.73 k8s-node1 <none> <none>
cattle-cluster-agent-57d5d69df4-mgtjn 1/1 Running 0 5m28s 10.244.169.131 k8s-node2 <none> <none>
导入成功:
四、通过 Rancher 仪表盘管理 k8s 集群:部署 tomcat 服务

4.1 创建名称空间


4.2 创建 deployment

编辑 deployment 名称:

容器配置(镜像名称:tomcat:8.5.34-jre8-alpine):

添加标签:

配置完成最基本的 deployment 资源,点击创建:

查看资源是否创建成功:

[root@k8s-master1 ~]# kubectl get pods -n rancher-tomcat -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
tomcat-8f48bcbc7-rqtxp 1/1 Running 0 3m3s 10.244.169.134 k8s-node2 <none> <none>
tomcat-8f48bcbc7-vd8pt 1/1 Running 0 3m3s 10.244.36.74 k8s-node1 <none> <none>
4.3 创建 service 资源
把 k8s 集群的 tomcat 这个 pod 映射出来。
选择左侧看到的服务,点击创建:

添加端口:
定义选择器后选择创建:


通过上面图片可以看到 tomcat-svc 已经创建好了,访问 k8s 任何一个节点+端口 30080,可以访问内部的 tomcat 了:访问 192.168.78.143:30080

4.4 创建 ingress 资源
需要安装 ingress-controller:https://kubernetes.github.io/ingress-nginx/deploy/
[root@k8s-master1 ~]# wget https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v1.6.4/deploy/static/provider/cloud/deploy.yaml# 修改 deploy.yaml 文件。因为源文件里的镜像都是国外的地址,基本拉取不下来,所以手动修改国内镜像。按顺序修改为先三个镜像:image: registry.cn-hangzhou.aliyuncs.com/google_containers/nginx-ingress-controller:v1.1.1image: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1image: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1[root@k8s-master1 ~]# kubectl apply -f deploy.yaml [root@k8s-master1 ~]# kubectl create clusterrolebinding clusterrolebinding-user-3 --clusterrole=cluster-admin --user=system:serviceaccount:ingress-nginx:ingress-nginx[root@k8s-master1 ~]# kubectl get pods -n ingress-nginx
NAME READY STATUS RESTARTS AGE
ingress-nginx-admission-create-gn5rc 0/1 Completed 0 3m15s
ingress-nginx-admission-patch-csmq8 0/1 Completed 0 3m14s
ingress-nginx-controller-74475868bb-2q8c5 1/1 Running 0 3m15s
创建 ingress 规则


添加注释:

4.5 本地 hosts 解析

# 先查看 ingress pod 分配到哪个节点
[root@k8s-master1 ~]# kubectl get ingress -A -o wide
NAMESPACE NAME CLASS HOSTS ADDRESS PORTS AGE
rancher-tomcat tomcat <none> sky.lucky.com 192.168.78.144 80 1h# 添加一行内容(ip 为被分配到的节点 ip)
192.168.78.144 sky.lucky.com
注意:不要挂梯子,不然域名访问不了!因为你挂梯子,域名直接代理到外网了,找不到!!!
在浏览器用域名访问:sky.lucky.com
上一篇文章:【Kubernetes 企业项目实战】08、简化 K8s 应用部署工具 Helm V3 入门到企业实战_Stars.Sky的博客-CSDN博客
相关文章:
【Kubernetes 企业项目实战】09、Rancher 2.6 管理 k8s-v1.23 及以上版本高可用集群
目录 一、Rancher 介绍 1.1Rancher简介 1.2 Rancher 和 k8s 的区别 1.3 Rancher 企业使用案例 二、安装 Rancher 2.1 初始化环境 2.2 安装 Rancher 2.3 登录 Rancher 平台 三、通过 Rancher 管理已存在的 k8s 集群 3.1 配置 rancher 3.2 导入 k8s 四、通过 Ranc…...
在Excel中按条件筛选数据并存入新的表
案例 老板想要看去年每月领料数量大于1000的数据。手动筛选并复制粘贴出来,需要重复操作12次,实在太麻烦了,还是让Python来做吧。磨刀不误砍柴工,先整理一下思路: 1读取原表,将数量大于1000的数据所对应的行整行提取(如同在excel表中按数字筛选大于1000的) 2将提取的数…...
【面试题】MySQL索引相关知识点
1.什么是索引 索引是存储引擎快速查找记录的一种数据结构,就类似书的目录,通过目录可以快速的查找到想要查找的内容 2.索引的特点 特点:索引是基于数据引擎的,不同的数据引擎实现索引的方式不一定相同 好处:通过索引…...
MySQL索引类型及原理?一文读懂
一、什么是MySQL索引? MySQL索引是一种数据结构,用于提高数据库查询的性能。它类似于一本书的目录,通过在表中存储指向数据行的引用,使得查询数据的速度更快。 在MySQL中,索引通常是在表上定义的,它们可以…...
【C语言】字符分类函数+内存函数
目录 1.字符函数 1.1字符分类函数 1.2.字符转换函数 //统一字符串中的大小写 2.内存处理函数 2.1内存拷贝函数memcpy //模拟实现memcpy 2.2内存移动函数memmove //模拟实现memmove 2.3内存比较函数memcmp 2.4内存设置函数memset 1.字符函数 1.1字符分类函数 头文…...
高通平台开发系列讲解(SIM卡篇)SIM卡基础概念
文章目录 一、SIM卡基本定义二、卡的类型三、SIM卡的作用三、SIM卡基本硬件结构四、SIM卡的内部物理单元五、卡文件系统沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇文章将介绍SIM的相关组件。 一、SIM卡基本定义 SIM卡是一种智能卡(ICC Card/UICC Card) SIM…...
记录一次ubuntu下配置ssh登录出现的问题
现象描述: 1. 配置完服务器端公钥和本地的私钥之后,ssh登录始终会让输入密码,用ssh -vvv rootip 查看发现发送密钥之后就没反应了。 本机debug info: debug1: Trying private key: C:\Users\wangc/.ssh/id_xxxx (私钥文件) debug3…...
深度剖析数据在内存中的存储(下)(适合初学者)
上篇讲解了整形在内存中的存储方式,这篇文章就来继续讲解浮点数在内存中的存储方式。 上篇地址: (5条消息) 深度剖析数据在内存中的存储(上)_陈大大陈的博客-CSDN博客 目录: 3.浮点型在内存中的存储 3.1.浮点数的…...
智慧物联网系统源码:一个用于数据的收集、处理、可视化、设备管理、设备预警、报警的平台
项目简介: 一个用于数据的收集、处理、可视化、设备管理、设备预警、报警的平台,通过平台将所有设备连接起来,为上层应用提供设备的管理、数据收集、远程控制等核心物联网功能。 支持支持远程对设备进行实时监控、故障排查、远程控制&#…...
2023年,拥有软考证书在这些地区可以领取福利补贴
众所周知,软考的含金量很高,比如可以入户、领取技能补贴、抵扣个税、以考代评、招投标加分,入专家库… 今天小编给大家收集了拥有软考证书可以领取软考福利的地区,希望对大家有所帮助! 【深圳】 入户 ①核准类入户:…...
使用Unity在材质球上实现绘画:详细解释每一行Shader代码!
在Unity中实现在材质球上绘画可以使用下面这个步骤:创建一个基础的材质球:在Unity的项目面板中创建一个新材质球,然后将其分配给您要绘画的对象。创建一个Shader:为了实现在材质球上绘画,您需要使用一种特殊的Shader。…...
Tesseract 4.0训练字库并且识别训练后的图片
各个工具下载链接在文章底部! 重要!!自己先创建一个空文件夹(名字随意),用来保存训练后的模型 ,还需要在里面创建一个 名称为tessdata 的文件夹 ,必须叫这个名 可以先使用下载后的进行测试训练(只需要把ja…...
ChatGPT热潮背后,金融行业大模型应用路在何方?——金融行业大模型应用探索
ChatGPT近两个月以来不断引爆热点,对人工智能应用发展的热潮前所未有地高涨,ChatGPT所代表的大模型在语义理解、多轮交互、内容生成中所展现的突出能力令人惊喜。而人工智能技术在金融行业的落地应用仍然面临挑战,虽然已经让大量宝贵的人力从…...
【怎么预防sql注入,以及还有预防其他的什么网络攻击】
SQL注入是一种常见的Web攻击,通过在Web应用程序中注入恶意SQL语句来获取或修改数据库中的数据。为了防止SQL注入,开发者可以采取以下措施: 1、使用参数化查询(Prepared Statement)或存储过程(Stored Proce…...
2023年全国最新机动车签字授权人精选真题及答案4
百分百题库提供机动车签字授权人考试试题、机动车签字授权人考试预测题、机动车签字授权人考试真题、机动车签字授权人证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 11.使用转化炉原理测量氮氧化物的排气分析仪进行排气污…...
【Java】用记事本实现“HelloWorld”输出
【在进行以下操作前需要下载好JDK并配置好对应的环境变量】 一、在任意文件夹中创建一个新的文本文档文件并写入以下代码 public class Hello{public static void main (String[] args){System.out.print("Hello,World!");} } 二、修改文件名称及文件类型为 Hello.j…...
我希望早点知道的关于成长的建议
人上了年纪,往往在诸如更加闭塞,更加固执这些缺点之外,再多出来一个缺点:那就是动不动就爱给别人建议。我当然也未能免俗。有时候会听到同样悲观且固执的过来人告诉我,这些建议说了和没说效果都一样,人们在…...
【哈希表】使用方法总结
1. uthash简介开源的第三方头文件,这只是一个头文件:uthash.h。uthash还包括三个额外的头文件,主要提供链表,动态数组和字符串。utlist.h为C结构提供了链接列表宏。utarray.h使用宏实现动态数组。utstring.h实现基本的动态字符串。…...
【笑小枫-面试篇】Java基础面试题整理,努力做全网最全
写在前面 或许你只是想白嫖内容,或许你也会忽略这段文字,但我还是想弱弱的说 题目整理耗费了大量精力,希望可以给博主点赞收藏,谢谢大家啦 我呢,笑小枫,一个努力的普通人,也希望可以花1秒钟记住…...
亚马逊短期疲软,但长期前景乐观
来源:猛兽财经 作者:猛兽财经 由于投资者对亚马逊(AMZN)前景的担忧,导致该公司的股价在过去一年中下跌了39%。然而猛兽财经认为亚马逊近期面临的不利因素只是暂时的,该公司还是有充分的条件可以在医疗保健和物流领域获得重大增长机…...
通过Wrangler CLI在worker中创建数据库和表
官方使用文档:Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后,会在本地和远程创建数据库: npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库: 现在,您的Cloudfla…...
8k长序列建模,蛋白质语言模型Prot42仅利用目标蛋白序列即可生成高亲和力结合剂
蛋白质结合剂(如抗体、抑制肽)在疾病诊断、成像分析及靶向药物递送等关键场景中发挥着不可替代的作用。传统上,高特异性蛋白质结合剂的开发高度依赖噬菌体展示、定向进化等实验技术,但这类方法普遍面临资源消耗巨大、研发周期冗长…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
人工智能(大型语言模型 LLMs)对不同学科的影响以及由此产生的新学习方式
今天是关于AI如何在教学中增强学生的学习体验,我把重要信息标红了。人文学科的价值被低估了 ⬇️ 转型与必要性 人工智能正在深刻地改变教育,这并非炒作,而是已经发生的巨大变革。教育机构和教育者不能忽视它,试图简单地禁止学生使…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
机器学习的数学基础:线性模型
线性模型 线性模型的基本形式为: f ( x ) ω T x b f\left(\boldsymbol{x}\right)\boldsymbol{\omega}^\text{T}\boldsymbol{x}b f(x)ωTxb 回归问题 利用最小二乘法,得到 ω \boldsymbol{\omega} ω和 b b b的参数估计$ \boldsymbol{\hat{\omega}}…...
ArcGIS Pro+ArcGIS给你的地图加上北回归线!
今天来看ArcGIS Pro和ArcGIS中如何给制作的中国地图或者其他大范围地图加上北回归线。 我们将在ArcGIS Pro和ArcGIS中一同介绍。 1 ArcGIS Pro中设置北回归线 1、在ArcGIS Pro中初步设置好经纬格网等,设置经线、纬线都以10间隔显示。 2、需要插入背会归线…...
Copilot for Xcode (iOS的 AI辅助编程)
Copilot for Xcode 简介Copilot下载与安装 体验环境要求下载最新的安装包安装登录系统权限设置 AI辅助编程生成注释代码补全简单需求代码生成辅助编程行间代码生成注释联想 代码生成 总结 简介 尝试使用了Copilot,它能根据上下文补全代码,快速生成常用…...
Axure Rp 11 安装、汉化、授权
Axure Rp 11 安装、汉化、授权 1、前言2、汉化2.1、汉化文件下载2.2、windows汉化流程2.3、 macOs汉化流程 3、授权 1、前言 Axure Rp 11官方下载链接:https://www.axure.com/downloadthanks 2、汉化 2.1、汉化文件下载 链接: https://pan.baidu.com/s/18Clf…...
