3.5.2. etcd データの復元
静的 Pod で etcd を復元する前に、以下を確認します。
etcdctl
バイナリーが利用可能であるか、またはコンテナー化インストールの場合はrhel7/etcd
コンテナーが利用可能でなければなりません。以下のコマンドを実行して etcd パッケージで
etcdctl
バイナリーをインストールできます。yum install etcd
# yum install etcd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このパッケージは systemd サービスもインストールします。etcd を静的 Pod で実行時に systemd サービスとして実行されないようにサービスを無効にしてマスクします。サービスを無効にしてマスクすることで、誤って開始したり、システムの再起動時に自動的にサービスの再起動がされないようにします。
systemctl disable etcd.service
# systemctl disable etcd.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow systemctl mask etcd.service
# systemctl mask etcd.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
静的 Pod で etcd を復元するには、以下を実行します。
Pod が実行中の場合、Pod のマニフェスト YAML ファイルを別のディレクトリーに移動して etcd Pod を停止します。
mkdir -p /etc/origin/node/pods-stopped
# mkdir -p /etc/origin/node/pods-stopped
Copy to Clipboard Copied! Toggle word wrap Toggle overflow mv /etc/origin/node/pods/etcd.yaml /etc/origin/node/pods-stopped
# mv /etc/origin/node/pods/etcd.yaml /etc/origin/node/pods-stopped
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 古いデータはすべて移動します。
mv /var/lib/etcd /var/lib/etcd.old
# mv /var/lib/etcd /var/lib/etcd.old
Copy to Clipboard Copied! Toggle word wrap Toggle overflow etcdctl を使用して、Pod を復元するノードでデータを再作成します。
etcd スナップショットを etcd Pod のマウントパスに復元します。
export ETCDCTL_API=3
# export ETCDCTL_API=3
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow バックアップの etcd.conf ファイルからクラスターの適切な値を取得します。
データディレクトリーに必要なパーミッションおよび selinux コンテキストを設定します。
restorecon -RvF /var/lib/etcd/
# restorecon -RvF /var/lib/etcd/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Pod のマニフェスト YAML ファイルを必要なディレクトリーに移動して etcd Pod を再起動します。
mv /etc/origin/node/pods-stopped/etcd.yaml /etc/origin/node/pods/
# mv /etc/origin/node/pods-stopped/etcd.yaml /etc/origin/node/pods/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow