CentOS 7.6下K3s高可用集群和rancher部署指南
本文详细介绍了在CentOS 7.6环境下部署K3s集群和Rancher管理平台的完整流程。主要内容包括: 系统环境准备:关闭防火墙和SELinux,配置网络模块和默认路由; K3s安装部署:包括主节点初始化、高可用集群配置、Agent节点加入,以及本地镜像仓库设置; Rancher安装:通过Helm部署cert-manager证书管理和Rancher平台,配置本地镜像源和访问域名。 所有步骤均提
一、准备工作
系统:CentOS Linux release 7.6.1810 (Core),主节点10.18.97.186,从节点10.18.97.185,用harbor搭建的本地镜像源10.18.97.187
1、NetworkManager
在 /etc/NetworkManager/conf.d 中创建名为 rke2-canal.conf 的配置文件,内容如下:
vi /etc/NetworkManager/conf.d/rke2-canal.conf
[keyfile]
unmanaged-devices=interface-name:cali*;interface-name:flannel*
systemctl reload NetworkManager
2、关闭防火墙 (必须)
systemctl stop firewalld && systemctl disable firewalld
3、关闭setlinux (必须)
setenforce 0
sed -i 's/enforcing/disabled/' /etc/selinux/config
4、其他步骤
1.
cat << EOF | tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
2.
#手动执行加载文件
modprobe overlay
modprobe br_netfilter
3.
cat << EOF | tee /etc/modules-load.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables =1
net.bridge.bridge-nf-call-iptables =1
net.ipv4.ip_forward =1
EOF
4.
sysctl --system
5.配置 ipvsadm 模块
cat << EOF | tee /etc/modules-load.d/ipvs.conf
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
EOF
6.
cat << EOF | tee ipvs.sh
#!/bin/bash
modprobe ip_vs
modprobe ip_vs_rr
modprobe ip_vs_wrr
modprobe ip_vs_sh
modprobe nf_conntrack
EOF
7.
sh ipvs.sh
5、默认路由 (Default Network Route)
如果节点没有配置默认路由,则必须添加一个默认路由;即使是通过虚拟设备产生的“黑洞”路由(black-hole route)也可以。
K3s 需要默认路由以自动检测节点的主 IP,并确保 kube-proxy 的 ClusterIP 路由功能正常工作。可通过以下步骤添加 dummy 默认路由:
ip link add dummy0 type dummy
ip link set dummy0 up
ip addr add 203.0.113.254/31 dev dummy0
ip route add default via 203.0.113.255 dev dummy0 metric 1000
删除路由
# 删除添加的默认路由
sudo ip route del default via 203.0.113.255 dev dummy0 metric 1000
# 删除 dummy0 接口的 IP 地址(可选,删除接口前通常不需要单独这一步)
sudo ip addr del 203.0.113.254/31 dev dummy0
# 禁用 dummy0 接口
sudo ip link set dummy0 down
# 删除 dummy0 虚拟接口
sudo ip link delete dev dummy0 type dummy
二、K3s的安装
(1)主节点安装
将同一版本的 K3s 的安装脚本(k3s-install.sh)、K3s 的二进制文件(k3s)、K3s 依赖的镜像(k3s-airgap-images-amd64.tar)下载到了/root目录下。
1、导入镜像到 containerd 镜像列表
sudo mkdir -p /var/lib/rancher/k3s/agent/images/
sudo cp /root/k3s-airgap-images-amd64.tar /var/lib/rancher/k3s/agent/images/
2、将 K3s 安装脚本和 K3s 二进制文件移动到对应目录并授予可执行权限
sudo chmod a+x /root/k3s /root/k3s-install.sh
sudo cp /root/k3s /usr/local/bin/
3、更改配置文件
mkdir -p /etc/rancher/k3s/
vi /etc/rancher/k3s/config.yaml
#内容(注意tls-san的要有想加入本节点其他server的ip才能使用高可用)
write-kubeconfig-mode: "0644" # 允许非root用户读取kubeconfig
tls-san:
- "服务ip"
- "从节点ip"
cluster-init: true
token: "123456"
4、安装 K3s
INSTALL_K3S_SKIP_DOWNLOAD=true /root/k3s-install.sh
5、检验
export KUBECONFIG=/etc/rancher/k3s/k3s.yaml # kubectl不能用时使用这条命令

