如何使用装rancher安装k8s集群(k8s集群图形化管理工具)
前言
kubernetes集群的图形化管理工具主要有以下几种:
1、 Kubernetes Dashborad: Kubernetes 官方提供的图形化工具
2、 Rancher: 目前比较主流的企业级kubernetes可视化管理工具
3、各个云厂商Kubernetes集成的管理器
4、 Kuboard: 国产开源Kubernetes可视化管理工具
本篇我们来学习 主流的企业级kubernetes可视化管理工具-rancher工具。
rancher官网
官网:https://www.rancher.cn/
github:https://github.com/rancher/rancher
镜像托管在hub.docker.com 上。
rancher的版本与k8s的版本有着一定的关系,在https://www.suse.com/suse-rancher/support-matrix/all-supported-versions/rancher-v2-7-5/ 中可以查看。
主机准备
准备4台服务器,一台用于rancher软件,其他3台用于搭建k8s高可用集群:
rancher : 安装rancher
master01 : k8s master节点,也分配node、etcd角色;
node01 : k8s node节点,也分配node、etcd角色;
node2 : k8s node节点,也分配node、etcd角色;
环境初始化
4台主机都根据实际情况做如下6大步骤配置:
# 1、关闭防火墙
systemctl stop firewalld && systemctl disable firewalld
# 2、禁用selinux
setenforce 0 #临时关闭selinux
vim /etc/selinux/config #永久关闭selinux
SELINUX=disabled
# 3、关闭swap分区(必须,因为k8s官网要求)
swapoff -a #禁用所有swap交换分区
vim /etc/fstab #永久禁用swap,删除或注释掉/etc/fstab里的swap设备的挂载命令即可
#/dev/mapper/centos-swap swap swap defaults 0 0
# 4、设置主机名并写入配置文件
hostnamectl set-hostname rancher
hostnamectl set-hostname master01
hostnamectl set-hostname node1
hostnamectl set-hostname node2
cat >> /etc/hosts <<EOF
192.168.244.150 rancher
192.168.244.151 master01
192.168.244.152 node1
192.168.244.153 node2
EOF
# 5、时间同步
yum -y install ntp
systemctl start ntpd && systemctl enable ntpd
# 6、将桥接的IPv4流量传递到iptables的链(有一些ipv4的流量不能走iptables链,因为linux内核的一个过滤器,每个流量都会经过他,然后再匹配
# 是否可进入当前应用进程去处理,所以会导致流量丢失),配置k8s.conf文件(k8s.conf文件原来不存在,需要自己创建的)
cat >> /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables=1
net.bridge.bridge-nf-call-iptables=1
net.ipv4.ip_forward=1
vm.swappiness=0
EOF
sysctl -p
rancher的安装
rancher本身也是使用docker进行安装,所以要先安装好docker,docker的安装请参考Linux下如何安装docker详细介绍(联网、离线安装)``https://blog.csdn.net/MssGuo/article/details/122694156
rancher本质上是封装了RKE和K3S来安装k8s的。
rancher是一个开源的项目,开源的代码在https://github.com/rancher/rancher上:

可以看到目前最新的rancher版本是2.7.5
rancher镜像位于https://hub.docker.com/上,如下所示进入hub.docker官网搜索rancher:

[root@rancher ~]# docker pull rancher/rancher:v2.7.5 #拉取rancher镜像
v2.6.7-linux-amd64: Pulling from rancher/rancher
9047ed9df36f: Pull complete
Digest: sha256:2c63e264eacc633d9d98ad30ac30bade271b66454a63446f0156191cee77aa9e
Status: Downloaded newer image for rancher/rancher:v2.6.7-linux-amd64
docker.io/rancher/rancher:v2.6.7-linux-amd64
[root@rancher ~]# docker images #查看rancher镜像
REPOSITORY TAG IMAGE ID CREATED SIZE
rancher/rancher v2.6.7-linux-amd64 23fa8b4529d2 Less than a second ago 1.55GB
[root@rancher ~]#
启动rancher容器
#创建一个目录用于存放rancher的持久化数据
[root@rancher ~]# mkdir /rancher_data
#--privileged运行特权模式,-p表示映射本机的80端口到容器的80端口,443端口到容器的443端口,-v挂载持久卷,
[root@rancher ~]# docker run -d --privileged -p 80:80 -p 443:443 -v /rancher_data:/var/lib/rancher/ --restart=unless-stopped --name rancher-v2.7.5 rancher/rancher:v2.7.5[root@elk-client ~]# docker ps #确认容器的CREATED时间STATUS时间基本相同就表示容器没有重启,rancher正常
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
768949c78d09 rancher/rancher:v2.7.5 "entrypoint.sh" 8 minutes ago Up 8 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:443->443/tcp, :::443->443/tcp rancher-v2.7.5
网页登陆rancher
输入服务器ip地址http://192.168.244.150,默认会跳转到https的443端口,登录页面左下角有设置中文,可以设置中文,如下所示:

