当前位置: 首页 > news >正文

Rancher Server + Kubernets搭建云原生集群平台

目录

  • Rancher Server + Kubernets搭建云原生集群平台
  • 一、环境准备
    • 1、软件准备
    • 2、环境规划
    • 3、挂载数据盘
  • 二、虚拟机初始化基础配置(所有节点都需要操作)
    • 1、执行时间服务器脚本(包括配置hostName主机名)
    • 2、配置hosts文件
    • 3、配置各节点免密登录
  • 三、在每个节点安装docker
    • 1、配置docker-ce国内yum源(阿里云)
    • 2、安装docker依赖包
    • 3、安装docker-ce
    • 4、启动docker服务并设置开机自启
    • 5、查看docker运行状态
    • 6、查看docker版本信息
    • 7、开启包转发功能和修改内核参数
    • 8、加载并应用 /etc/sysctl.d/docker.conf 文件中的配置
    • 9、配置阿里云镜像
    • 10、重启docker
  • 四、部署rancher
    • 1、在rancher节点下载rancher镜像
    • 2、通过docker运行rancher服务器的容器
  • 五、登录Rancher平台
    • 1、再浏览器访问Rancher节点IP ,由于未使用授信证书,会有报警,忽略即可
    • 2、设置密码
    • 3、至此Rancher安装完成
    • 4、登录后可点击右下角语言选项选择中文
    • 5、设置Rancher默认镜像仓库
  • 六、创建集群
    • 1、点击全局选择添加集群
    • 2、填写集群名称,选择kubernetes版本点击保存
    • 3、勾选Etcd、control,复制此命令,在每个master节点执行命令
    • 4、勾选worker复制此命令在每个worker节点执行命令
    • 5、等待服务安装完成
  • 七、部署nginx服务
    • 1、配置nginx点击进入集群tyzwkj-cloud选择Default
    • 2、配置负载均衡
  • 八、kubectl 命令行工具设置
    • 1 、使用rancher安装的k8s集群,服务器里面的kubectl 工具不能正常使用,如果需要在服务器执行kubectl命令的话,需要配置一下上下文
    • 2、从rancher页面获取Kubectl工具连接k8s集群所需的配置文件kubeconfig,如下图所示
  • 九、监控配置
    • 1、进入监控配置画面
    • 2、启用监控
    • 3、部署监控服务
    • 4、验证
  • 十、重新安装

Rancher Server + Kubernets搭建云原生集群平台

Rancher 是一款开源的企业级容器管理平台,专注于简化 Kubernetes 集群的部署、运维及多环境管理,助力企业在混合云、多云及边缘计算场景中实现高效容器化应用交付。

Rancher 凭借图形化界面、跨平台兼容性及开箱即用的监控/日志功能,大幅降低了 Kubernetes 的使用门槛。其开源特性允许企业深度定制,而活跃的社区生态则持续提供功能迭代与问题支持。对于需要统一管理复杂容器环境的企业,Rancher 是实现高效运维与数字化转型的理想选择。

【Rancher官方文档】

一、环境准备

1、软件准备

序号环境名称说明版本号
1Rancher Serverk8s运维平台v2.5.7

2、环境规划

序号IPHostName操作系统K8s角色说明
1192.168.255.141rancherAnolis OS 8.9 x86 64位Rancher服务Kubernetes 管理平台
2192.168.255.142masterAnolis OS 8.9 x86 64位控制节点Kubernetes Master
3192.168.255.143worker01Anolis OS 8.9 x86 64位工作节点Kubernetes Master高可用节点,如果不需要高可用,可不部署此服务器
4192.168.255.144worker02Anolis OS 8.9 x86 64位工作节点Kubernetes Worker

3、挂载数据盘

** 注意: **

  • 1、该步骤不是必须的,如果需要将【系统盘】与【数据盘】进行分离,并且【数据盘】是独立的一块磁盘的话,是需要执行该步骤进行挂载到系统中的;(非必要执行)
  • 2、下面的命令需要在 [192.168.255.141][192.168.255.142][192.168.255.143][192.168.255.144] 4台服务器上都执行

(1)、分区
对新磁盘【/dev/sdb】(根据lsblk命令输出得知新磁盘目录的)进行执行分区

[root@localhost ~]# lsblk
[root@localhost ~]# df -h
[root@localhost ~]# fdisk /dev/sdb

输入命令符

n # 创建新分区
p # 选择主分区
# 选择分区号(如果提示)
# 指定起始位置
# 指定分区大小
w # 保存并退出fdisk

(2)、格式化
对新磁盘【/dev/sdb1】(根据lsblk命令输出得知新磁盘目录的)进行执行格式化

[root@localhost ~]# mkfs.ext4 /dev/sdb1
[root@localhost ~]# mkdir /data

在这里插入图片描述

(3)、挂载
临时挂载,立即生效,但是系统重启后会失效,重启系统后需要重新执行命令或【永久挂载】方式修改配置文件

[root@localhost ~]# mount /dev/sdb1 /data

永久挂载,系统每次重启后会读取配置文件/etc/fstab中的配置

[root@localhost ~]# vim /etc/fstab/dev/sdb1 /data ext4 defaults 0 2

二、虚拟机初始化基础配置(所有节点都需要操作)

1、执行时间服务器脚本(包括配置hostName主机名)

(1)、创建init文件夹

[root@rancher ~]# mkdir init
[root@rancher ~]# cd init

(2)、创建文件传输,上传后,为文件添加执行权限后执行

[root@rancher init]# vim init.sh

init.sh文件内容

#配置主机名和host文件echo "正在配置你的主机名..."echoread -p "请输入你的主机名:" host hostname(){hostnamectl set-hostname $host}hostname host && echo -e "主机名设置成功!!"#echo "正在配置你的hosts文件..."
#        ip=$(ip a | grep ens33 |grep inet |awk '{print $2}' | awk -F"/" '{print $1}')
#       echo "$ip $host" >> /etc/hosts
#        echo  "hosts配置完成!!!"# 防火墙设置echo "关闭防火墙和selinux中...."echosystemctl stop firewalld && systemctl disable firewalld &> /dev/null && setenforce 0 &&  sed -i '/^SELINUX/s/enforcing/disabled/' /etc/selinux/configif [ $? -eq 0 ];thenecho "防火墙和selinux已经成功关闭....."elseecho "防火墙和selnux关闭失败,请手动关闭!!!"fi
echo#外网检测
echo "正在检测网络是否能上外网......"echoping -c 2 www.baidu.com &> /dev/nullif [ $? -eq 0 ];thenecho "网络正常"elseecho "网络不可达!"fi
echo# 配置yum源-这里选用阿里源
#echo
#	echo "修改为国内yum源"
#	mkdir /etc/yum.repos.d/bak
#	mv /etc/yum.repos.d/* /etc/yum.repos.d/bak
#	wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#	wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
#	yum clean all && yum makecache # 修改时区echo "修改时区中......"timedatectl set-timezone Asia/Shanghailn -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtimeecho "修改时区成功......"# 时间同步
echoecho "时间同步中……"yum install -y ntpdate &> /dev/nullntpdate 172.26.251.1 &> /dev/nullfile=$(who | head -1 | cut -d" " -f1)echo "* */1 * * * /usr/sbin/ntpdate  172.26.251.1" > /var/spool/cron/$fileif [ $? -eq 0 ];thenecho "时间同步成功!!!"echo "unset MAILCHECK" >> /etc/profilesource /etc/profile &> /dev/nullelseecho "时间同步失败!!!"fi
# 修改字符编码
echoecho "修改字符编码中……"echo 'LANG="en_US.UTF-8"' > /etc/locale.confecho "修改字符成功......"echo "----配置ssh禁用反向解析----"echo 'UseDNS=no' >> /etc/ssh/sshd_configecho "----允许通过密码ssh远程登录----"echo 'PermitRootLogin yes' >> /etc/ssh/sshd_configsystemctl restart sshdecho "----设置ssh,20分钟登录无操作自动退出,服务器每120秒心跳包测试客户端,三次不成功断开----"echo 'export TMOUT=1200' >> /etc/profilesource /etc/profileecho "----查看历史操作记录,并加时间戳----"echo 'export HISTTIMEFORMAT="%F %T `whoami` "' >> /etc/profilesource /etc/profile#内核优化
echo "----内核优化----"
grep 'net.ipv6.conf.all.disable_ipv6' /etc/sysctl.conf  > /dev/null 2>&1
if [ $? -ne 0 ];then
# 关闭ipv6echo 'net.ipv6.conf.all.disable_ipv6 = 1' >> /etc/sysctl.confecho 'net.ipv6.conf.default.disable_ipv6 = 1' >> /etc/sysctl.conf#允许系统打开的端口范围,不建议从1024开始,因为某些端口会存在10000以内。一般情况下已够用。echo 'net.ipv4.ip_local_port_range = 10000    65000' >> /etc/sysctl.confecho 'net.core.somaxconn = 32768 >> /etc/sysctl.conf'
fi

在这里插入图片描述

(3)、执行初始化

#为文件添加执行权限
[root@rancher init]# chmod +x ./init.sh 
[root@rancher init]# ./init.sh 正在配置你的主机名...请输入你的主机名:

在这里插入图片描述

(4)、执行完后重启系统

[root@rancher init]# reboot

2、配置hosts文件

[root@rancher ~]# vim /etc/hosts

打开hosts文件点击键盘i进行插入,下面配置copy到hosts

192.168.255.141 rancher
192.168.255.142 master
192.168.255.143 worker01
192.168.255.144 worker02

在这里插入图片描述

3、配置各节点免密登录

#rancher
#生成ssh密钥
[root@rancher init]# ssh-keygen

输入后 敲击3下enter键盘 即可生成成功
在这里插入图片描述

访问连接各节点ssh

#复制密钥到其他节点(每个节点都要执行)
[root@rancher]#  ssh-copy-id root@rancher
[root@rancher]#  ssh-copy-id root@master
[root@rancher]#  ssh-copy-id root@worker01
[root@rancher]#  ssh-copy-id root@worker02

三、在每个节点安装docker

1、配置docker-ce国内yum源(阿里云)

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在这里插入图片描述

2、安装docker依赖包

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

在这里插入图片描述

3、安装docker-ce

 yum install docker-ce -y

在这里插入图片描述

** 备注:**

  • 如果出现 【try to add ‘–allowerasing’ to command line to replace conflicting packages or ‘–skip-broken’ to skip uninstallable packages or ‘–nobest’ to use not only best candidate packages】,则执行下面命令
yum install docker-ce -y --allowerasing

在这里插入图片描述

4、启动docker服务并设置开机自启

systemctl start docker && systemctl enable docker

5、查看docker运行状态

systemctl status docker

在这里插入图片描述

6、查看docker版本信息

docker version

7、开启包转发功能和修改内核参数

modprobe br_netfilter
cat > /etc/sysctl.d/docker.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF

8、加载并应用 /etc/sysctl.d/docker.conf 文件中的配置

sysctl -p /etc/sysctl.d/docker.conf

在这里插入图片描述

9、配置阿里云镜像

创建 /etc/docker 目录

sudo mkdir -p /etc/docker

创建docker镜像配置文件

sudo tee /etc/docker/daemon.json <<-'EOF'{"registry-mirrors": ["https://ox288s4f.mirror.aliyuncs.com","https://registry.docker-cn.com","http://hub-mirror.c.163.com","https://mirror.ccs.tencentyun.com","https://docker.hpcloud.cloud","https://docker.m.daocloud.io","https://docker.unsee.tech","https://docker.1panel.live","http://mirrors.ustc.edu.cn","https://docker.chenby.cn","http://mirror.azure.cn","https://dockerpu11.org","https://dockerhub.icu","https://hub.rat.dev","https://proxy.1panel.live","https://docker.1panel.top","https://docker.m.daocloud.io","https://docker.1ms.run","https://docker.ketches.cn"]
}
EOF

10、重启docker

立即生效

sudo systemctl daemon-reload

重启docker

sudo systemctl restart docker

四、部署rancher

1、在rancher节点下载rancher镜像

[root@rancher ~]# docker pull rancher/rancher:v2.5.7

在这里插入图片描述

2、通过docker运行rancher服务器的容器

命令描述

-d: 在后台(detached mode)运行容器,即使终端关闭也保持运行。--restart=unless-stopped: 容器退出时,除非明确停止,否则会自动重启。这个选项确保 Rancher 服务在意外关闭后能够自动恢复运行。-p 80:80 -p 443:443: 将容器内部的端口映射到宿主机上,使得宿主机的 80 端口和 443 端口可以访问 Rancher 服务器提供的服务。例如,可以通过 `http://宿主机IP``https://宿主机IP` 访问 Rancher Web UI。--privileged: 赋予容器全部的 Linux capabilities,这在某些情况下可能是必要的,例如需要访问设备或执行特权操作时。--name rancher: 指定容器的名称为 `rancher`,这样可以通过该名称管理和操作这个容器。rancher/rancher:v2.5.7: 指定要运行的 Docker 镜像,这里是 Rancher 服务器的镜像版本为 `v2.5.7`

(1)、创建rancher数据挂载文件夹

mkdir -p /data/d/rancher/data

(2)、启动rancher容器

[root@rancher ~]# docker run -d --restart=always -p 80:80 -p 443:443 -v /etc/localtime:/etc/localtime -v /etc/timezone:/etc/timezone -v /data/d/rancher/data:/var/lib/rancher --privileged=true --user=root --name rancher rancher/rancher:v2.5.7

(3)、查看rancher容器信息

docker ps -a|grep rancher

在这里插入图片描述

五、登录Rancher平台

1、再浏览器访问Rancher节点IP ,由于未使用授信证书,会有报警,忽略即可

2、设置密码

在这里插入图片描述

3、至此Rancher安装完成

在这里插入图片描述

4、登录后可点击右下角语言选项选择中文

在这里插入图片描述

5、设置Rancher默认镜像仓库

把系统设置里面的 ”system-default-registry” value设置为

registry.cn-hangzhou.aliyuncs.com

在这里插入图片描述
在这里插入图片描述

六、创建集群

1、点击全局选择添加集群

在这里插入图片描述
在这里插入图片描述

2、填写集群名称,选择kubernetes版本点击保存

在这里插入图片描述

3、勾选Etcd、control,复制此命令,在每个master节点执行命令

在这里插入图片描述

sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  registry.cn-hangzhou.aliyuncs.com/rancher/rancher-agent:v2.5.7 --server https://192.168.255.141 --token ndkzstpnht7z5lvftkhmbc7wvgsgrxlq6s2r64ttqk9gxjgrnmjp75 --ca-checksum b5cb4d97b8be287df94db3736d7b7b58f8b2cfcb2758d91fb06c78afbf7b5bcd --etcd --controlplane

4、勾选worker复制此命令在每个worker节点执行命令

在这里插入图片描述

sudo docker run -d --privileged --restart=unless-stopped --net=host -v /etc/kubernetes:/etc/kubernetes -v /var/run:/var/run  registry.cn-hangzhou.aliyuncs.com/rancher/rancher-agent:v2.5.7 --server https://192.168.255.141 --token ndkzstpnht7z5lvftkhmbc7wvgsgrxlq6s2r64ttqk9gxjgrnmjp75 --ca-checksum b5cb4d97b8be287df94db3736d7b7b58f8b2cfcb2758d91fb06c78afbf7b5bcd --worker

备注:

  • worker命令在主机worker01和worker02上执行

5、等待服务安装完成

此过程将耗时较长时间(拉取镜像时间较长),本文3台节点初始化完成用了近3个小时

在这里插入图片描述

点击主机查看监控

在这里插入图片描述

七、部署nginx服务

1、配置nginx点击进入集群tyzwkj-cloud选择Default

在这里插入图片描述

(1)、点击部署服务
在这里插入图片描述
(2)、拉取nginx镜像,填写配置;点击启动
在这里插入图片描述

(3)、等待nginx启动
在这里插入图片描述
在这里插入图片描述

2、配置负载均衡

(1)、进入【负载均衡】画面
在这里插入图片描述

(2)、新增ingress映射,点击保存
在这里插入图片描述
(3)、设置完成后会生成一个域名
在这里插入图片描述
(4)、验证nginx服务
在这里插入图片描述

点击nginx-ingress地址(上图中80/http)

在这里插入图片描述

备注:


如果点击nginx-ingress地址无法解析域名时,需要修改一下本地hosts文件,将xip.io域名解析到master节点ip

  • 本例中master节点的ip是192.168.255.142,下面是在hosts文件中添加的配置
192.168.255.142 xip.io

(5)、验证负载均衡

点击上图nginx进入点击pods查看日志

【第一步】进入第一个nginx容器,查看第一个nginx容器的日志

在这里插入图片描述
在这里插入图片描述

【第二步】进入第二个nginx容器画面,查看第一个nginx容器的日志

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

【第三步】每访问一次

在这里插入图片描述

八、kubectl 命令行工具设置

1 、使用rancher安装的k8s集群,服务器里面的kubectl 工具不能正常使用,如果需要在服务器执行kubectl命令的话,需要配置一下上下文

(1)、 kubectl 配置命令自动补全

yum install -y bash-completion
echo 'source /usr/share/bash-completion/bash_completion' >> ~/.bashrc
echo 'source  <(kubectl completion bash)' >> ~/.bashrc
source ~/.bashrc

(2)、搜索根目录文件名为 kubectl 的文件或目录是否存在,不存在则自己创建

