|
可能な場合は、Equality の会社の値に一致するように、含めない用語を変更しました。顧客の実装に対する影響を回避するために、一部の用語は変更されていません。 |
VM/ベアメタルの Runtime Fabric を使用する場合、次の手順を使用して定期メンテナンスを実行できます。これには、OS パッチとセキュリティの更新の適用が含まれます。
コントローラーノードのメンテナンス
コントローラーノードは、Runtime Fabric クラスターのエントリポイントであり、アプリケーションワークロードは実行しません。
1 台ずつ、すべてのコントローラーノードを更新します。
-
上流の TCP ロードバランサーで、負荷分散プールからコントローラーノードを削除します。
-
必要なパッチを適用してからノードを再起動します。
-
コントローラーノードで更新が完了したら、ノードをクラスターに戻して、次のノードを更新します。
ワーカーノードのメンテナンス
ワーカーノードを更新するには、次の手順を実行します。
-
コントローラーノードで、
gravity shell コマンドを実行します。 -
すべてのノードの状況が
READY であることを確認します。$ kubectl get nodes NAME STATUS ROLES AGE VERSION 172.31.0.9 Ready node 1d v1.x.x 172.31.0.8 Ready master 1d v1.x.x -
アプリケーション名前空間 (環境 ID) を取得します。
$ kubectl get ns NAME STATUS AGE default Active 1d fff5df7b-c49d-48c9-967d-0071412722x4 Active 1d kube-node-lease Active 1d kube-public Active 1d kube-system Active 1d monitoring Active 1d rtf Active 1dコマンド出力において、アプリケーション名前空間は長い文字列として表されます。上の例では、アプリケーション名前空間は
fff5df7b-c49d-48c9-967d-0071412722x4 です。Runtime Fabric クラスターが複数の環境に関連付けられている場合は、複数のアプリケーション名前空間の値が表示されます。
-
名前空間でポッドとノードが実行中であることを確認します。
$ kubectl -n <namespace> get pod -owideコマンド出力では、
READY 列に Running と表示されています。NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES my-app-name-1-84f95cb7c9-glktk 2/2 Running 0 9m27s 10.244.88.29 172.31.0.9 <none> <none>複数の環境を使用している場合は、以下のステップを各環境で実行する必要があります。
-
更新が必要な各ワーカーノードに対して次の手順を実行します。
-
ノードをドレーンします。
$ kubectl drain <node name> --ignore-daemonsets --delete-local-dataノードをドレーンすると、次のアクションが実行されます。
-
アプリケーションが別のノード上でスケジュールされてから削除されます。
-
ノードの状況が
SchedulingDisabled に変更されます。アプリケーションのレプリカが最低 2 つ実行されていて、アプリケーションのデプロイ時に [Enforce deploying replicas across nodes (ノード間でレプリカのデプロイメントを適用)] が指定されていない限り、ドレーン処理中はサービスが中断します。
-
-
ノードの状況が
Ready,SchedulingDisabled であることを確認します。$ kubectl get node NAME STATUS ROLES AGE VERSION 172.31.0.9 Ready,SchedulingDisabled node 1d v1.x.x -
ドレーン済みのノードでアプリケーションポッドが実行中ではないことを確認します。
$ kubectl get pod -n <namespace> -owideNODE 列に表示されるコマンド出力に、ドレーン済みのノードでアプリケーションポッドが実行中ではないことが表示されていることを確認してください。 -
OS パッチを適用してからノードを再起動します。
-
再起動の完了後、ノードでスケジューリングを再び有効化します。
$ kubectl uncordon 172.31.0.9 node/172.31.0.9 uncordoned $ kubectl get node NAME STATUS ROLES AGE VERSION 172.31.0.9 Ready node 1d v1.x.x
-