web-dev-qa-db-ja.com

EKSでノードを正常にドレインする方法は?

Kubernetesのノードをドレインする必要がある場合があります。 k8sクラスターを手動でセットアップすると、特定のノードをドレインして、そのマシンを終了できます。 EKSにいる間、ノードは自動スケーリンググループの下にあります。つまり、特定のインスタンス(ノード)を終了することはできません。インスタンスを手動で終了すると、別のインスタンス(ノード)がeksクラスターに自動的に追加されます。

では、EKSでノードをドレインするための提案された方法はありますか?

8
Shengxin Zhang

これらの手順は機能するはずです。

1.)kubectlgetノード

2.)kubectl cordon <node name>

3.)kubectldrain <node name> --ignore-daemonsets

4.)aws autoscaling terminal-instance-in-auto-scaling-group --instance-id <instance-id> --should-decrement-desired-capacity

ステップ3では、代わりにこれを使用することを検討する必要があるかもしれません。

kubectldrain <node name> --ignore-daemonsets --delete-local-data

AWS自動スケーリンググループの場合、ノードが複数のゾーンにまたがっている場合は、単一のゾーンのすべてのノードではなく、各ゾーンのノードを削除することを検討してください。

上記のコマンドを実行した後、自動スケーリンググループの目的の番号を確認してください。自動的に減少するはずです。 terraformまたはその他の自動化フレームワークを使用している場合は、インフラストラクチャスクリプトで自動スケーリンググループ構成を更新することを忘れないでください。

12
Steve-Liang