VPC環境で利用できます。
クラスタ内のワーカーノードリストを確認し、各ワーカーノードを管理できます。Graceful Terminationが必要な場合、kubectlコマンドを使用してワーカーノードから Podを安全に退避できます。
ワーカーノードリストの確認
クラスタのワーカーノードリストを確認する方法は次の通りです。
- NAVERクラウドプラットフォームコンソールの VPC環境で、
> Services > Containers > Ncloud Kubernetes Serviceメニューを順にクリックします。 - クラスタリストで、個々のクラスタの行をクリックします。
- クラスタ詳細情報タブで、ノードプール領域の下にある [ワーカーノードを見る] ボタンをクリックします。
- クラスタ名をクリックすると、他のクラスタのノードリストを確認できます。
- 正常なノードは、ノードステータスが Readyと表示されます。Kubeletが動作しない、またはその他の理由で正常に動作しないノードは、ノードのステータスが Not Readyと表示されます。
- コンソールの VPC環境で
> Services > Containers > Ncloud Kubernetes Service > Nodesを順にクリックする方法でもこのリストを確認できます。
ワーカーノードの詳細情報を見る
クラスタ内の各ワーカーノードの詳細情報を確認するには、ワーカーノードリストで確認したいノードの名前をクリックします。
Kubectlを通じたワーカーノードのメンテナンス
安定的なサービス運用のために介入が必要な場合、Kubectlを使用してワーカーノードから Podを安全に退避することで、その Pod内のコンテナを Graceful Terminationの形で終了できます。
ワーカーノードステータスの確認
ワーカーノードのステータスを確認するには、以下のコマンドを実行します。
$ kubectl --kubeconfig $KUBE_CONFIG describe node $NODENAME
以下は、正常なステータスのノードの例です。
"conditions": [
{
"type": "Ready",
"status": "True",
"reason": "KubeletReady",
"message": "kubelet is posting ready status",
"lastHeartbeatTime": "2019-06-05T18:38:35Z",
"lastTransitionTime": "2019-06-05T11:41:27Z"
}
]
- ノードのステータスは JSONオブジェクトで返されます。
- ノードのコンディションのうち、status値が5分以上 Unknownまたは Falseで維持される場合、ノード上のすべての Podはノードコントローラーにより削除されるようにスケジュールされます
(NAVERクラウドプラットフォームの Ncloud Kubernetes Serviceでは、pod-eviction-timeoutが5分に指定されています)。
ワーカーノードから Podを退避
ノードに対するカーネルアップデートやインフラのメンテナンスなどの様々なタスクを行う前に、kubectl drainコマンドを使用してノードから Podを安全に退避できます。安全に退避された Podのコンテナは Graceful Terminationの形で終了できます。
注意
ノード内の特定システムの Podはkubectl drainコマンドで削除できません。
削除できない Podに関する詳細内容は、kubectl drainをご参照ください。
kubectl drainコマンドを用いてワーカーノードから Podを退避する方法は、次の通りです。
- 以下のコマンドを実行して Podを退避したいノードを確認します。
$ kubectl --kubeconfig $KUBE_CONFIG get nodes
- 確認したノードのうち、Podを排出する対象のワーカーノードの名前を入力して以下のコマンドを実行します。
$ kubectl --kubeconfig $KUBE_CONFIG drain $NODENAME
- クラスタのメンテナンスを行った後、以下のコマンドを使用してそのワーカーノード Podが再度スケジューリングされるように設定します。
$ kubectl --kubeconfig $KUBE_CONFIG uncordon $NODENAME