This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.2.2. メンバーをクラスターに戻す
etcd クラスターからメンバーを削除した後に、以下のいずれかの手順を使用してメンバーをクラスターに追加します。
- マスターホストの etcd 証明書が有効な場合は、メンバーを etcd クラスターに戻します。
- マスターホストの etcd 証明書がない場合やそれらが有効でなくなった場合は、etcd 証明書を生成し、メンバーを etcd クラスターに追加します。
2.2.1. マスターホストを etcd クラスターに戻す
マスターホストを etcd クラスターに追加するには、以下の手順に従います。この手順では、事前にマスターホストをクラスターから削除し、TLS 証明書や DNS などのその etcd 依存関係が有効であることを前提とします。
前提条件
- 
							cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。
- etcd クラスターに追加するマスターホストへの SSH アクセスがある。
- 既存のアクティブな etcd メンバーの IP アドレスがある。
手順
- etcd クラスターに追加するマスターホストにアクセスします。 重要- この手順は、etcd クラスターに追加されるマスターホストで実行する必要があります。 
- etcd-member-add.shスクリプトを実行し、2 つのパラメーターを渡します。- 既存の etcd メンバーの IP アドレス
- 追加する etcd メンバーの名前
 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- etcd メンバーが正常に etcd クラスターに追加されたことを確認します。 - 実行中の etcd コンテナーに接続します。 - [core@ip-10-0-147-172 ~] id=$(sudo crictl ps --name etcd-member | awk 'FNR==2{ print $1}') && sudo crictl exec -it $id /bin/sh- [core@ip-10-0-147-172 ~] id=$(sudo crictl ps --name etcd-member | awk 'FNR==2{ print $1}') && sudo crictl exec -it $id /bin/sh- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- etcd コンテナーで、etcd に接続するために必要な変数をエクスポートします。 - export ETCDCTL_API=3 ETCDCTL_CACERT=/etc/ssl/etcd/ca.crt ETCDCTL_CERT=$(find /etc/ssl/ -name *peer*crt) ETCDCTL_KEY=$(find /etc/ssl/ -name *peer*key) - sh-4.3# export ETCDCTL_API=3 ETCDCTL_CACERT=/etc/ssl/etcd/ca.crt ETCDCTL_CERT=$(find /etc/ssl/ -name *peer*crt) ETCDCTL_KEY=$(find /etc/ssl/ -name *peer*key)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- etcd コンテナーで、 - etcdctl member listを実行し、新規メンバーが一覧表示されていることを確認します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 新規メンバーが起動するまで最長 10 分の時間がかかる可能性があります。 
- etcd コンテナーで、 - etcdctl endpoint healthを実行し、新規メンバーの状態が正常であることを確認します。- etcdctl endpoint health --cluster - sh-4.3# etcdctl endpoint health --cluster https://10.0.128.73:2379 is healthy: successfully committed proposal: took = 4.5576ms https://10.0.147.172:2379 is healthy: successfully committed proposal: took = 5.1521ms https://10.0.171.108:2379 is healthy: successfully committed proposal: took = 4.2631ms- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 新規メンバーが etcd に関連付けられた Pod の一覧にあり、そのステータスが - Runningであることを確認します。- クラスターにアクセスできるターミナルで、以下のコマンドを実行します。 - oc get pods -n openshift-etcd - $ oc get pods -n openshift-etcd NAME READY STATUS RESTARTS AGE etcd-member-ip-10-0-128-73.us-east-2.compute.internal 2/2 Running 0 15h etcd-member-ip-10-0-147-172.us-east-2.compute.internal 2/2 Running 7 122m etcd-member-ip-10-0-171-108.us-east-2.compute.internal 2/2 Running 0 15h- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
2.2.2. etcd 証明書の生成およびメンバーのクラスターへの追加
ノードが新規であるか、またはノードの etcd 証明書が有効でなくなった場合、メンバーを etcd クラスターに追加する前に etcd 証明書を生成する必要があります。
前提条件
- 
							cluster-adminロールを持つユーザーとしてクラスターにアクセスできる。