按照页面的提示,去容器里面查找rancher的登陆密码:
[root@rancher ~]# docker logs 7cf867e736fd01 2>&1 | grep "Bootstrap Password:"
2023/08/19 16:37:41 [INFO] Bootstrap Password: q5hgkh5lgtncbm2q2tts8w6cdz45xfvpx7v5s8dk9f4c8dpbzrcr6s
[root@rancher ~]#
复制密码进行登陆,跳转到如下页面,显示要我们要给默认账号admin设置一个登陆密码,那我们就设置一个登陆密码,密码需要有一定的复杂度,这里我就设置为admin12345678:

使用rancher创建一个k8s集群
既可以将已有的k8s集群加入rancher,让rancher管理,也可以使用rancher创建一个新的k8s集群,这里我们使用rancher创建一个新的k8s集群。

点击打开RKE2/K3S开关,我们选择使用RKE2创建k8s集群,点击自定义按钮,如下:

如下,填写集群名称,集群描述信息,可以看到rancher2.7.5支持的k8s版本有4个,我们选择RKE方式安装的v1.25.12+rke2r2,其他选项保持默认即可:

网络配置:

其他配置保持默认即可,最后,点击右下角的创建按钮,页面自动跳转到了集群页面,点击我们创建的k8s集群:

页面跳转到了这里,如下,节点角色勾选对应的角色后会生成对应的注册命令,把这串注册命令复制粘贴到k8s服务器上执行即可,这里由于我只有3台主机,所以角色规划是3台服务器都作为master、etcd、node角色:
master01 :k8s master节点,也分配node、etcd角色;
node01:k8s node节点,也分配master、etcd角色;
node02:k8s node节点,也分配master、etcd角色;

把注册命令复制粘贴到k8s服务器上执行,然后等待安装完成,在左侧"主机"栏可以查看:

等全部的节点安装完毕后,返回首页,点击集群名称即可进入集群。
创建deployment和svc
进入集群:

创建一个deployment:

在页面填写信息即可:


创建完成之后,等待deployment就绪即可:

创建svc,选择对应的标签选择器:




等待svc创建完成即可:

浏览器页面访问成功:

kubectl 命令行工具设置
使用rancher安装的k8s集群,服务器里面的kubectl 工具不能正常使用,如果需要在服务器执行kubectl命令的话,需要配置一下上下文:
#kubectl 配置命令自动补全
yum install -y bash-completion
echo 'source /usr/share/bash-completion/bash_completion' >> ~/.bashrc
echo 'source <(kubectl completion bash)' >> ~/.bashrc
source ~/.bashrcfind / -name kubectl
ln -s /var/lib/rancher/rke2/data/v1.25.12-rke2r1-15557ace5a8f/bin/kubectl /usr/bin/kubectl
返回首页,点击管理:

下载kubeConfig文件:

