【Kubernetes 企业项目实战】09、Rancher 2.6 管理 k8s-v1.23 及以上版本高可用集群

news2025/7/31 3:55:47

目录

一、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最低配置
rancher192.168.78.1562vcpu / 3Gi 内存
k8s-master1192.168.78.1433vcpu / 3Gi 内存
k8s-node1192.168.78.1443vcpu / 3Gi 内存
k8s-node2192.168.78.1453vcpu / 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.1

          image: registry.cn-hangzhou.aliyuncs.com/google_containers/kube-webhook-certgen:v1.1.1

          image: 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博客

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/367813.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

啊哈 算法读书笔记 第 1 章 一大波数正在靠近——排序

目录 排序算法&#xff1a; 时间复杂度&#xff1a; 排序算法和冒泡排序之间的过渡&#xff1a; 冒泡排序 冒泡排序和快速排序之间的过渡&#xff1a; 快速排序 排序算法&#xff1a; 首先出场的是我们的主人公小哼&#xff0c;上面这个可爱的娃就是啦。期末考试完了老…

安装Ffmpeg音视频编解码工具和搭建EasyDarwin开源流媒体服务器

目录 一&#xff0c;安装Ffmpeg音视频编解码工具 1&#xff0c;简介 2&#xff0c;开发文档 3&#xff0c;安装部署 二&#xff0c;搭建EasyDarwin开源流媒体服务器 1&#xff0c;简介 2&#xff0c;主要功能特点 3&#xff0c;安装部署 4&#xff0c;效果图 三&…

「mysql是怎样运行的」第17章 调节磁盘和CPU的矛盾---InnoDB的BufferPool

「mysql是怎样运行的」第17章 调节磁盘和CPU的矛盾—InnoDB的Buffer Pool 文章目录「mysql是怎样运行的」第17章 调节磁盘和CPU的矛盾---InnoDB的Buffer Pool[toc]一、缓存的重要性二、InnoDB的Buffer Pool2.1 啥是Buffer Pool2.2 Buffer Pool内部组成2.3 free链表的管理2.4 缓…

Sallen-Key二阶低通滤波器——设计问题浅析

目录前言1 Sallen-Key二阶低通滤波器结构2 截止频率3 结语前言 这两天接了个简单的活&#xff0c;关于设计一个Sallen-Key二阶低通滤波器&#xff0c;有一些体会。 1 Sallen-Key二阶低通滤波器结构 这个结构很简单&#xff0c;优势就是在于简易实现二阶低通。这种类电压跟随器…

第九届蓝桥杯省赛 C++ B组 - 日志统计

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4da;专栏地址&#xff1a;蓝桥杯题解集合 &#x1f4dd;原题地址&#xff1a;日志统计 &#x1f4e3;专栏定位&#xff1a;为想参加蓝桥杯的小伙伴整理常考算法题解&#xff0c;祝大家…

电脑技巧:分享六个非常实用的资源网站

今天小编给大家分享六个非常实用的资源网站&#xff0c;大家一起来看看吧&#xff01; 1、高清壁纸&#xff1a;Wallhaven 一个免费的高清壁纸下载网站&#xff0c;里面的壁纸资源丰富&#xff0c;更新速度也快&#xff0c;各种类型的壁纸都能找到&#xff0c;尤其是动漫壁纸。…

mars3d常用参数备用

1.多个包围盒计算飞行定位 map.camera.flyToBoundingSphere(boundingSphere) 可以一个数组记录下center&#xff0c;再用http://mars3d.cn/api/Map.html#flyToPositions 2.轨迹漫游实现沿着原轨迹倒退 把播放速率改为负数 3.自带的图层管理里面这个noCenter属性跟flyTo属性区…

动态网站开发讲课笔记02:Java Web概述

文章目录零、本讲学习目标一、 XML基础&#xff08;一&#xff09;XML概述1、XML2、XML与HTML的比较&#xff08;二&#xff09;XML语法1、XML文档的声明2、XML元素的定义3、XML属性的定义4、XML注释的定义5、XML文件示例&#xff08;三&#xff09;DTD约束1、什么是XML约束2、…

做出改变:农业科技和区块链在为地球的未来而战中的力量

到2050年&#xff0c;全球有100亿人需要养活&#xff0c;全世界都在关注区块链和农业信息化&#xff0c;以推动发展中国家的技术革新。 自成立以来&#xff0c;区块链技术已经找到了多样化和有价值的应用&#xff0c;以帮助提高效率和激励社区在不同领域和行业的参与。 农业是…

