8.2. 비정상적인 etcd 클러스터 복구
고가용성 컨트롤 플레인에서 세 개의 etcd pod는 etcd 클러스터에서 상태 저장 세트의 일부로 실행됩니다. etcd 클러스터를 복구하려면 etcd 클러스터 상태를 확인하여 비정상 etcd pod를 확인합니다.
8.2.1. etcd 클러스터 상태 확인
etcd pod에 로그인하여 etcd 클러스터 상태의 상태를 확인할 수 있습니다.
프로세스
다음 명령을 입력하여 etcd pod에 로그인합니다.
$ oc rsh -n <hosted_control_plane_namespace> -c etcd <etcd_pod_name>
다음 명령을 입력하여 etcd 클러스터의 상태를 출력합니다.
sh-4.4$ etcdctl endpoint health --cluster -w table
출력 예
ENDPOINT HEALTH TOOK ERROR https://etcd-0.etcd-discovery.clusters-hosted.svc:2379 true 9.117698ms
8.2.2. 실패한 etcd pod 복구
3-노드 클러스터의 각 etcd pod에는 데이터를 저장할 자체 PVC(영구 볼륨 클레임)가 있습니다. 데이터가 손상되거나 누락되어 etcd pod가 실패할 수 있습니다. 실패한 etcd pod 및 해당 PVC를 복구할 수 있습니다.
프로세스
etcd pod가 실패했는지 확인하려면 다음 명령을 입력합니다.
$ oc get pods -l app=etcd -n <hosted_control_plane_namespace>
출력 예
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
실패한 etcd pod는
CrashLoopBackOff
또는Error
상태가 될 수 있습니다.다음 명령을 입력하여 실패한 Pod 및 해당 PVC를 삭제합니다.
$ oc delete pvc/<etcd_pvc_name> pod/<etcd_pod_name> --wait=false
검증
다음 명령을 입력하여 새 etcd pod가 실행 중인지 확인합니다.
$ oc get pods -l app=etcd -n <hosted_control_plane_namespace>
출력 예
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