クラスタノードプールの管理

Prev Next

VPC環境で利用できます。

クラスタ内のノードプールリストを確認し、個々のノードプールの詳細情報確認、削除、アップグレード、ワーカーノード数の変更などの管理タスクを行うことができます。

ノードプールリストの確認

ノードプール全体リスト

サービス内に作成されたすべてのノードプールのリストを確認するには、NAVERクラウドプラットフォームコンソールの VPC環境で、i_menu > Services > Containers > Ncloud Kubernetes Service > Node poolsメニューを順にクリックします。

個別のクラスタ内のノードプールリスト

各クラスタ内のノードプールリストを確認する方法は、次の通りです。

  1. NAVERクラウドプラットフォームコンソールの VPC環境で、i_menu > Services > Containers > Ncloud Kubernetes Serviceメニューを順にクリックします。
  2. クラスタリストで、ノードプールリストを確認するクラスタの行をクリックします。

ノードプールの詳細情報を見る

各ノードプールの詳細情報を確認するには、ノードプールリストで確認するノードプールの名前をクリックしてください。

ノードプールの追加

クラスタに新しいノードプールを追加する方法は、次の通りです。

  1. クラスタリストで、個々のクラスタの行をクリックします。
  2. クラスタの詳細情報タブでノードプール領域の下にある [追加] ボタンをクリックします。
  3. ノードプール名、サーバイメージ名、サーバタイプ、ノード数、Kubernetes Label、Taint、サブネット、Node IAM Roleを入力した後、 [次へ] ボタンをクリックします。
  4. ノードプール設定をもう一度確認した後、 [作成する] ボタンをクリックします。

ノードプール内のワーカーノード数の変更

ワーカーノード数を直接変更

クラスタノードプールのワーカーノード数は直接変更するか、クラスタ Autoscalerを用いて自動で増減するように設定できます。
クラスタノードプールのワーカーノード数を直接変更する方法は、次の通りです。

  1. クラスタリストで、個々のクラスタの行をクリックします。
  2. クラスタの詳細情報タブのノードプールリストで確認するノードプールの名前をクリックします。
  3. ノードプールの詳細情報ページで [変更] ボタンをクリックします。
  4. 設定のポップアップで未設定ボタンをクリックした後、ワーカーノード数を入力します。
  5. [変更] ボタンをクリックします。

特定のワーカーノードを削除

ノードプールのノード数を減らす場合のタスク優先順位は、次の通りです。

  1. 停止ステータスのノード
  2. 作成日が古いノード

クラスタノードプールの特定ノードを削除する方法は、次の通りです。

  1. クラスタリストで、個々のクラスタの行をクリックします。
  2. クラスタの詳細情報タブのノードプールリストで確認するノードプールの名前をクリックします。
  3. ノードプールの詳細情報ページで対象ノードの [削除] ボタンをクリックします。

または、対象ノードを停止した後、ノード数を変更して実行できます。

クラスタ Autoscalerを用いた数の自動増減

クラスタ Autoscalerを使用してワーカーノード数を自動増減させるには、Cluster Autoscaler を使用するをご参照ください。

ノードプールの Kubernetes Labelと Taint変更

ノードプールの Kubernetes Labelと Taintを変更する方法は、次の通りです。

  1. クラスタリストで、個々のクラスタの行をクリックします。
  2. クラスタの詳細情報タブのノードプールリストで確認するノードプールの名前をクリックします。
  3. ノードプールの詳細情報ページで Kubernetes Labelまたは Taintリスト下にある [変更] ボタンをクリックします。
  4. Kubernetes Labelまたは Taintを変更した後、 [確認] ボタンをクリックします。

ノードプールの削除

クラスタノードプールを削除する方法は、次の通りです。

  1. クラスタリストで、個々のクラスタの行をクリックします。
  2. クラスタの詳細情報タブのノードプールリストで削除するノードプールの名前をクリックします。
  3. ノードプールの詳細情報ページで [削除] ボタンをクリックします。
  4. 確認のポップアップでそのノードプールの名前を入力した後、 [削除] ボタンをクリックします。

ノードラベルを用いたノードプールの識別

各ノードが属するノードプールの情報はノードラベルに追加され、'ncloud.com/nks-nodepool: {ノードプール名}' の形で表示されます。'--show-labels'オプションを使用してノードラベルを確認できます。ノードラベルを利用してノードプールを識別した後、各ノードプールの仕様に応じて Podを効率的に配置できます。
ノードラベルを確認するには、以下のコマンドを実行します。

$ kubectl --kubeconfig $KUBE_CONFIG get nodes --show-labels

