$ oc get nodes -l node-role.kubernetes.io/master
本文档描述了在优雅关机后重启集群的过程。
尽管预期集群在重启后能够正常运行,但由于意外情况(例如)集群可能无法恢复
关机期间 etcd 数据损坏
由于硬件故障导致的节点故障
网络连接问题
如果您的集群无法恢复,请按照步骤操作,以恢复到之前的集群状态。
您已优雅地关闭您的集群。
优雅关闭后,您可以重启集群。
您具有 `cluster-admin` 角色的用户权限。
此过程假设您已优雅地关闭集群。
启动任何集群依赖项,例如外部存储或 LDAP 服务器。
启动所有集群机器。
使用适合您云环境的方法启动机器,例如,从您的云提供商的 Web 控制台启动。
继续检查控制平面节点的状态之前,请等待大约 10 分钟。
验证所有控制平面节点是否已准备好。
$ oc get nodes -l node-role.kubernetes.io/master
如果状态为 `Ready`,则控制平面节点已准备好,如下所示
NAME STATUS ROLES AGE VERSION
ip-10-0-168-251.ec2.internal Ready control-plane,master 75m v1.30.3
ip-10-0-170-223.ec2.internal Ready control-plane,master 75m v1.30.3
ip-10-0-211-16.ec2.internal Ready control-plane,master 75m v1.30.3
如果控制平面节点未准备好,请检查是否有任何必须批准的未决证书签名请求 (CSR)。
获取当前 CSR 的列表
$ oc get csr
查看 CSR 的详细信息以验证其有效性
$ oc describe csr <csr_name> (1)
1 | `<csr_name>` 是来自当前 CSR 列表的 CSR 的名称。 |
批准每个有效的 CSR
$ oc adm certificate approve <csr_name>
控制平面节点准备好后,验证所有工作节点是否已准备好。
$ oc get nodes -l node-role.kubernetes.io/worker
如果状态为 `Ready`,则工作节点已准备好,如下所示
NAME STATUS ROLES AGE VERSION
ip-10-0-179-95.ec2.internal Ready worker 64m v1.30.3
ip-10-0-182-134.ec2.internal Ready worker 64m v1.30.3
ip-10-0-250-100.ec2.internal Ready worker 64m v1.30.3
如果工作节点未准备好,请检查是否有任何必须批准的未决证书签名请求 (CSR)。
获取当前 CSR 的列表
$ oc get csr
查看 CSR 的详细信息以验证其有效性
$ oc describe csr <csr_name> (1)
1 | `<csr_name>` 是来自当前 CSR 列表的 CSR 的名称。 |
批准每个有效的 CSR
$ oc adm certificate approve <csr_name>
控制平面和工作节点准备好后,将集群中的所有节点标记为可调度。运行以下命令
for node in $(oc get nodes -o jsonpath='{.items[*].metadata.name}'); do echo ${node} ; oc adm uncordon ${node} ; done
验证集群是否已正确启动。
检查是否存在任何降级的集群运算符。
$ oc get clusteroperators
检查是否有任何集群运算符的 `DEGRADED` 条件设置为 `True`。
NAME VERSION AVAILABLE PROGRESSING DEGRADED SINCE
authentication 4.17.0 True False False 59m
cloud-credential 4.17.0 True False False 85m
cluster-autoscaler 4.17.0 True False False 73m
config-operator 4.17.0 True False False 73m
console 4.17.0 True False False 62m
csi-snapshot-controller 4.17.0 True False False 66m
dns 4.17.0 True False False 76m
etcd 4.17.0 True False False 76m
...
检查所有节点是否都处于 `Ready` 状态
$ oc get nodes
检查所有节点的状态是否为 `Ready`。
NAME STATUS ROLES AGE VERSION
ip-10-0-168-251.ec2.internal Ready control-plane,master 82m v1.30.3
ip-10-0-170-223.ec2.internal Ready control-plane.master 82m v1.30.3
ip-10-0-179-95.ec2.internal Ready worker 70m v1.30.3
ip-10-0-182-134.ec2.internal Ready worker 70m v1.30.3
ip-10-0-211-16.ec2.internal Ready control-plane,master 82m v1.30.3
ip-10-0-250-100.ec2.internal Ready worker 69m v1.30.3
如果集群未正确启动,您可能需要使用 etcd 备份恢复集群。
请参阅恢复到之前的集群状态,了解如何在重启后集群无法恢复的情况下使用 etcd 备份进行恢复。