本节描述了如何根据 来安装 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、准备镜像目录
从页面获取要运行的 K3s 版本的镜像文件。
在每个节点上启动 K3s 之前,将这个
tar
文件放在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 # 镜像仓库用户名
password: xxxxxx # 镜像仓库密码
cert_file: <镜像仓库所用的客户端证书文件路径>
key_file: <镜像仓库所用的客户端密钥文件路径>
ca_file: <镜像仓库所用的ca文件路径>
请注意,目前,K3s 仅支持安全的镜像仓库(HTTPS)。
有关 K3s 的私有镜像仓库配置文件的更多信息,请参考K3s 文档。
将二进制文件放在每个节点上的
/usr/local/bin
中。将安装脚本放置在每个节点上的任何位置,并将其命名为
install.sh
。请根据您的准备好的数据库,替换以下命令中的数据库连接字符串,并在准备好的两台 Linux 节点中运行命令来安装 K3s:
4、保存并使用 kubeconfig 文件
在每个 Rancher Server 节点上安装 K3s 时,会在节点上/etc/rancher/k3s/k3s.yaml
位置创建一个kubeconfig
文件。该文件包含用于完全访问集群的凭据,您应该将此文件保存在安全的位置。
要使用此kubeconfig
文件,
- 安装 Kubernetes 命令行工具。
- 将文件
/etc/rancher/k3s/k3s.yaml
复制并保存到本地计算机上的目录~/.kube/config
中。 - 在这个
kubeconfig
文件中,server
参数为localhost
。您需要手动更改这个地址为负载均衡器的 DNS,并且指定端口 6443。(Kubernetes API Server 的端口为 6443,Rancher Server 的端口为 80 和 443。)以下是一个示例:
:::important 注意 如果需要在本地通过 kubectl
访问这个 K3s 集群,请确保在您的负载均衡器中配置将6443
端口的流量也转发到这两个节点上。 :::
apiVersion: v1
clusters:
- cluster:
certificate-authority-data: [CERTIFICATE-DATA]
server: [LOAD-BALANCER-DNS]:6443 # 编辑此行
name: default
contexts:
- context:
cluster: default
user: default
name: default
current-context: default
kind: Config
preferences: {}
users:
- name: default
user:
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 选项
nodes:
- address: 10.10.3.187 # 离线环境节点 IP
internal_address: 172.31.7.22 # 节点内网 IP
user: rancher
role: ["controlplane", "etcd", "worker"]
ssh_key_path: /home/user/.ssh/id_rsa
- address: 10.10.3.254 # 离线环境节点 IP
internal_address: 172.31.13.132 # 节点内网 IP
user: rancher
role: ["controlplane", "etcd", "worker"]
ssh_key_path: /home/user/.ssh/id_rsa
- address: 10.10.3.89 # 离线环境节点 IP
internal_address: 172.31.3.216 # 节点内网 IP
user: rancher
role: ["controlplane", "etcd", "worker"]
ssh_key_path: /home/user/.ssh/id_rsa
private_registries:
- url: <REGISTRY.YOURDOMAIN.COM:PORT> # 私有镜像库地址
user: rancher
password: "*********"
is_default: true
配置完rancher-cluster.yml
之后,启动您的 Kubernetes 集群:
4、保存您的文件
将以下文件的副本保存在安全的位置:
rancher-cluster.yml
:RKE 配置文件- :Kubernetes 集群状态文件
请查看页面,获取常见问题和解决方法。