サーバーの再起動を伴うメンテナンス中は、コンテナの配備・更新・削除等できなくなります。
コンテナの配備・更新・削除が不要なタイミングでメンテナンスを実施してください。
Kubernetes masterサーバーのメンテナンスの過程でサーバー再起動を実施しても、Container Managementで動作するコンテナに影響はありません。
ここでは、Container Managementで稼働中のアプリケーションを停止させずに、nodeサーバーの再起動を伴うメンテナンスを実施する方法について説明します。
API Proxyの設定を変更します。
「操作ガイド(FJCS仕様)」の「4.3.3 ノードグループの登録、変更、削除手順」-「■振り分け先ノードの追加および削除」を参考にして、メンテナンスを実施するKubernetes nodeサーバーを振り分け先ノードから削除します。
Ansibleサーバーにログインして、以下のコマンドを実行し、メンテナンスを実施するKubernetes nodeサーバーのNAMEを確認します。
Kubernetes nodeサーバーのIPアドレスの一覧は「2.2 各サーバー情報の確認」に記載されています。
# kubectl get nodes -o custom-columns="NAME:{metadata.name},IP:{status.addresses[].address}" NAME IP az1-sghpf-service-server-k8s-master-00.novalocal 172.16.2.0 az1-sghpf-service-server-k8s-node-00.novalocal 172.16.2.10 az1-sghpf-service-server-k8s-node-01.novalocal 172.16.2.11
以下のコマンドを実行し、nodeからPodを退避します。
<node_name>にはkubectl get nodesコマンドで確認した、Kubernetes nodeサーバーのNAMEを指定します。
# kubectl drain --ignore-daemonsets --force <node_name>
上記コマンドを実行すると、Podが別のnodeへと退避され、新しいPodがスケジュールされなくなります。
メンテナンスを実施します。
メンテナンス作業完了後、以下のコマンドを実行し、新しいPodをスケジュール可能にします。
<node_name>にはkubectl drainコマンドを実行したKubernetes nodeサーバーのNAMEを指定します。
# kubectl uncordon <node_name>
API Proxyの設定を変更します。
「操作ガイド(FJCS仕様)」の「4.3.3 ノードグループの登録、変更、削除手順」-「■振り分け先ノードの追加および削除」を参考にして、メンテナンスを実施したKubernetes nodeサーバーを振り分け先ノードに追加します。
サーバーの再起動を伴うメンテナンス中は、コンテナからNFSサーバーへアクセスすることができなくなります。
コンテナを削除するなど、コンテナからNFSサーバーへアクセスさせないようにした状態でメンテナンスを実施してください。