3.2. 重启集群
您可以在集群被安全关闭后重启它。
先决条件
-
您可以使用具有
cluster-admin
角色的用户访问集群。 - 此流程假设您安全关闭集群。
流程
打开 control plane 节点。
如果您在集群安装中使用
admin.kubeconfig
,且 API 虚拟 IP 地址(VIP)为 up,请完成以下步骤:-
将
KUBECONFIG
环境变量设置为admin.kubeconfig
路径。 对于集群中的每个 control plane 节点,运行以下命令:
oc adm uncordon <node>
$ oc adm uncordon <node>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
-
将
如果您无法访问
admin.kubeconfig
凭证,请完成以下步骤:- 使用 SSH 连接到 control plane 节点。
-
将
localhost-recovery.kubeconfig
文件复制到/root
目录中。 使用该文件为集群中的每个 control plane 节点运行以下命令:
oc adm uncordon <node>
$ oc adm uncordon <node>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
- 启动所有依赖设备,如外部存储或 LDAP 服务器。
启动所有集群机器。
使用适合您的云环境的方法启动机器,例如从云供应商的 Web 控制台启动机器。
等待大约 10 分钟,然后继续检查 control plane 节点的状态。
验证所有 control plane 节点都已就绪。
oc get nodes -l node-role.kubernetes.io/master
$ oc get nodes -l node-role.kubernetes.io/master
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果状态为
Ready
,如以下输出中所示,则代表 control plane 节点已就绪:NAME STATUS ROLES AGE VERSION ip-10-0-168-251.ec2.internal Ready control-plane,master 75m v1.29.4 ip-10-0-170-223.ec2.internal Ready control-plane,master 75m v1.29.4 ip-10-0-211-16.ec2.internal Ready control-plane,master 75m v1.29.4
NAME STATUS ROLES AGE VERSION ip-10-0-168-251.ec2.internal Ready control-plane,master 75m v1.29.4 ip-10-0-170-223.ec2.internal Ready control-plane,master 75m v1.29.4 ip-10-0-211-16.ec2.internal Ready control-plane,master 75m v1.29.4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 control plane 节点没有就绪,请检查是否有待批准的证书签名请求 (CSR)。
获取当前 CSR 列表:
oc get csr
$ oc get csr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看一个 CSR 的详细信息以验证其是否有效:
oc describe csr <csr_name>
$ oc describe csr <csr_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<csr_name>
是当前 CSR 列表中 CSR 的名称。
批准每个有效的 CSR:
oc adm certificate approve <csr_name>
$ oc adm certificate approve <csr_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在 control plane 节点就绪后,验证所有 worker 节点是否已就绪。
oc get nodes -l node-role.kubernetes.io/worker
$ oc get nodes -l node-role.kubernetes.io/worker
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果状态为
Ready
,如下所示,则代表 worker 节点已就绪:NAME STATUS ROLES AGE VERSION ip-10-0-179-95.ec2.internal Ready worker 64m v1.29.4 ip-10-0-182-134.ec2.internal Ready worker 64m v1.29.4 ip-10-0-250-100.ec2.internal Ready worker 64m v1.29.4
NAME STATUS ROLES AGE VERSION ip-10-0-179-95.ec2.internal Ready worker 64m v1.29.4 ip-10-0-182-134.ec2.internal Ready worker 64m v1.29.4 ip-10-0-250-100.ec2.internal Ready worker 64m v1.29.4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 worker 节点 未 就绪,请检查是否有待批准的证书签名请求(CSR)。
获取当前 CSR 列表:
oc get csr
$ oc get csr
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看一个 CSR 的详细信息以验证其是否有效:
oc describe csr <csr_name>
$ oc describe csr <csr_name>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
<csr_name>
是当前 CSR 列表中 CSR 的名称。
批准每个有效的 CSR:
oc adm certificate approve <csr_name>
$ oc adm certificate approve <csr_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
在 control plane 和计算节点就绪后,运行以下命令将集群中的所有节点标记为可以调度:
for node in $(oc get nodes -o jsonpath='{.items[*].metadata.name}'); do echo ${node} ; oc adm uncordon ${node} ; done
$ for node in $(oc get nodes -o jsonpath='{.items[*].metadata.name}'); do echo ${node} ; oc adm uncordon ${node} ; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证集群是否已正确启动。
检查是否有降级的集群 Operator。
oc get clusteroperators
$ oc get clusteroperators
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确定没有
DEGRADED
条件为True
的集群 Operator。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查所有节点是否处于
Ready
状态:oc get nodes
$ oc get nodes
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 检查所有节点的状态是否为
Ready
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果集群无法正确启动,您可能需要使用 etcd 备份来恢复集群。