使用 Rancher 安装 Kubernetes

如果 Rancher 安装方式发生变化,请始终参考 Rancher 官方文档。

安装 RancherD

RancherD 是 Rancher 最新支持的一种部署方案,运行以下命令来安装 RancherD 以进行 Rancher + Kubernetes 的部署。

curl -sfL https://get.rancher.io | sh -

如果遇到网络问题,可以先行下载 rancherD 的安装包再进行手动安装。

# fill the proxy url if you use one
export https_proxy=
curl -s https://api.github.com/repos/rancher/rancher/releases/latest \
  |jq '.assets[] |
    select(.browser_download_url|contains("rancherd-amd64.tar.gz")) |
    .browser_download_url' -r \
  |wget -ci -
tar xzf rancherd-amd64.tar.gz -C /usr/local

之后只需要启动 rancherd-server 服务就可以得到一个 Kubernetes 环境。

systemctl enable rancherd-server
systemctl start rancherd-server

查看 Kubernetes 安装状态:

journalctl -fu rancherd-server

最后看到 successfully,说明 Kubernetes 已安装完成。

"Event occurred" object="cn120" kind="Node" apiVersion="v1" \ 
type="Normal" reason="Synced" message="Node synced successfully"

使用 kubectl

集群启动后,配置 KUBECONFIG,并将 rke2 路径加入环境变量以使用 kubectl 命令:

export KUBECONFIG=/etc/rancher/rke2/rke2.yaml
export PATH=$PATH:/var/lib/rancher/rke2/bin

查看 Rancher 部署状态:

kubectl get daemonset rancher -n cattle-system
kubectl get pod -n cattle-system

Result:

NAME      DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                         AGE
rancher   1         1         1       1            1           node-role.kubernetes.io/master=true   36m
NAME                               READY   STATUS      RESTARTS   AGE
helm-operation-5c2wd               0/2     Completed   0          34m
helm-operation-bdxlx               0/2     Completed   0          33m
helm-operation-cgcvr               0/2     Completed   0          34m
helm-operation-cj4g4               0/2     Completed   0          33m
helm-operation-hq282               0/2     Completed   0          34m
helm-operation-lp5nn               0/2     Completed   0          33m
rancher-kf592                      1/1     Running     0          36m
rancher-webhook-65f558c486-vrjz9   1/1     Running     0          33m

设置 Rancher 用户名及密码

rancherd reset-admin

你会看到如下的结果:

INFO[0000] Server URL: https://*.*.*.*:8443      
INFO[0000] Default admin and password created. Username: admin, Password: ****

打开 :8443 的网址,可以看到登录页面:

rancher-login-page

输入上面设置的用户名和密码,进入 Rancher 仪表盘。

rancher-dashboard

高可用设置

获取集群当前的token: /var/lib/rancher/rke2/server/node-token

在其他节点上安装 rancherd-server

tar xzf rancherd-amd64.tar.gz -C /usr/local
systemctl enable rancherd-server

创建 RKE2 配置所在目录:

mkdir -p /etc/rancher/rke2

添加配置文件 /etc/rancher/rke2/config.yaml

server: https://192.168.60.120:9345
token: <the token in /var/lib/rancher/rke2/server/node-token>

server 为第一个启动的节点地址加端口号 9345token 为上面从文件获取的 token 值。

启动 rancherd-server 服务,就可以将此节点加入 Kubernetes 集群。

systemctl start rancherd-server
journalctl -fu rancherd-server

其他节点可复制配置和操作,直到所有节点都加入集群。

我们使用3个节点,输入 kubectl get daemonset rancher -n cattle-system查看当前启动的 rancher 节点数量:

NAME      DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                         AGE
rancher   3         3         3       3            3           node-role.kubernetes.io/master=true   129m

至此,一个三节点的高可用 Rancher + Kubernetes 集群已经安装成功。