|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
为SUSE® Rancher Prime: RKE2设置高可用性Kubernetes集群,适用于SUSE Rancher Prime
本节描述如何按照Rancher服务器环境的最佳实践安装Kubernetes集群。
安装Kubernetes
1.安装Kubernetes并设置SUSE® Rancher Prime: RKE2服务器
RKE2服务器运行时内嵌etcd,因此您无需设置外部数据存储以在HA模式下运行。
在第一个节点上,您应该使用自己的预共享密钥作为词元设置配置文件。词元参数可以在启动时设置。
如果您未指定预共享密钥,RKE2将生成一个并将其放置在/var/lib/rancher/rke2/server/node-token。
为了避免使用固定注册地址时出现证书错误,您应该启动服务器并设置tls-san参数。此选项会将额外的主机名或 IP 作为服务器的 TLS 证书中的主题备用名称添加,如果您希望通过 IP 和主机名进行访问,可以将其指定为列表。
首先,您必须创建将放置RKE2配置文件的目录:
mkdir -p /etc/rancher/rke2/
接下来,在`/etc/rancher/rke2/config.yaml`处创建RKE2配置文件,使用以下示例:
token: my-shared-secret tls-san: - my-kubernetes-domain.com - another-kubernetes-domain.com
之后,您需要运行安装命令并启用并启动rke2:
curl -sfL https://get.rke2.io | sh - systemctl enable rke2-server.service systemctl start rke2-server.service
-
要加入其余节点,您需要使用相同的共享词元或自动生成的词元配置每个附加节点。以下是配置文件的示例:
token: my-shared-secret server: https://<DNS-DOMAIN>:9345 tls-san: - my-kubernetes-domain.com - another-kubernetes-domain.com After that, you need to run the installer and enable, then start, rke2: curl -sfL https://get.rke2.io | sh - systemctl enable rke2-server.service systemctl start rke2-server.service
-
在您的第三个RKE2服务器节点上重复相同的命令。
2.确认SUSE® Rancher Prime: RKE2正在运行
一旦您在所有服务器节点上启动了rke2服务器进程,请确保集群已正确启动,使用
/var/lib/rancher/rke2/bin/kubectl \
--kubeconfig /etc/rancher/rke2/rke2.yaml get nodes
You should see your server nodes in the Ready state.
然后测试集群 Pod 的健康状况:
/var/lib/rancher/rke2/bin/kubectl \
--kubeconfig /etc/rancher/rke2/rke2.yaml get pods --all-namespaces
*结果:*您已成功设置RKE2 Kubernetes集群。
3.保存并开始使用 kubeconfig 文件
当您在每个Rancher服务器节点上安装RKE2时,节点上会创建一个`kubeconfig`文件,路径为`/etc/rancher/rke2/rke2.yaml`。该文件包含对集群的完全访问权限的凭据,您应该将此文件保存在安全的位置。
要使用此 kubeconfig 文件,
-
安装 kubectl,,这是一个 Kubernetes 命令行工具。
-
复制`/etc/rancher/rke2/rke2.yaml`处的文件,并将其保存到您本地计算机的`~/.kube/config`目录中。
-
在 kubeconfig 文件中,
server指令被定义为 localhost。将服务器配置为控制平面负载均衡器的 DNS,端口为 6443。(RKE2 Kubernetes API 服务器使用端口 6443,而 Rancher 服务器将通过 Traefik Ingress 在端口 80 和 443 上提供服务。有关更多详细信息,请参考 从 Ingress NGINX 迁移到 Rancher 提供的 RKE2 集群中的 Traefik。)示例如下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 文件组织集群访问。
4.检查集群 Pod 的健康状态
现在您已经设置了 kubeconfig 文件,您可以使用 kubectl 从本地计算机访问集群。
检查所有必需的 Pod 和容器是否健康且已准备好继续:
/var/lib/rancher/rke2/bin/kubectl --kubeconfig /etc/rancher/rke2/rke2.yaml get pods -A NAMESPACE NAME READY STATUS RESTARTS AGE kube-system cloud-controller-manager-rke2-server-1 1/1 Running 0 2m28s kube-system cloud-controller-manager-rke2-server-2 1/1 Running 0 61s kube-system cloud-controller-manager-rke2-server-3 1/1 Running 0 49s kube-system etcd-rke2-server-1 1/1 Running 0 2m13s kube-system etcd-rke2-server-2 1/1 Running 0 87s kube-system etcd-rke2-server-3 1/1 Running 0 56s kube-system helm-install-rke2-canal-hs6sx 0/1 Completed 0 2m17s kube-system helm-install-rke2-coredns-xmzm8 0/1 Completed 0 2m17s kube-system helm-install-traefik-crd-z8vsz 0/1 Completed 0 2m17s kube-system helm-install-traefik-flwnl 0/1 Completed 0 2m17s kube-system helm-install-rke2-metrics-server-7sggn 0/1 Completed 0 2m17s kube-system kube-apiserver-rke2-server-1 1/1 Running 0 116s kube-system kube-apiserver-rke2-server-2 1/1 Running 0 66s kube-system kube-apiserver-rke2-server-3 1/1 Running 0 48s kube-system kube-controller-manager-rke2-server-1 1/1 Running 0 2m30s kube-system kube-controller-manager-rke2-server-2 1/1 Running 0 57s kube-system kube-controller-manager-rke2-server-3 1/1 Running 0 42s kube-system kube-proxy-rke2-server-1 1/1 Running 0 2m25s kube-system kube-proxy-rke2-server-2 1/1 Running 0 59s kube-system kube-proxy-rke2-server-3 1/1 Running 0 85s kube-system kube-scheduler-rke2-server-1 1/1 Running 0 2m30s kube-system kube-scheduler-rke2-server-2 1/1 Running 0 57s kube-system kube-scheduler-rke2-server-3 1/1 Running 0 42s kube-system rke2-canal-b9lvm 2/2 Running 0 91s kube-system rke2-canal-khwp2 2/2 Running 0 2m5s kube-system rke2-canal-swfmq 2/2 Running 0 105s kube-system rke2-coredns-rke2-coredns-547d5499cb-6tvwb 1/1 Running 0 92s kube-system rke2-coredns-rke2-coredns-547d5499cb-rdttj 1/1 Running 0 2m8s kube-system rke2-coredns-rke2-coredns-autoscaler-65c9bb465d-85sq5 1/1 Running 0 2m8s kube-system traefik-7c844b766f-m9p2w 1/1 Running 0 52s kube-system traefik-7c844b766f-s4l9k 1/1 Running 0 52s kube-system rke2-metrics-server-6564db4569-vdfkn 1/1 Running 0 66s
*结果:*您已确认可以使用 kubectl 访问集群,并且 RKE2 集群已成功运行。现在可以在集群上安装 Rancher 管理服务器。