rancher管理k8s

初始化 rke2 集群

新建 4 台 Ubuntu24

设置每台 vm 的 hostname

1
2
3
4
hostnamectl set-hostname master-node
hostnamectl set-hostname worker-node-01
hostnamectl set-hostname worker-node-02
hostnamectl set-hostname devops

由于 vm 是复制出来的,需要重新生成机器码并重启

1
2
3
rm -rf /etc/machine-id
systemd-machine-id-setup
reboot

安装 master 的 rke2

安装脚本

1
curl -sfL https://get.rke2.io |  INSTALL_RKE2_VERSION=v1.30.1+rke2r1 sh -

设置 rke2 自启动

1
systemctl enable rke2-server.service

启动 rke2

1
systemctl start rke2-server.service

查看启动日志

1
journalctl -u rke2-server -f

安装程序后:

  • rke2-server 服务将被安装。rke2-server 服务将被配置为在节点重启后或进程崩溃或被杀时自动重启。
  • 其他的实用程序将被安装在/var/lib/rancher/rke2/bin/。它们包括 kubectl, crictl, 和 ctr. 注意,这些东西默认不在你的路径上。
  • 还有两个清理脚本会安装到 /usr/local/bin/rke2 的路径上。它们是 rke2-killall.shrke2-uninstall.sh
  • 一个 kubeconfig 文件将被写入/etc/rancher/rke2/rke2.yaml
  • 一个可用于注册其他 server 或 agent 节点的令牌将在 /var/lib/rancher/rke2/server/node-token 文件中创建。

安装 node01 的 rke2

安装脚本

1
curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="agent" INSTALL_RKE2_VERSION=v1.30.1+rke2r1 sh -

设置 rke2 自启动

1
systemctl enable rke2-agent.service

修改 rke2 的/etc/rancher/rke2/config.yaml

1
2
server: https://192.168.121.202:9345
token: K104ef6c38212b6b606595dec8f75fe0d51d530bed461375fb2f1fcbbf9a1d1ecb9::server:07a20527579a6d49cca4f50f9d6b0372

启动 rke2

1
systemctl start rke2-agent.service

查看启动日志

1
journalctl -u rke2-server -f

安装 node02 的 rke2

安装脚本

1
curl -sfL https://get.rke2.io | INSTALL_RKE2_TYPE="agent" INSTALL_RKE2_VERSION=v1.30.1+rke2r1 sh -

设置 rke2 自启动

1
systemctl enable rke2-agent.service

修改 rke2 的/etc/rancher/rke2/config.yaml

1
2
server: https://192.168.121.202:9345
token: K104ef6c38212b6b606595dec8f75fe0d51d530bed461375fb2f1fcbbf9a1d1ecb9::server:07a20527579a6d49cca4f50f9d6b0372

启动 rke2

1
systemctl start rke2-agent.service

查看启动日志

1
journalctl -u rke2-server -f

等待安装完成在任意 master 上执行

1
2
3
4
5
6
7
root@master-node:~# /var/lib/rancher/rke2/bin/kubectl --kubeconfig /etc/rancher/rke2/rke2.yaml get nodes -o wide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
master-node Ready control-plane,etcd,master 20h v1.30.1+rke2r1 192.168.121.202 <none> Ubuntu 24.04 LTS 6.8.0-36-generic containerd://1.7.11-k3s2
worker-node-01 Ready <none> 20h v1.30.1+rke2r1 192.168.121.203 <none> Ubuntu 24.04 LTS 6.8.0-36-generic containerd://1.7.11-k3s2
worker-node-02 Ready <none> 20h v1.30.1+rke2r1 192.168.121.204 <none> Ubuntu 24.04 LTS 6.8.0-36-generic containerd://1.7.11-k3s2
root@master-node:~#

连接集群

安装 kubectl

1
2
3
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
cp kubectl /usr/bin/
chmod +x /usr/bin/kubectl

初始化 kubeconfig

1
2
#将master中的/etc/rancher/rke2/rke2.yaml中的内容复制到 ~/.kube/config中,并且更改api server的url为master的ip
mkdir -p ~/.kube

执行命令

1
2
3
4
5
6
root@devops:~# kubectl get node -owide
NAME STATUS ROLES AGE VERSION INTERNAL-IP EXTERNAL-IP OS-IMAGE KERNEL-VERSION CONTAINER-RUNTIME
master-node Ready control-plane,etcd,master 20h v1.30.1+rke2r1 192.168.121.202 <none> Ubuntu 24.04 LTS 6.8.0-36-generic containerd://1.7.11-k3s2
worker-node-01 Ready <none> 20h v1.30.1+rke2r1 192.168.121.203 <none> Ubuntu 24.04 LTS 6.8.0-36-generic containerd://1.7.11-k3s2
worker-node-02 Ready <none> 20h v1.30.1+rke2r1 192.168.121.204 <none> Ubuntu 24.04 LTS 6.8.0-36-generic containerd://1.7.11-k3s2
root@devops:~#

部署 rancher

部署 rancher

1
2
3
4
5
6
#rancher镜像已经同步到青云的镜像仓库
docker run -d --restart=unless-stopped \
--name rancher \
-p 80:80 -p 443:443 \
--privileged \
dockerhub.qingcloud.com/doubao/rancher:latest

导入现有 k8s 集群

启动完成后,ui 登录后,导入现有集群,选项标准 k8s 即可,导入成功后的 Clusters 会显示新的集群

rancher