重要提示:Rancher v2.0.8 之前仅支持 RKE add-on 安装

如果您当前正在使用 RKE add-on 安装方法,请按照以下说明迁移到 Helm 安装。

以下说明将帮助您从 RKE add-on 安装迁移到使用 Helm 软件包管理器管理 Rancher。

您将需要安装kubectl和由 RKE 生成的 kubeconfig YAML 文件(kube_config_rancher-cluster.yml)。

注意:

  • 本指南假定安装了标准的 Rancher。如果您修改了任何对象名称或命名空间,请进行相应的调整。
  • 如果要从 Rancher v2.0.13 或更早版本或 v2.1.8 或更早版本升级,并且集群的证书已过期,则需要执行其他步骤 以轮换证书。

将 kubectl 指向 Rancher 集群

确保kubectl使用的是正确的 kubeconfig YAML 文件。将环境变量KUBECONFIG设置为指向kube_config_rancher-cluster.yml:

  1. export KUBECONFIG=$(pwd)/kube_config_rancher-cluster.yml

设置环境变量 KUBECONFIG 之后,请验证其是否包含正确的 server 参数。它应直接指向端口 6443上的集群节点之一。

  1. kubectl config view -o=jsonpath='{.clusters[*].cluster.server}'
  2. https://NODE:6443

如果命令的输出显示后缀为 /k8s/clusters的 Rancher 主机名,则说明配置了错误的 kubeconfig YAML 文件。它应该是您使用 RKE 创建集群以运行 Rancher 时创建的文件。

保存您的证书

如果您已在 Rancher Cluster Ingress 上终止了 ssl,找回证书和密钥以在 Helm 安装中使用。

使用kubectl来获取密文,解码值并将输出到文件。

  1. kubectl -n cattle-system get secret cattle-keys-ingress -o jsonpath --template='{ .data.tls\.crt }' | base64 -d > tls.crt
  2. kubectl -n cattle-system get secret cattle-keys-ingress -o jsonpath --template='{ .data.tls\.key }' | base64 -d > tls.key

如果您指定了私有 CA 根证书

  1. kubectl -n cattle-system get secret cattle-keys-server -o jsonpath --template='{ .data.cacerts\.pem }' | base64 -d > cacerts.pem

删除以前的 Kubernetes 对象

删除由 RKE 安装创建的 Kubernetes 对象。

注意: 删除这些 Kubernetes 组件不会影响 Rancher 的配置或数据库,但是在进行任何维护后,最好事先创建数据备份。有关详细信息,请参见备份高可用 Rancher

  1. kubectl -n cattle-system delete ingress cattle-ingress-http
  2. kubectl -n cattle-system delete service cattle-service
  3. kubectl -n cattle-system delete deployment cattle
  4. kubectl -n cattle-system delete clusterrolebinding cattle-crb
  5. kubectl -n cattle-system delete serviceaccount cattle-admin

从rancher-cluster.yml中删除 addons 部分

来自rancher-cluster.yml 的 addons 部分包含使用 RKE 部署 Rancher 所需的所有资源。通过切换到 Helm,集群配置文件中不再需要这一部分。在您喜欢的文本编辑器中打开rancher-cluster.yml并删除 addons 部分:

重要: 确保从集群配置文件中仅删除 addons 部分。

  1. nodes:
  2. - address: <IP> # hostname or IP to access nodes
  3. user: <USER> # root user (usually 'root')
  4. role: [controlplane,etcd,worker] # K8s roles for node
  5. ssh_key_path: <PEM_FILE> # path to PEM file
  6. - address: <IP>
  7. user: <USER>
  8. role: [controlplane,etcd,worker]
  9. ssh_key_path: <PEM_FILE>
  10. - address: <IP>
  11. user: <USER>
  12. role: [controlplane,etcd,worker]
  13. ssh_key_path: <PEM_FILE>
  14. services:
  15. etcd:
  16. snapshot: true
  17. creation: 6h
  18. retention: 24
  19. ## 从此处开始删除addons部分到文件结尾
  20. addons: |-
  21. ---
  22. ...
  23. ## 文件结尾

按照 Helm 和 Rancher 安装步骤继续安装

从这里开始执行标准安装步骤。