|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
为SUSE® Rancher Prime: K3s高可用性Kubernetes集群设置SUSE Rancher Prime
本节描述如何按照Rancher服务器环境的最佳实践安装Kubernetes集群。
对于没有直接互联网访问的系统,请参考隔离安装说明。
|
单节点安装提示:
在单节点Kubernetes集群中,Rancher服务器没有高可用性,这对于在生产中运行Rancher非常重要。然而,在单节点集群上安装Rancher可能是有用的,如果您希望在短期内通过使用单个节点来节省资源,同时保留高可用性迁移路径。 要设置单节点K3s集群,请仅在一个节点上运行Rancher服务器安装命令,而不是在两个节点上。 在这两种单节点设置中,Rancher可以像在任何其他集群上那样,通过Helm在Kubernetes集群上安装。 |
先决条件
这些说明假设您已设置两个节点、一个负载均衡器、一个DNS记录和一个外部MySQL数据库,如本节所述。
Rancher 需要安装在受支持的 Kubernetes 版本上。要查找与您的Rancher版本兼容的Kubernetes版本,请参考 Rancher支持矩阵。
要指定K3s(Kubernetes)版本,请在运行K3s安装脚本时使用INSTALL_K3S_VERSION(例如,INSTALL_K3S_VERSION="v1.24.10+k3s1")环境变量。
安装Kubernetes
1.安装Kubernetes并设置SUSE® Rancher Prime: K3s服务器
在运行命令以启动K3s Kubernetes API服务器时,您将传入一个选项以使用您之前设置的外部数据存储。
-
连接到您准备运行Rancher服务器的Linux节点之一。
-
在Linux节点上,运行此命令以启动K3s服务器并将其连接到外部数据存储:
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=<VERSION> sh -s - server \ --datastore-endpoint="<DATASTORE_ENDPOINT>"
其中`<DATASTORE_ENDPOINT>`是您数据存储的连接URI。例如,如果您使用MySQL,则为`mysql://username:password@tcp(hostname:3306)/database-name`。有效的数据存储包括etcd、MySQL、PostgreSQL或SQLite(默认)。
数据存储端点也可以通过环境变量`$K3S_DATASTORE_ENDPOINT`传递。
-
获取主服务器节点令牌:
cat /var/lib/rancher/k3s/server/token
-
在您的第二个 K3s 服务器节点上运行命令:
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=<VERSION> sh -s - server \ --datastore-endpoint="<DATASTORE_ENDPOINT>" \ --token "<MAIN_SERVER_NODE_TOKEN>"
2.确认 SUSE® Rancher Prime: K3s 正在运行
要确认 K3s 已成功设置,请在任一 K3s 服务器节点上运行以下命令:
sudo k3s kubectl get nodes
然后您应该看到两个具有主角色的节点:
ubuntu@ip-172-31-60-194:~$ sudo k3s kubectl get nodes NAME STATUS ROLES AGE VERSION ip-172-31-60-194 Ready master 44m v1.17.2+k3s1 ip-172-31-63-88 Ready master 6m8s v1.17.2+k3s1
然后测试集群 Pod 的健康状况:
sudo k3s kubectl get pods --all-namespaces
*结果:*您已成功设置 K3s Kubernetes 集群。
3.保存并开始使用 kubeconfig 文件
当您在每个 Rancher 服务器节点上安装 K3s 时,节点上会创建一个 kubeconfig 文件,路径为 /etc/rancher/k3s/k3s.yaml。该文件包含对集群的完全访问权限的凭据,您应该将此文件保存在安全的位置。
要使用此 kubeconfig 文件,
-
安装 kubectl,,这是一个 Kubernetes 命令行工具。
-
复制
/etc/rancher/k3s/k3s.yaml处的文件,并将其保存到您本地计算机的~/.kube/config目录中。 -
在 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 文件组织集群访问。
4.检查集群 Pod 的健康状态
现在您已经设置了 kubeconfig 文件,您可以使用 kubectl 从本地计算机访问集群。
检查所有必需的 Pod 和容器是否健康且已准备好继续:
ubuntu@ip-172-31-60-194:~$ sudo kubectl get pods --all-namespaces NAMESPACE NAME READY STATUS RESTARTS AGE kube-system metrics-server-6d684c7b5-bw59k 1/1 Running 0 8d kube-system local-path-provisioner-58fb86bdfd-fmkvd 1/1 Running 0 8d kube-system coredns-d798c9dd-ljjnf 1/1 Running 0 8d
*结果:*您已确认可以使用 kubectl 访问集群,并且 K3s 集群正在成功运行。现在可以在集群上安装 Rancher 管理服务器。