mkdir ${HOME}/.kube/
#把下载的kubeConfig上传到服务器,重命名
mv datacenter.yaml /root/.kube/config
#验证正常使用
[root@master01 ~]# kubectl get pod
NAME READY STATUS RESTARTS AGE
nginx-dc9ff6bdf-xc22t 1/1 Running 0 66m
以上就完成了rancher的安装和使用。
相关文章:
如何使用装rancher安装k8s集群(k8s集群图形化管理工具)
前言 kubernetes集群的图形化管理工具主要有以下几种: 1、 Kubernetes Dashborad: Kubernetes 官方提供的图形化工具 2、 Rancher: 目前比较主流的企业级kubernetes可视化管理工具 3、各个云厂商Kubernetes集成的管理器 4、 Kuboard: 国产开源Kubernetes可视化管理…...
类加载器与双亲委派
类加载器与双亲委派 Java 类加载器(Class Loader)是 Java 虚拟机(JVM)的一部分,负责将类的字节码加载到内存中,并将其转换为可执行的 Java 对象。类加载器在 Java 应用程序中起着重要的作用,它…...
用Python创造乐趣:编写你自己的探索游戏世界
在当今数字化时代,编程不再是一个专业程序员的专利。无论你是一个编程新手还是有一定经验的开发者,用Python编写简单的游戏是一个有趣且富有创造性的方式。在这篇博客中,我们将探索如何用Python构建一个基本的探索游戏世界,让玩家…...
git stash弹出栈中的指定内容
使用 git stash 的相关命令来选择性地弹出特定的 stash 内容,应用到指定的分支上。如果我们使用 git stash 命令已经存储了多个记录时,每个 stash 记录都会有一个唯一的标识符(stash{0}、stash{1}…)。通过这些标识符可以应用或弹…...
5.7 汇编语言:汇编高效乘法运算
乘法指令是一种在CPU中实现的基本算术操作,用于计算两个数的乘积。在汇编语言中,乘法指令通常是通过mul(无符号乘法)和imul(有符号乘法)这两个指令实现的。由于乘法指令在执行时所消耗的时钟周期较多&#…...
Graphql中的N+1问题
开篇 原文出处 Graphql 是一种 API 查询语言和运行时环境,可以帮助开发人员快速构建可伸缩的 API。然而,尽管 Graphql 可以提供一些优秀的查询性能和数据获取的能力,但是在使用 Graphql 的过程中,开发人员也会遇到一些常见问题&…...
mysql、oracle、sqlserver常见方法区分
整理了包括字符串与日期互转、字符串与数字互转、多行合并为一行、拼接字段等一些常用的函数,当然有些功能实现的方法不止一种,这里列举了部分常用的,后续会持续补充。 MySQLOracleSQL Server字符串转数字 CAST(123 as SIGNED) 或 CONVERT(12…...
AcWing 4382. 快速打字
原题链接:AcWing 4382. 快速打字 关键词:双指针、判断子序列 芭芭拉是一个速度打字员。 为了检查她的打字速度,她进行了一个速度测试。 测试内容是给定她一个字符串 I,她需要将字符串正确打出。 但是,芭芭拉作为一…...
DataFrame.query()--Pandas
1. 函数功能 Pandas 中的一个函数,用于在 DataFrame 中执行查询操作。这个方法会返回一个新的 DataFrame,其中包含符合查询条件的数据行。请注意,query 方法只能用于筛选行,而不能用于筛选列。 2. 函数语法 DataFrame.query(ex…...
【C语言】美元名字和面额对应问题
题目 美元硬币从小到大分为1美分(penny)5美分(nickel)10美分(dime)25美分(quarter)和50美分(half-dollar),写一个程序实现当给出一个数字面额可以…...
uniapp隐藏底部导航栏(非自定义底部导航栏)
uniapp隐藏底部导航栏 看什么看,要多看uni官方文档,里面啥都有 看什么看,要多看uni官方文档,里面啥都有 uniapp官方网址:uni设置TabBar // 展示 uni.showTabBar({animation:true,success() {console.debug(隐藏成功)…...
CSS background 背景
background属性为元素添加背景效果。 它是以下属性的简写,按顺序为: background-colorbackground-imagebackground-repeatbackground-attachmentbackground-position 以下所有示例中的花花.jpg图片的大小是4848。 1 background-color background-col…...
安防监控视频平台EasyCVR视频汇聚平台和税务可视化综合管理应用方案
一、方案概述 为了确保税务执法的规范性和高效性,国家税务总局要求全面推行税务系统的行政执法公示制度、执法全过程记录制度和重大执法决定法制审核制度。为此,需要全面推行执法全过程记录制度,并推进信息化建设,实现执法全过程的…...
深度学习实战50-构建ChatOCR项目:基于大语言模型的OCR识别问答系统实战
大家好,我是微学AI,今天给大家介绍一下深度学习实战50-构建ChatOCR项目:基于大语言模型的OCR识别问答系统实战,该项目是一个基于深度学习和大语言模型的OCR识别问答系统的实战项目。该项目旨在利用深度学习技术和先进的大语言模型,构建一个能够识别图像中文本,并能够回答与…...
计算机安全学习笔记(I):访问控制安全原理
访问控制原理 从广义上来讲,所有的计算机安全都与访问控制有关。 RFC 4949: Internet Security Glossary, Version 2 (rfc-editor.org) RFC 4949 定义的计算机安全:用来实现和保证计算机系统的安全服务的措施,特别是保证访问控制服务的措施…...
Linux 虚拟机安装 hadoop
目录 1 hadoop下载 2 解压hadoop 3 为 hadoop 文件夹改名 4 给 hadoop 文件夹赋权 5 修改环境变量 6 刷新环境变量 7 在hadoop313目录下创建文件夹data 8 检查文件 9 编辑 ./core-site.xml文件 10 编辑./hadoop-env.sh文件 11 编辑./hdfs-site.xml文件 12 编辑./mapr…...
FxFactory 8 Pro Mac 苹果电脑版 fcpx/ae/motion视觉特效软件包
FxFactory pro for mac是应用在Mac上的fcpx/ae/pr视觉特效插件包,包含了成百上千的视觉效果,打包了很多插件,如调色插件,转场插件,视觉插件,特效插件,文字插件,音频插件,…...
解决问题:如何在 Git 中查看提交历史
可以使用以下命令查看 Git 中的提交历史: git log这将显示当前分支上的所有提交历史。每个提交的输出包括提交哈希(SHA-1 值)、作者、日期和提交注释。 您也可以添加一些选项,以获取更详细的提交历史: --oneline 显示…...
不同规模的测试团队分别适合哪些测试用例管理工具?测试用例管理工具选型指南
随着软件系统规模的持续增大,业务复杂度的持续增加,软件测试的复杂度也随之越来越大。软件测试工作的复杂性主要体现在测试用例的编写、维护、执行和管理方面。而创建易于阅读、维护和管理的测试用例能够显著减轻测试工作的复杂性。 本篇文章将较为系统的…...
服务器遭受攻击,CPU升高,流量升高,你一般如何处理
服务器遭受攻击,CPU升高,流量升高,你一般如何处理? 在什么情况下服务器遭受攻击,会导致CPU升高,流量升高 1.DDoS(分布式拒绝服务攻击):这是一种常见的网络攻击方式&…...
Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例
使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件,常用于在两个集合之间进行数据转移,如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model:绑定右侧列表的值&…...
SCAU期末笔记 - 数据分析与数据挖掘题库解析
这门怎么题库答案不全啊日 来简单学一下子来 一、选择题(可多选) 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘:专注于发现数据中…...
AtCoder 第409场初级竞赛 A~E题解
A Conflict 【题目链接】 原题链接:A - Conflict 【考点】 枚举 【题目大意】 找到是否有两人都想要的物品。 【解析】 遍历两端字符串,只有在同时为 o 时输出 Yes 并结束程序,否则输出 No。 【难度】 GESP三级 【代码参考】 #i…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序
一、开发准备 环境搭建: 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 项目创建: File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...
对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!
5月28日,中天合创屋面分布式光伏发电项目顺利并网发电,该项目位于内蒙古自治区鄂尔多斯市乌审旗,项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站,总装机容量为9.96MWp。 项目投运后,每年可节约标煤3670…...
鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个生活电费的缴纳和查询小程序
一、项目初始化与配置 1. 创建项目 ohpm init harmony/utility-payment-app 2. 配置权限 // module.json5 {"requestPermissions": [{"name": "ohos.permission.INTERNET"},{"name": "ohos.permission.GET_NETWORK_INFO"…...
OpenLayers 分屏对比(地图联动)
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 地图分屏对比在WebGIS开发中是很常见的功能,和卷帘图层不一样的是,分屏对比是在各个地图中添加相同或者不同的图层进行对比查看。…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