- etcd クラスターに追加する新規マスターホストへの SSH アクセスがある。
- 正常なマスターホストの 1 つへの SSH アクセスがある。
- 正常なマスターホストのいずれかの IP アドレスがある。
手順
- 正常なマスターノードのいずれかに一時的な etcd 証明書の署名側のサービスを設定します。 - 正常なマスターノードの 1 つにアクセスし、以下のコマンドを使用して - cluster-adminユーザーとしてクラスターにログインします。- sudo oc login https://localhost:6443 - [core@ip-10-0-143-125 ~]$ sudo oc login https://localhost:6443 Authentication required for https://localhost:6443 (openshift) Username: kubeadmin Password: Login successful.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- kube-etcd-signer-serverイメージのプル仕様を取得します。- export KUBE_ETCD_SIGNER_SERVER=$(sudo oc adm release info --image-for kube-etcd-signer-server --registry-config=/var/lib/kubelet/config.json) - [core@ip-10-0-143-125 ~]$ export KUBE_ETCD_SIGNER_SERVER=$(sudo oc adm release info --image-for kube-etcd-signer-server --registry-config=/var/lib/kubelet/config.json)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- tokenize-signer.shスクリプトを実行します。- -Eフラグを- sudoに渡し、環境変数がスクリプトに適切に渡されるようにします。- sudo -E /usr/local/bin/tokenize-signer.sh ip-10-0-143-125 - [core@ip-10-0-143-125 ~]$ sudo -E /usr/local/bin/tokenize-signer.sh ip-10-0-143-125- 1 - Populating template /usr/local/share/openshift-recovery/template/kube-etcd-cert-signer.yaml.template Populating template ./assets/tmp/kube-etcd-cert-signer.yaml.stage1 Tokenized template now ready: ./assets/manifests/kube-etcd-cert-signer.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 署名側のデプロイ先となる正常なマスターのホスト名。
 
- 生成されたファイルを使用して、署名側の Pod を作成します。 - sudo oc create -f assets/manifests/kube-etcd-cert-signer.yaml - [core@ip-10-0-143-125 ~]$ sudo oc create -f assets/manifests/kube-etcd-cert-signer.yaml pod/etcd-signer created- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 署名側がこのマスターノードでリッスンしていることを確認します。 - ss -ltn | grep 9943 - [core@ip-10-0-143-125 ~]$ ss -ltn | grep 9943 LISTEN 0 128 *:9943 *:*- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 新規マスターホストを etcd クラスターに追加します。 - クラスターに追加される新規マスターホストにアクセスし、以下のコマンドを使用して - cluster-adminユーザーとしてクラスターにログインします。- sudo oc login https://localhost:6443 - [core@ip-10-0-156-255 ~]$ sudo oc login https://localhost:6443 Authentication required for https://localhost:6443 (openshift) Username: kubeadmin Password: Login successful.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- etcd-member-recover.shスクリプトで必要な 2 つの環境変数をエクスポートします。- export SETUP_ETCD_ENVIRONMENT=$(sudo oc adm release info --image-for machine-config-operator --registry-config=/var/lib/kubelet/config.json) - [core@ip-10-0-156-255 ~]$ export SETUP_ETCD_ENVIRONMENT=$(sudo oc adm release info --image-for machine-config-operator --registry-config=/var/lib/kubelet/config.json)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - export KUBE_CLIENT_AGENT=$(sudo oc adm release info --image-for kube-client-agent --registry-config=/var/lib/kubelet/config.json) - [core@ip-10-0-156-255 ~]$ export KUBE_CLIENT_AGENT=$(sudo oc adm release info --image-for kube-client-agent --registry-config=/var/lib/kubelet/config.json)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- etcd-member-recover.shスクリプトを実行します。- -Eフラグを- sudoに渡し、環境変数がスクリプトに適切に渡されるようにします。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- 署名側のサーバーが実行されている正常なマスターの IP アドレスと、新規メンバーの etcd 名の両方を指定します。
 
- 新規マスターホストが etcd メンバーの一覧に追加されていることを確認します。 - 正常なマスターにアクセスし、実行中の etcd コンテナーに接続します。 - [core@ip-10-0-143-125 ~] id=$(sudo crictl ps --name etcd-member | awk 'FNR==2{ print $1}') && sudo crictl exec -it $id /bin/sh- [core@ip-10-0-143-125 ~] id=$(sudo crictl ps --name etcd-member | awk 'FNR==2{ print $1}') && sudo crictl exec -it $id /bin/sh- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- etcd コンテナーで、etcd に接続するために必要な変数をエクスポートします。 - export ETCDCTL_API=3 ETCDCTL_CACERT=/etc/ssl/etcd/ca.crt ETCDCTL_CERT=$(find /etc/ssl/ -name *peer*crt) ETCDCTL_KEY=$(find /etc/ssl/ -name *peer*key) - sh-4.3# export ETCDCTL_API=3 ETCDCTL_CACERT=/etc/ssl/etcd/ca.crt ETCDCTL_CERT=$(find /etc/ssl/ -name *peer*crt) ETCDCTL_KEY=$(find /etc/ssl/ -name *peer*key)- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- etcd コンテナーで、 - etcdctl member listを実行し、新規メンバーが一覧表示されていることを確認します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 新規メンバーが起動するまで最長 20 分の時間がかかる可能性があります。 
 
 
- 新規メンバーの追加後に、署名側の Pod は不要になるため、これを削除します。 - クラスターにアクセスできるターミナルで、以下のコマンドを実行します。 - oc delete pod -n openshift-config etcd-signer - $ oc delete pod -n openshift-config etcd-signer- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow