本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

3.安装 Kubernetes(Docker 安装可跳过)

如果您在单节点上使用 Docker 安装 Rancher,请跳过此部分。

本节描述如何根据我们的 最佳实践为 Rancher 服务器环境 安装 Kubernetes 集群。该集群应专门用于运行 Rancher 服务器。

Rancher 可以安装在任何 Kubernetes 集群上,包括托管的 Kubernetes 提供商。

在 RKE2 或 K3s 上设置隔离的 Kubernetes 集群的步骤如下。

  • K3s

  • RKE2

在本指南中,我们假设您已经在隔离的环境中创建了节点,并在堡垒服务器上拥有安全的 Docker 私有注册表。

1.准备镜像目录

从您将运行的 K3s 版本的 releases 页面获取适合您架构的镜像 tar 文件。

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

sudo mkdir -p /var/lib/rancher/k3s/agent/images/
sudo cp ./k3s-airgap-images-$ARCH.tar /var/lib/rancher/k3s/agent/images/

2.创建注册表 YAML

/etc/rancher/k3s/registries.yaml 创建 registries.yaml 文件。这将告诉 K3s 连接到您的私有注册表所需的详细信息。

在插入必要信息之前,registries.yaml 文件应如下所示:

---
mirrors:
  customreg:
    endpoint:
      - "https://ip-to-server:5000"
configs:
  customreg:
    auth:
      username: xxxxxx # this is the registry username
      password: xxxxxx # this is the registry password
    tls:
      cert_file: <path to the cert file used in the registry>
      key_file:  <path to the key file used in the registry>
      ca_file: <path to the ca file used in the registry>

请注意,目前 K3s 仅支持安全注册表(使用自定义 CA 的 SSL)。

有关 K3s 私有注册表配置文件的更多信息,请参阅 K3s 文档

3.安装K3s

Rancher 需要安装在受支持的 Kubernetes 版本上。要查找与您的 Rancher 版本兼容的 Kubernetes 版本,请参考 Rancher 支持矩阵

要指定K3s(Kubernetes)版本,请在运行K3s安装脚本时使用INSTALL_K3S_VERSION(例如,INSTALL_K3S_VERSION="v1.24.10+k3s1")环境变量。

releases 页面获取 K3s 二进制文件,确保与用于获取隔离的镜像 tar 文件时所使用的版本一致。 还需在 https://get.k3s.io 获取 K3s 安装脚本。

将二进制文件放置在每个节点的 /usr/local/bin 中。 将安装脚本放置在每个节点的任意位置,并命名为 install.sh

在每台服务器上安装 K3s:

INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_VERSION=<VERSION> ./install.sh

在每个代理上安装 K3s:

INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_VERSION=<VERSION> K3S_URL=https://<SERVER>:6443 K3S_TOKEN=<TOKEN> ./install.sh

其中 <SERVER> 是服务器的 IP 或有效 DNS,<TOKEN> 是在 /var/lib/rancher/k3s/server/node-token 找到的服务器的节点词元。

K3s 还为 kubelet 提供了一个 --resolv-conf 标志,这可能有助于在隔离网络中配置 DNS。

4.保存并开始使用 kubeconfig 文件

当您在每个 Rancher 服务器节点上安装 K3s 时,节点上会创建一个 kubeconfig 文件,路径为 /etc/rancher/k3s/k3s.yaml。该文件包含对集群的完全访问权限的凭据,您应该将此文件保存在安全的位置。

要使用此 kubeconfig 文件,

  1. 安装 kubectl,,这是一个 Kubernetes 命令行工具。

  2. 复制 /etc/rancher/k3s/k3s.yaml 处的文件,并将其保存到您本地计算机的 ~/.kube/config 目录中。

  3. 在 kubeconfig 文件中,server 指令被定义为 localhost。将服务器配置为负载均衡器的 DNS,参考端口 6443。(Kubernetes API 服务器将在端口 6443 访问,而 Rancher 服务器将在端口 80 和 443 访问。)示例如下`k3s.yaml`:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: [CERTIFICATE-DATA]
    server: [LOAD-BALANCER-DNS]:6443 # Edit this line
  name: default
contexts:
- context:
    cluster: default
    user: default
  name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
  user:
    password: [PASSWORD]
    username: admin

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

kubectl --kubeconfig ~/.kube/config/k3s.yaml get pods --all-namespaces

有关 kubeconfig 文件的更多信息,请参考 K3s 文档官方 Kubernetes 文档,了解如何使用 kubeconfig 文件组织集群访问。

升级注意事项

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

  1. releases 页面下载您将要升级的 K3s 版本的新的隔离的镜像(tar 文件)。将 tar 文件放置在每个节点的 /var/lib/rancher/k3s/agent/images/ 目录中。删除旧的 tar 文件。

  2. 在每个节点的 /usr/local/bin 中复制并替换旧的 K3s 二进制文件。将安装脚本复制到 https://get.k3s.io(因为自上次发布以来可能已更改)。再次运行脚本,就像您过去一样,使用相同的环境变量。

  3. 重启 K3s 服务(如果安装程序没有自动重启的话)。

在本指南中,我们假设您已经在隔离的环境中创建了节点,并在堡垒服务器上拥有一个安全的 Docker 私有注册表。

1.创建 RKE2 配置

/etc/rancher/rke2/config.yaml 创建 config.yaml 文件。这将包含创建高可用 RKE2 集群所需的所有配置选项。

在第一台服务器上,最小配置为:

token: my-shared-secret
tls-san:
  - loadbalancer-dns-domain.com

在其他每台服务器上,配置文件应包含相同的词元,并告诉 RKE2 连接到现有的第一台服务器:

server: https://ip-of-first-server:9345
token: my-shared-secret
tls-san:
  - loadbalancer-dns-domain.com

有关更多信息,请参见 RKE2 文档

RKE2 还为 kubelet 提供了一个 resolv-conf 选项,这可能有助于在隔离网络中配置 DNS。

2.创建注册表 YAML

/etc/rancher/rke2/registries.yaml 创建 registries.yaml 文件。这将告诉 RKE2 连接到您的私有注册表所需的详细信息。

在插入必要信息之前,registries.yaml 文件应如下所示:

---
mirrors:
  customreg:
    endpoint:
      - "https://ip-to-server:5000"
configs:
  customreg:
    auth:
      username: xxxxxx # this is the registry username
      password: xxxxxx # this is the registry password
    tls:
      cert_file: <path to the cert file used in the registry>
      key_file:  <path to the key file used in the registry>
      ca_file: <path to the ca file used in the registry>

有关 RKE2 私有注册表配置文件的更多信息,请参见 RKE2 文档

3.安装 RKE2

Rancher 需要安装在受支持的 Kubernetes 版本上。要查找与您的 Rancher 版本兼容的 Kubernetes 版本,请参考 支持维护条款

从发布中下载安装脚本、rke2、rke2-images 和 sha256sum 压缩包,并将它们上传到每台服务器的一个目录中:

mkdir /tmp/rke2-artifacts && cd /tmp/rke2-artifacts/
wget https://github.com/rancher/rke2/releases/download/v1.21.5%2Brke2r2/rke2-images.linux-amd64.tar.zst
wget https://github.com/rancher/rke2/releases/download/v1.21.5%2Brke2r2/rke2.linux-amd64.tar.gz
wget https://github.com/rancher/rke2/releases/download/v1.21.5%2Brke2r2/sha256sum-amd64.txt
curl -sfL https://get.rke2.io --output install.sh

接下来,在每台服务器上使用该目录运行 install.sh,如下例所示:

INSTALL_RKE2_ARTIFACT_PATH=/tmp/rke2-artifacts sh install.sh

然后在所有服务器上启用并启动服务:

` systemctl enable rke2-server.service systemctl start rke2-server.service `

有关更多信息,请参见 RKE2 文档

4.保存并开始使用 kubeconfig 文件

当您在每个 Rancher 服务器节点上安装 RKE2 时,节点上会创建一个 kubeconfig 文件,路径为 /etc/rancher/rke2/rke2.yaml。该文件包含对集群的完全访问权限的凭据,您应该将此文件保存在安全的位置。

要使用此 kubeconfig 文件,

  1. 安装 kubectl,Kubernetes 命令行工具。

  2. 复制 /etc/rancher/rke2/rke2.yaml 处的文件,并将其保存到您本地计算机的 ~/.kube/config 目录中。

  3. 在 kubeconfig 文件中,server 指令被定义为 localhost。将服务器配置为负载均衡器的 DNS,参考端口 6443。(Kubernetes API 服务器将在端口 6443 访问,而 Rancher 服务器将在端口 80 和 443 访问。)示例如下 rke2.yaml

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: [CERTIFICATE-DATA]
    server: [LOAD-BALANCER-DNS]:6443 # Edit this line
  name: default
contexts:
- context:
    cluster: default
    user: default
  name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
  user:
    password: [PASSWORD]
    username: admin

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

kubectl --kubeconfig ~/.kube/config/rke2.yaml get pods --all-namespaces

有关 kubeconfig 文件的更多信息,请参考 RKE2 文档官方 Kubernetes 文档,了解如何使用 kubeconfig 文件组织集群访问。

升级注意事项

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

  1. 发布 页面下载新版本的隔离的工件和安装脚本,用于您将要升级的 RKE2 版本。

  2. 再次运行脚本,就像您过去一样,使用相同的环境变量。

  3. 重启 RKE2 服务。

出现问题或错误?

请查看 故障排除 页面。