第8章 Hosted Control Plane の高可用性
8.1. 不健全な etcd クラスターの回復
高可用性コントロールプレーンでは、3 つの etcd Pod が etcd クラスター内のステートフルセットの一部として実行されます。etcd クラスターを回復するには、etcd クラスターの健全性をチェックして、正常でない etcd Pod を特定します。
8.1.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.1.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