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

news/2024/5/3 16:33:05/文章来源:https://blog.csdn.net/weixin_46560589/article/details/129176119

目录

一、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# 配置 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# 添加一行内容(ip 为被分配到的节点 ip)
192.168.78.144 sky.lucky.com

在浏览器用域名访问:sky.licky.com

上一篇文章:【Kubernetes 企业项目实战】08、简化 K8s 应用部署工具 Helm V3 入门到企业实战_Stars.Sky的博客-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【MySQL】5.7版本解压安装配置

前言 之所以使用解压版本&#xff0c;而不使用exe安装&#xff0c;因为exe的安装方式删除过于麻烦&#xff01;&#xff01;&#xff01; 如果安装MySQL过程中&#xff0c;出错了或者想重新在来一把&#xff0c;删除mysql服务即可 sc delete mysql # 删除已经安装好的Mysql&a…

ICASSP2023录用率有可靠度还不错的消息了

点击文末公众号卡片&#xff0c;找对地方&#xff0c;轻松参会 由于录用邮件没说录用率&#xff0c;导致大家都不知道录用率是多少。 据一位群友的反馈&#xff0c;其小老板是meta review。该群友原话“接受率应该是42%”。 ICASSP2023投稿量6000&#xff0c;在投稿量大涨的…

可怕,chatGPT用3小时教会我数据

chatGPT这玩意真的是我的救星,用它作为我的Python教练,我用三个小时学会了数据处理(Pandas)和绘图(matplotlib)。 这两个库的学习,在之前已经困扰了我7个月。之前卡壳的原因,是我一直没有耐心从零开始,按照教材设置的教程去学习Python——我擅长在项目中学习,一点一点…

数字人文中的可视化

数字人文中的可视化罗煜楚1&#xff0c;吴昊1&#xff0c;郭宇涵1&#xff0c;谭绍聪1&#xff0c;刘灿1&#xff0c;蒋瑞珂1&#xff0c;袁晓如1,21北京大学智能学院机器感知与智能教育部重点实验室&#xff0c;北京 1008712北京大学大数据分析与应用技术国家工程实验室&#…

白帽黑客入行应该怎么学?零基础小白也能轻松上手!

这几年随着我国《国家网络空间安全战略》《网络安全法》《网络安全等级保护2.0》等一系列政策/法规/标准的持续落地&#xff0c;网络安全行业地位、薪资随之水涨船高。 1为什么网络安全行业是IT行业最后的红利&#xff1f; 根据腾讯安全发布的《互联网安全报告》&#xff0c;…

【架构师】零基础到精通——网关策略

博客昵称&#xff1a;架构师Cool 最喜欢的座右铭&#xff1a;一以贯之的努力&#xff0c;不得懈怠的人生。 作者简介&#xff1a;一名退役Coder&#xff0c;软件设计师/鸿蒙高级工程师认证&#xff0c;在备战高级架构师/系统分析师&#xff0c;欢迎关注小弟&#xff01; 博主小…

月薪没到30K的测试员必须要会的技能,我先啃为敬

最近感慨面试难的人越来越多了&#xff0c;一方面是市场环境&#xff0c;更重要的一方面是企业对软件测试的人才要求越来越高了。 基本上这样感慨的分为两类人 第一&#xff0c;虽然挂着3、5年经验&#xff0c;但肚子里货少&#xff0c;也没啥拿得出手的项目&#xff0c;自己还…

整数保序的离散化(C/C++)

目录 1. 离散化的概念 1.1 离散化的运用思路 1.2 离散化的方法 1.2.1 排序 1.2.2 确定一个元素离散化后的结果 1.3 案例分析 1.3.1 1.3.2 区间和 &#xff08;来源&#xff1a;Acwing&#xff09; 1. 离散化的概念 离散化&#xff0c;把无限空间中有限的个体映射到有限的…

用kinectv2运行orbslam2

前提 vim 、 cmake 、 git 、 gcc 、 g 这些一般都装了 主要是Pangolin 、 OpenCV 、 Eigen的安装 18.04建议Pangolin0.5 orbslam2安装、测试&#xff1a; git clone https://github.com/raulmur/ORB_SLAM2.git ORB_SLAM2 cd ORB_SLAM2 chmod x build.sh ./build.sh 编译…

归并排序及其应用

归并排序算法基于分而治之的概念&#xff0c;具体来说就是遍历一棵树&#xff0c;归并的过程是一个后序执行的动作。 由于我们知道每个子部分在合并后都是有序的&#xff0c;我们可以利用这个特性来解决一些问题。 上图可视化了merge sort algorithm的过程&#xff0c;我们很容…

【Spring中@Autowired和@Resource注解的区别?】

一.背景 Spring中Autowired和Resource注解的区别&#xff1f; Spring框架想必大家都知道吧&#xff0c;那么Spring中Autowired和Resource注解的区别你知道吗&#xff1f;如果不知道也不要紧&#xff0c;我们就一起来学习一起吧。 二.Autowired和Resource注解的区别&#xff1f…

【Azure 架构师学习笔记】-Azure Data Factory (3)-触发器详解-翻转窗口

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Data Factory】系列。 接上文【Azure 架构师学习笔记】-Azure Data Factory (2)-触发器 前言 上文中提到触发器的类型有以下4种&#xff0c;其中第一种【计划】是常用的&#xff0c; 与其他工具/服务类似的方式&#…

电路分析:一个简单的光控灯电路

一个简单的光控灯电路 电路原理&#xff1a; 利用了光敏电阻、电容 、三极管的特性实现

冷知识,Chrome 控制台console.log()为什么返回undefined

前言 不知道各位有没有在Chrome控制台中&#xff0c;使用console.log()输出数据&#xff0c;例如 console.log(Hello World) 如果你曾经稍微留意&#xff0c;你会发现第二个返回值是undefined。是浏览器控制台出现BUG了嘛&#xff1f;我们期望的输出只有’Hello World’。 其…

该学会是自己找bug了(vs调试技巧)

前言 &#x1f388;个人主页:&#x1f388; :✨✨✨初阶牛✨✨✨ &#x1f43b;推荐专栏: &#x1f354;&#x1f35f;&#x1f32f; c语言初阶 &#x1f511;个人信条: &#x1f335;知行合一 &#x1f349;本篇简介:>:介绍c语言初阶的最后一篇.有关调试的重要性. 金句分享…

零基础学编程很难学?3点解答你的疑惑

很多编程新手 都会套用以前上学时的学习方法&#xff1a; 记语法、定义、常量…… 然而&#xff0c;这些方法在编程学习中 却完全不奏效 编程究竟难在哪&#xff1f; 有没有更有效的学习方法呢&#xff1f; 01 #难在我们从未接受过解决问题的训练 从小到大&#xff0c;我们…

为Webpack5项目引入Buffer Polyfill

前言 最近在公司的一个项目中使用到了Webpack5&#xff0c; 然而在使用某个npm包的时候&#xff0c;出现了Buffer is not defined 这个问题&#xff0c;原因很明显了&#xff0c;因为浏览器运行时没有Buffer这个API&#xff0c;所以需要为浏览器引入Buffer Polyfill. Webpack5…

变分推断 | MATLAB实现VBMC变分贝叶斯蒙特卡洛模拟的贝叶斯推断

变分推断 | MATLAB实现变分贝叶斯蒙特卡洛模拟的贝叶斯推断 目录 变分推断 | MATLAB实现变分贝叶斯蒙特卡洛模拟的贝叶斯推断效果一览基本介绍研究内容模型描述模型设计参考资料效果一览 基本介绍 MATLAB实现变分贝叶斯蒙特卡洛模拟的贝叶斯推断。变分贝叶斯蒙特卡洛(VBMC)是…

【UE4 制作自己的载具】5-添加第一人称视角

效果步骤可以先打开“Vehicle_BP”添加三个注释获得“Camera”的相对旋转分割结构体引脚打开“Sedan”这个蓝图&#xff0c;拷贝其中的一部分逻辑到“Vehicle_BP”的事件图表中将下图选中的节点复制粘贴到“Vehicle_BP”的事件图表中&#xff1a;连接节点&#xff1a;如果我们希…

【java】Spring Cloud --Spring Cloud Alibaba 教程

文章目录Spring Cloud Alibaba是什么Spring Cloud AlibabaSpring Cloud Alibaba 组件Spring Cloud Alibaba 的应用场景Spring Cloud 两代实现组件对比Spring Cloud Alibaba 版本依赖Spring Cloud Alibaba 组件版本关系Spring Cloud Alibaba NacosNacos 的特性服务发现服务健康监…