ノードプールのアップグレード

追加で増加できるノード数とサービス不可でも問題ないノード数を指定してノードプールのバージョンアップグレードを行えます。ノードプールのバージョンアップグレードは、以下のように行われます。

  1. 追加で増加できるノード数だけ新規バージョンのノードを作成し、ノードが登録されるまで待機
  2. 取り替え対象のノードに Podがスケジュールできないように設定し、既存 Podを他のノードに再配置
  3. 取り替え対象のノードを削除
  4. すべてのノードが新規バージョンに取り替えられるまで上記のタスクを繰り返す

アップグレード前のチェック

ノードプールをアップグレードする前に、以下の事項を確認してサービスに影響を与えかねない要素をチェックしてください。

  • 新しいバージョンの変更事項: Kubernetes changelogを参照して、新しいバージョンで変更された内容がサービスに影響を与える可能性があるか確認します。
  • バージョンスキューポリシー: Version Skew Policyを参照して、クラスタとコンポーネントのバージョン間の互換性を確認します。
  • Admission Webhook: クラスタ内に Webhookがある場合、アップグレード中にデッドロックに陥るおそれがあります。Dynamic Admission Controlを参照してアップグレード前にあらかじめ対策を講じてください。
  • 利用可能なサーバの確保: 安定的なアップグレードのために、追加で増加できるノード数だけの利用可能なサーバを確保します。
  • ノード情報変更の確認: ノードプールをアップグレードすると、既存のノード関連情報は初期化または変更されます。アップグレードを行う前にローカルボリューム情報、ノード名、IPアドレス、ラベルなどの情報をあらかじめ確認します。
注意

ノードプールのアップグレードの際にワーカーノードがローテーションされます。既存のノード IPアドレスと設定が維持されず、アップグレード後に既存情報を再使用したり、再割り当てすることはできません。アップグレードの前に関連情報と設定を確認し、サービスへの影響を最小化できるように準備してください。

以下を参照して、アップグレードに関連する詳細事項を設定することができます。

  • PodDisruptionBudget: Specifying a Disruption Budgetを参照して、クラスタのアップグレード中にもサービス中の Podを希望する割合または数で維持できます。
  • Readiness Probe: Define readiness probesを参照して、ノードプールの取り換え中に Podが再配置される時、Podがサービス可能なステータスである場合にのみ Ncloud Kubernetes Serviceリソースを通じてアクセスできるように設定できます。

アップグレード方法

ノードプールをアップグレードする方法は、次の通りです。

  1. クラスタリストで、アップグレードするノードプールがあるクラスタの行をクリックします。
  2. クラスタの詳細情報タブでアップグレードするノードプール名の下にある [アップグレード] ボタンをクリックします。
  3. 追加で増加できるノード数とサービス不可でも問題ないノード数を設定し、アップグレードを行います。
    • 追加で増加できるノード数: アップグレード中に追加できるノードの数を意味します。デフォルトは1で、最小0から最大0まで指定できます。
    • サービス不可でも問題ないノード数: アップグレードの実行中にサービス不可ステータスになっても問題ないノード数を意味します。デフォルト値は0で、最大5まで指定できます。
      既存ノード数が減少する時にこの数だけ追加で減少し、新規ノードが追加される時に最大追加で増加できるノード数とサービス不可でも問題ないノード数の合計だけ増加できます。

ノード数設定の例

  • 例1) ノードプールのサイズ5、追加で増加できるノード数1、サービス不可でも問題ないノード数0
    ノードプールのサイズよりも1台さらに作成できるので、最大6台のノードが存在できます。
    ノード数は、既存ノードプールのサイズより小さくはなり得ません。
    ノードのローテーションが1つずつ行われるため比較的ゆっくりではありますが、安定したアップグレードが行えます。
  • 例2) ノードプールのサイズ5、追加で増加できるノード数5、サービス不可でも問題ないノード数0
    ノードプールのサイズより5台までさらに作成できるため、ノードは最大10個まで存在できます。
    ノード数は、既存ノードプールのサイズより小さくはなり得ません。
    一度に多くのノードを追加するため、比較的スピーディーで安定したアップグレードが行えます。
  • 例3) ノードプールのサイズ5、追加で増加できるノード数0、サービス不可でも問題ないノード数5
    既存ノードプールのサイズよりも数がさらに減少でき、最小0台のノードが存在できます。
    ノード数は、既存ノードプールのサイズより大きくはなり得ません。
    一度に取り替えられるノード数が多いためスピーディーにアップグレードを行えますが、クラスタが不安定になる可能性があります。