6、配置本地镜像源
更改文件
sudo vi /etc/rancher/k3s/registries.yaml
mirrors:
10.18.97.187:
endpoint:
- "http://10.18.97.187"
configs:
"10.18.97.187":
tls:
insecure_skip_verify: true
重启生效
systemctl restart k3s
7、卸载
sudo /usr/local/bin/k3s-agent-uninstall.sh
bash /usr/local/bin/k3s-uninstall.sh
8、报错检查命令
journalctl -u k3s -f
(2)高可用安装,加入其他server
1.准备另一台主机,其他步骤与上面步骤一致,配置文件不同
mkdir -p /etc/rancher/k3s/
vi /etc/rancher/k3s/config.yaml
内容
server: "https://10.18.97.186:6443"
write-kubeconfig-mode: "0644"
tls-san:
- "10.18.97.186"
- "10.18.97.185"
cluster-init: true
token: "123456”
2.检验

3.配置本地镜像
与上面相同
(3)agent节点加入
1.步骤与上面一致,安装命令加一些参数,不用配置文件
K3S_URL=https://10.18.97.186:6443 K3S_TOKEN=123456 INSTALL_K3S_SKIP_DOWNLOAD=true ./k3s-install.sh
2.检验

3.配置本地镜像
重启生效 systemctl restart k3s-agent
三、rancher的安装
1.安装helm
#获取软件
wget https://get.helm.sh/helm-v3.13.2-linux-amd64.tar.gz
(在有网主机上下载,传到目的主机)
#解压软件
tar -zxvf helm-v3.13.2-linux-amd64.tar.gz
#加入环境变量
mv linux-amd64/helm /usr/local/bin/helm
验证
helm version
![]()
2.安装cert-system
1.在有网主机
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm pull cert-manager jetstack/cert-manager
(下载tar文件)
2.解压更改yaml文件,底行模式寻找关键字repository:后面添加本地镜像ip(五个位置)
vi cert-manager/va*.yaml

3.创建命名空间
kubectl create namespace cert-manager
4.安装
helm install cert-manager ./cert-manager-v1.11.0.tgz --namespace cert-manager --set image.repository=10.18.97.187/quay.io/jetstack/cert-manager-controller --set webhook.image.repository=10.18.97.187/quay.io/jetstack/cert-manager-webhook --set cainjector.image.repository=10.18.97.187/quay.io/jetstack/cert-manager-cainjector --set startupapicheck.image.repository=10.18.97.187/quay.io/jetstack/cert-manager-ctl --set installCRDs=true
如果有问题可以执行 export KUBECONFIG=/etc/rancher/k3s/k3s.yaml再安装
Pod跑起来就可以了
5.检验:

6.卸载
helm uninstall cert-manager -n cert-manager
3.安装rancher
1.有网主机上
#添加rencher仓库
helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
#更新索引
helm repo update
#查找rancher(可忽略)
helm search repo rancher
2.拉取到本地
helm pull rancher-stable/rancher --version=v2.11.3
(tgz压缩包)传送到离线主机
3.解压
tar -zxf rancher-2.11.3.tgz
4.更改yaml文件
cd rancher/
sudo vi values.yaml
用底行模式寻找/ repository: rancherImage 在对应位置加上10.18.97.187/(本地镜像源)


5.创建命名空间
kubectl create namespace cattle-system
6.安装
helm install rancher --namespace cattle-system --set hostname=10.18.97.186.sslip.io --set replicas=1 --set systemDefaultRegistry=10.18.97.187 --set bootstrapPassword=1qaz@WSX ./rancher
7.等待pod跑起来,浏览器打开网站10.18.97.186.sslip.io


8.卸载rancher
helm uninstall rancher -n cattle-system
更多推荐
所有评论(0)