本节描述了如何根据 来安装 Kubernetes 集群。该集群应仅用于运行 Rancher Server。

对于 v2.4 之前的 Rancher,Rancher 应该安装在 RKE(Rancher Kubernetes Engine)Kubernetes 集群上。RKE 是经过 CNCF 认证的 Kubernetes 发行版,并且全部组件完全在 Docker 容器内运行。

从 Rancher v2.4 开始,Rancher Server 可以安装在 RKE Kubernetes 集群或 K3s Kubernetes 集群上。K3s 也是 Rancher 发布的经过完全认证的 Kubernetes 发行版,但比 RKE 更新。我们建议在 K3s 上安装 Rancher,因为 K3s 易于使用且更轻量,全部组件都打包在了一个二进制文件里。并且这个二进制文件小于 100 MB。注意:如果在 RKE 集群上安装了 Rancher 之后,目前没有办法将这个高可用部署迁移到 K3s 集群上。

Rancher Server 只能在使用 RKE 或 K3s 安装的 Kubernetes 集群中运行。不支持在托管的 Kubernetes 集群(例如 EKS)上使用 Rancher。

在离线环境中安装 Kubernetes 集群的步骤会根据是在 RKE 上安装 Rancher 还是在 K3s 上安装 Rancher 有所不同。

  • 已经在离线环境中创建了节点
  • 已经部署了 Docker 私有镜像仓库

1、准备镜像目录

  1. 从页面获取要运行的 K3s 版本的镜像文件。

  2. 在每个节点上启动 K3s 之前,将这个tar文件放在 images 目录中,例如:

2、创建镜像库 YAML

/etc/rancher/k3s/registries.yaml创建registries.yaml文件。这将告诉 K3s 如何连接到您的私有镜像仓库。

下面是一个registries.yaml文件的示例:

  1. ---
  2. mirrors:
  3. customreg:
  4. endpoint:
  5. - "https://ip-to-server:5000"
  6. configs:
  7. customreg:
  8. auth:
  9. username: xxxxxx # 镜像仓库用户名
  10. password: xxxxxx # 镜像仓库密码
  11. cert_file: <镜像仓库所用的客户端证书文件路径>
  12. key_file: <镜像仓库所用的客户端密钥文件路径>
  13. ca_file: <镜像仓库所用的ca文件路径>

请注意,目前,K3s 仅支持安全的镜像仓库(HTTPS)。

有关 K3s 的私有镜像仓库配置文件的更多信息,请参考K3s 文档

  1. 将二进制文件放在每个节点上的/usr/local/bin中。

  2. 将安装脚本放置在每个节点上的任何位置,并将其命名为install.sh

  3. 请根据您的准备好的数据库,替换以下命令中的数据库连接字符串,并在准备好的两台 Linux 节点中运行命令来安装 K3s:

4、保存并使用 kubeconfig 文件

在每个 Rancher Server 节点上安装 K3s 时,会在节点上/etc/rancher/k3s/k3s.yaml位置创建一个kubeconfig文件。该文件包含用于完全访问集群的凭据,您应该将此文件保存在安全的位置。

要使用此kubeconfig文件,

  1. 安装 Kubernetes 命令行工具。
  2. 将文件/etc/rancher/k3s/k3s.yaml复制并保存到本地计算机上的目录~/.kube/config中。
  3. 在这个 kubeconfig 文件中,server参数为 localhost。您需要手动更改这个地址为负载均衡器的 DNS,并且指定端口 6443。(Kubernetes API Server 的端口为 6443,Rancher Server 的端口为 80 和 443。)以下是一个示例:

:::important 注意 如果需要在本地通过 kubectl 访问这个 K3s 集群,请确保在您的负载均衡器中配置将6443端口的流量也转发到这两个节点上。 :::

  1. apiVersion: v1
  2. clusters:
  3. - cluster:
  4. certificate-authority-data: [CERTIFICATE-DATA]
  5. server: [LOAD-BALANCER-DNS]:6443 # 编辑此行
  6. name: default
  7. contexts:
  8. - context:
  9. cluster: default
  10. user: default
  11. name: default
  12. current-context: default
  13. kind: Config
  14. preferences: {}
  15. users:
  16. - name: default
  17. user:
  18. password: [PASSWORD]

结果: 您现在可以使用kubectl来管理您的 K3s 集群。如果您有多个 kubeconfig 文件,可以在使用kubectl时通过传递文件路径来指定要使用的 kubeconfig 文件:

有关kubeconfig文件的更多信息,请参考 K3s 文档或中关于使用kubeconfig文件访问集群的部分。

升级提示

可以通过以下方式完成离线环境的升级:

  • 版本发布页面下载要升级的 K3s 版本的新镜像包(tar文件)。将tar包放在每个节点上的/var/lib/rancher/k3s/agent/images/目录中。删除旧的 tar 文件。
  • 复制并替换每个节点上/usr/local/bin中的旧的 K3s 二进制文件。因为自上一发行以来,脚本可能已更改,单击获取新的二进制文件。与过去一样,使用相同的环境变量再次运行脚本。
  • 重新启动 K3s 服务(如果安装程序未自动重启 K3s)。
  • 已安装 RKE
  • 已创建 RKE 配置文件

1、安装 RKE

请按照RKE 文档中的说明安装 RKE。

2、创建 RKE 配置文件

该文件是 RKE 配置文件,其中包括了您将要部署的集群的配置。

使用您创建的的 IP 地址或 DNS 名称,替换下面的代码示例中的值。

RKE 选项

  1. nodes:
  2. - address: 10.10.3.187 # 离线环境节点 IP
  3. internal_address: 172.31.7.22 # 节点内网 IP
  4. user: rancher
  5. role: ["controlplane", "etcd", "worker"]
  6. ssh_key_path: /home/user/.ssh/id_rsa
  7. - address: 10.10.3.254 # 离线环境节点 IP
  8. internal_address: 172.31.13.132 # 节点内网 IP
  9. user: rancher
  10. role: ["controlplane", "etcd", "worker"]
  11. ssh_key_path: /home/user/.ssh/id_rsa
  12. - address: 10.10.3.89 # 离线环境节点 IP
  13. internal_address: 172.31.3.216 # 节点内网 IP
  14. user: rancher
  15. role: ["controlplane", "etcd", "worker"]
  16. ssh_key_path: /home/user/.ssh/id_rsa
  17. private_registries:
  18. - url: <REGISTRY.YOURDOMAIN.COM:PORT> # 私有镜像库地址
  19. user: rancher
  20. password: "*********"
  21. is_default: true

配置完rancher-cluster.yml之后,启动您的 Kubernetes 集群:

4、保存您的文件

将以下文件的副本保存在安全的位置:

请查看页面,获取常见问题和解决方法。

安装 Rancher