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

SUSE Rancher Prime HA

本页面列出的命令/步骤可用于检查您的 Rancher Kubernetes 安装。

确保您配置了正确的 kubeconfig(例如,export KUBECONFIG=$PWD/kube_config_cluster.yml)。

检查 Rancher Pods

Rancher pods 作为 Deployment 部署在 cattle-system 名称空间中。

检查所有节点上 pods 是否在运行:

kubectl -n cattle-system get pods -l app=rancher -o wide

示例输出:

NAME                       READY   STATUS    RESTARTS   AGE   IP          NODE
rancher-7dbd7875f7-n6t5t   1/1     Running   0          8m    x.x.x.x     x.x.x.x
rancher-7dbd7875f7-qbj5k   1/1     Running   0          8m    x.x.x.x     x.x.x.x
rancher-7dbd7875f7-qw7wb   1/1     Running   0          8m    x.x.x.x     x.x.x.x

如果 pod 无法运行(状态不是 Running,就绪状态未显示 1/1 或您看到重启次数过高),请检查 pod 详细信息、日志和名称空间事件。

Pod 详细信息

kubectl -n cattle-system describe pods -l app=rancher

Pod 容器日志

kubectl -n cattle-system logs -l app=rancher

名称空间事件

kubectl -n cattle-system get events

检查 Ingress

Ingress 应具有正确的 HOSTS(显示配置的 FQDN)和 ADDRESS(将被路由到的主机地址)。

kubectl -n cattle-system get ingress

示例输出:

NAME      HOSTS                    ADDRESS                   PORTS     AGE
rancher   rancher.yourdomain.com   x.x.x.x,x.x.x.x,x.x.x.x   80, 443   2m

检查 Ingress 控制器日志

当访问您配置的 Rancher FQDN 时未显示 UI,请检查 Ingress 控制器日志以查看您尝试访问 Rancher 时发生了什么:

kubectl -n traefik logs -l app=traefik

领导者选举

领导者通过领导者选举过程确定。在确定领导者后,领导者(holderIdentity)将保存在 cattle-controllers 租约中,位于 kube-system 名称空间中(在此示例中为 rancher-dbc7ff869-gvg6k)。

kubectl -n kube-system get lease cattle-controllers

示例输出:

NAME                 HOLDER                    AGE
cattle-controllers   rancher-dbc7ff869-gvg6k   6h10m

配置

自 Rancher 2.8.3 起可用

如果 Kubernetes API 体验到延迟,持有领导者锁的 Rancher 副本可能无法在租约失效之前续订租约,这可以在 Rancher 日志中观察到:

E0629 04:13:07.293461      34 leaderelection.go:364] Failed to update lock: Put "https://172.17.0.1:443/apis/coordination.k8s.io/v1/namespaces/kube-system/leases/cattle-controllers?timeout=15m0s": context deadline exceeded
I0629 04:13:07.293594      34 leaderelection.go:280] failed to renew lease kube-system/cattle-controllers: timed out waiting for the condition
...
2024/06/29 04:13:10 [FATAL] leaderelection lost for cattle-controllers

为了解决这个问题,您可以在 rancher 部署中设置环境变量,以修改领导者选举的默认参数:

示例:

kubectl -n cattle-system set env deploy/rancher CATTLE_ELECTION_LEASE_DURATION=2m CATTLE_ELECTION_RENEW_DEADLINE=90s CATTLE_ELECTION_RETRY_PERIOD=10s

这将暂时将租约持续时间、续订截止时间和重试周期分别增加到 120、90 和 10 秒。 或者,为了使这些更改永久生效,可以通过 使用 Helm 值 来设置这些环境变量。