find / -name kubectl
mkdir kubectl

(3)、查看/var/lib/rancher/下的文件获取要创建链接的源文件或目录

cd /var/lib/rancher/
执行下面命令查看是否可以获取到pod列表
v1.25.12-rke2r1-15557ace5a8f/bin/kubectl get pod -A

(4)、然后替换掉v1.25.12-rke2r1-15557ace5a8f/bin/kubectl换成自己的版本;执行然后执行下面软链接的命令
/usr/bin/kubectl为目标路径,来访问实际的 kubectl 可执行文件

ln -s   /var/lib/rancher/rke/data/v1.25.12-rke2r1-15557ace5a8f/bin/kubectl /usr/bin/kubectl

2、从rancher页面获取Kubectl工具连接k8s集群所需的配置文件kubeconfig,如下图所示

在这里插入图片描述

(1)、创建目录

mkdir ${HOME}/.kube/

(2)、把下载的kubeConfig上传到服务器.重命名为config放到 ${HOME}/.kube/目录下
查看安装的版本

kubectl version

九、监控配置

在这里插入图片描述

1、进入监控配置画面

在这里插入图片描述

2、启用监控

点击【启用监控】按钮
在这里插入图片描述

3、部署监控服务

进入【集群】->System画面后,会发现新增了加【cattle-prometheus】命名空间及相关服务,这就是监控服务,只需等待一段时间就会自动部署好

在这里插入图片描述

4、验证

待上一步【cattle-prometheus】命名空间下的所有服务全部部署完成并状态为【Active】后,即可进入【集群】画面后,会看到下图所示的监控面板

在这里插入图片描述

点击上图Grafana按钮就会进入对应监控画面,如下图所示

在这里插入图片描述

十、重新安装

说明:
执行重复安装,需要清除所有记录再执行安装

docker stop $(docker ps -aq)docker system prune -fdocker volume rm $(docker volume ls -q)docker image rm $(docker image ls -q)rm -rf /etc/ceph \/etc/cni \/etc/kubernetes \/opt/cni \/opt/rke \/run/secrets/kubernetes.io \/run/calico \/run/flannel \/var/lib/calico \/var/lib/etcd \/var/lib/cni \/var/lib/kubelet \/var/lib/rancher/rke/log \/var/log/containers \/var/log/pods \/var/run/calico

结束,以上就是通过RancherServer搭建k8s的全部内容。

http://www.dtcms.com/a/264459.html

相关文章:

  • 【Part 3 Unity VR眼镜端播放器开发与优化】第四节|高分辨率VR全景视频播放性能优化
  • 从模型部署到AI平台:云原生环境下的大模型平台化演进路径
  • C++异步编程里避免超时机制
  • 【深度学习机器学习】Epoch 在深度学习实战中的合理设置指南
  • Linux--线程池
  • git本地分支回退到某个commit,并推送远程,使远程分支也恢复到这个commit
  • 【全网唯一】自动化编辑器 Windows版纯本地离线文字识别插件
  • 6.原始值的响应式方案
  • UniApp 加载 Web 页面完整解决方案
  • UniApp(vue3+vite)如何原生引入TailwindCSS(4)
  • YOLOv11深度解析:Ultralytics新一代目标检测王者的创新与实践(附网络结构图+训练/推理/导出全流程代码详解)
  • 【Erdas实验教程】024:遥感图像辐射增强(亮度反转Brightness Inversion)
  • Python数据解析与图片下载工具:从JSON到本地文件的自动化流程
  • springboot使用redisTemplate的方法,详细说明
  • 以智能楼宇自动化控制系统为基石,构筑绿色建筑节能增效新标杆
  • cmake笔记
  • 【分明集合】特征函数、关系与运算
  • 【格与代数系统】格与哈斯图
  • 笨方法学python-习题12
  • Sql注入中万能密码order by联合查询利用
  • 应急响应类题练习——玄机第四章 windows实战-emlog
  • Foundation 5 安装使用教程
  • SQL SELECT 语句
  • 在线租房平台源码+springboot+vue3(前后端分离)
  • 应急响应类题练习——玄机第五章 Windows 实战-evtx 文件分析
  • 6.Docker部署ES+kibana
  • Vite 7.0 与 Vue 3.5:前端开发的性能革命与功能升级
  • 【环境配置】Neo4j Community Windows 安装教程
  • HDMI 2.1 FRL协议的流控机制:切片传输(Slicing)和GAP插入
  • LL面试题11