【华为OD机试模拟题】用 C++ 实现 - 去除多余空格(2023.Q1)

最近更新的博客 华为OD机试 - 入栈出栈(C++) | 附带编码思路 【2023】 华为OD机试 - 箱子之形摆放(C++) | 附带编码思路 【2023】 华为OD机试 - 简易内存池 2(C++) | 附带编码思路 【2023】 华为OD机试 - 第 N 个排列(C++) | 附带编码思路 【2023】 华为OD机试 - 考古…

《Linux运维实战:Centos7.6基于ansible一键离线部署rabbitmq3.9.16镜像模式集群》

一、部署背景 由于业务系统的特殊性&#xff0c;我们需要针对不同的客户环境部署 rabbitmq镜像模式集群&#xff0c;由于大都数用户都是专网环境&#xff0c;无法使用外网&#xff0c;为了更便捷&#xff0c;高效的部署&#xff0c;针对业务系统的特性&#xff0c;我这边编写了…

git cherry-pick could not apply fb2cde669...问题解决

最近多个分支修复bug&#xff0c;在使用git cherry-pick进行小功能合并时经常会出现类似could not apply fb2cde669...的错误。具体如下图&#xff1a;具体原因是cherry-pick指定的commit内容中和当前分支有冲突导致的。具体解决分以下步骤&#xff1a;1&#xff1a;首先使用gi…

DeepLabV3+:对预测处理的详解

相信大家对于这一部分才是最感兴趣的&#xff0c;能够实实在在的看到效果。这里我们就只需要两个.py文件&#xff08;deeplab.py、predict_img.py&#xff09;。 创建DeeplabV3类 deeplab.py的作用是为了创建一个DeeplabV3类&#xff0c;提供一个检测图片的方法&#xff0c;而…

数据结构与算法入门

目录数据结构概述逻辑结构存储结构算法概述如何理解“大O记法”时间复杂度空间复杂度数据结构概述 数据结构可以简单的理解为数据与数据之间所存在的一些关系&#xff0c;数据的结构分为数据的存储结构和数据的逻辑结构。 逻辑结构 集合结构&#xff1a;数据元素同属于一个集…

Codeforces Round #848 (Div. 2)A-C

传送门 目录 A. Flip Flop Sum 代码&#xff1a; B. The Forbidden Permutation 代码&#xff1a; C. Flexible String 代码&#xff1a; A. Flip Flop Sum 题意&#xff1a;给你一个长度为n的数组&#xff08;数组元素只为1或者-1&#xff09;&#xff0c;你要且只能进行…

掌握lombok简化Java编码完成后端提效

Lombok安装 –>添加依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.16</version><scope>provided</scope> </dependency>scopeprovided&#xff0c;说…

LinkSLA智能运维技术派-Redis的监控

Redis是一个开源&#xff0c;内存存储的数据服务器&#xff0c;可用作数据库、高速缓存和消息队列代理等场景。 首先我们对内存进行监控&#xff0c;主要指标如下&#xff1a; - used_memory:使用内存 - used_memory_rss:从操作系统分配的内存 - mem_fragmentation_ratio:内…

如何成为一名黑客?小白必学的6个基本步骤

黑客攻防是一个极具魅力的技术领域&#xff0c;但成为一名黑客毫无疑问也并不容易。你必须拥有对新技术的好奇心和积极的学习态度&#xff0c;具备很深的计算机系统、编程语言和操作系统知识&#xff0c;并乐意不断地去学习和进步。 如果你想成为一名优秀的黑客&#xff0c;下…

交叉编译 acl

交叉编译 acl 概述 访问控制列表&#xff08;Access Control Lists&#xff0c;ACL&#xff09;是应用在路由器接口的指令列表。在 Linux 系统中&#xff0c;ACL 用于设定用户针对文件的权限&#xff0c;而不是在交换路由器中用来控制数据访问的功能&#xff08;类似于防火墙…

跑步耳机怎么选、最好用的跑步专用耳机分享

跑步时候戴着的耳机一直往下滑&#xff0c;跑步的步伐也不敢快起来&#xff0c;生怕耳机掉下去。除此之外&#xff0c;还担心跑步时流的汗水渗入到耳机里面&#xff0c;生怕因此被电到。因为没有合适的耳机在跑步时听歌&#xff0c;不但没能缓解跑步时的枯燥还徒增了些烦恼&…