9.2. 恢复不健康的 etcd 集群
在高可用性 control plane 中,三个 etcd pod 作为 etcd 集群中有状态集的一部分运行。要恢复 etcd 集群,请通过检查 etcd 集群健康状况来识别不健康的 etcd pod。
9.2.1. 检查 etcd 集群的状态
复制链接链接已复制到粘贴板!
您可以通过登录到任何 etcd pod 来检查 etcd 集群健康状态。
流程
- 输入以下命令登录到 etcd pod: - oc rsh -n openshift-etcd -c etcd <etcd_pod_name> - $ oc rsh -n openshift-etcd -c etcd <etcd_pod_name>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 输入以下命令输出 etcd 集群的健康状况: - etcdctl endpoint status -w table - sh-4.4# etcdctl endpoint status -w table- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
9.2.2. 恢复失败的 etcd pod
复制链接链接已复制到粘贴板!
3 节点集群的每个 etcd pod 都有自己的持久性卷声明 (PVC) 来存储其数据。由于数据损坏或缺少数据,etcd pod 可能会失败。您可以恢复 etcd pod 及其 PVC 失败。
流程
- 要确认 etcd pod 失败,请输入以下命令: - oc get pods -l app=etcd -n openshift-etcd - $ oc get pods -l app=etcd -n openshift-etcd- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - NAME READY STATUS RESTARTS AGE etcd-0 2/2 Running 0 64m etcd-1 2/2 Running 0 45m etcd-2 1/2 CrashLoopBackOff 1 (5s ago) 64m - NAME READY STATUS RESTARTS AGE etcd-0 2/2 Running 0 64m etcd-1 2/2 Running 0 45m etcd-2 1/2 CrashLoopBackOff 1 (5s ago) 64m- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 失败的 etcd pod 可能具有 - CrashLoopBackOff或- Error状态。
- 输入以下命令删除失败的 pod 及其 PVC: - oc delete pods etcd-2 -n openshift-etcd - $ oc delete pods etcd-2 -n openshift-etcd- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
验证
- 输入以下命令验证新 etcd pod 是否正在运行: - oc get pods -l app=etcd -n openshift-etcd - $ oc get pods -l app=etcd -n openshift-etcd- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 输出示例 - NAME READY STATUS RESTARTS AGE etcd-0 2/2 Running 0 67m etcd-1 2/2 Running 0 48m etcd-2 2/2 Running 0 2m2s - NAME READY STATUS RESTARTS AGE etcd-0 2/2 Running 0 67m etcd-1 2/2 Running 0 48m etcd-2 2/2 Running 0 2m2s- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow