Azure Kubernetes Service (AKS)でのノード自動プロビジョニング (NAP) の概要

この記事では、Azure Kubernetes Service (AKS)でのノード自動プロビジョニング (NAP) の概要について説明します。これには、そのしくみ、アップグレードの動作、前提条件、制限事項、開始するリソースが含まれます。

ほとんどの運用環境の AKS ワークロードでは、AKS Automatic が推奨される既定値です。 AKS Automatic には、事前構成済み機能として NAP が含まれており、SLA に基づくポッド対応性を備えた運用準備完了の運用ベースラインが提供されます。

AKS でのノード自動プロビジョニングとは

ワークロードを AKS にデプロイするときは、ノード プール構成の一部として適切な仮想マシン (VM) サイズを選択する必要があります。 ワークロードが複雑になるにつれて、さまざまなリソース要件を持つ異なるワークロードが発生する可能性があるため、多数のリソース要求に対して VM 構成を設計することが困難になります。

ノード自動プロビジョニング (NAP) は、ワークロードに最適な VM 構成を自動的にプロビジョニングおよび管理することで、このプロセスを簡略化します。 NAP では、保留中のポッド リソース要件を使用して、最も効率的でコスト効率の高い方法でワークロードを実行するための最適な VM 構成を決定します。

NAP は、AKS クラスターで Karpenter を自動的にデプロイ、構成、管理します。これは、オープンソースの Karpenter および AKS Karpenter プロバイダー プロジェクトに基づいています。

AKS Automatic では、NAP は既定で事前構成されています。 AKS Standard では、NAP を明示的に有効にして構成します。

AKS Automatic または AKS Standard for NAP を選択する

開始点を選択するには、次のガイダンスを使用します。

シナリオ 推奨パス なぜでしょうか
ほとんどの運用ワークロード AKS Automatic NAP は事前構成済みであり、ポッドの準備は SLA に基づくものであり、2 日目のノード操作が減ります。
高度なカスタム プラットフォーム要件 AKS Standard と NAP クラスターとプロビジョニングの構成をより手動で制御できます。
VM の計画を少なくして運用へのパスを高速化する AKS Automatic ノードのサイズ設定とライフサイクル操作の運用オーバーヘッドが削減されました。
1 日目からのきめ細かいプラットフォーム チューニング AKS Standard と NAP カスタム コントロールと運用パターンの柔軟性が向上します。

AKS Automatic の概要については、「Azure Kubernetes Service (AKS) Automatic の概要」を参照してください。

ノードの自動プロビジョニングのしくみ

ノードの自動プロビジョニングでは、保留中のポッドの負荷に応じて、クラスター内の VM (ノード) をプロビジョニング、スケーリング、および管理します。

ノード自動プロビジョニングの主要コンポーネント

NAP では、クラスターのノードの管理に役立つ次の主要なコンポーネントが使用されます。

コンポーネント Description
NodePool および AKSNodeClass ワークロードのノード プロビジョニング ポリシー、VM 仕様、制約を定義するために作成および管理するカスタム リソース定義 (CRD)。
NodeClaims 監視できるプロビジョニング済みノードの現在の状態を表すために NAP によって管理されます。
ワークロード リソースの要件 プロビジョニングの決定を推進するポッド、デプロイ、ジョブ、およびその他の Kubernetes リソースの CPU、メモリ、およびその他の仕様。

ヒント

AKS 自動クラスターでは、NAP は事前構成され、ポッドの準備 SLA によってサポートされます。これにより、99.9% のポッド準備操作が 5 分以内に完了することが保証されます。 つまり、手動で VM を選択したり、容量を計画したりすることなく、ワークロードが適切なサイズのノードですぐに実行を開始します。

ほとんどの運用チームでは、これにより、AKS Automatic が、予測可能なスタートアップ動作の既定の開始点となり、2 日目の運用オーバーヘッドが削減されます。

ノード自動プロビジョニングにおける Kubernetes アップグレードの挙動

ノード自動プロビジョニング ノードの Kubernetes アップグレードは、コントロール プレーンの Kubernetes バージョンに従います。 クラスターのアップグレードを実行すると、コントロール プレーンと同じバージョン管理に従ってノードが自動的に更新されます。

クラスターの Kubernetes アップグレードを自動的に処理する Kubernetes 自動アップグレード チャネルを設定することをお勧めします。 クラスターの 計画メンテナンス期間 も設定することをお勧めします。 aksManagedAutoUpgradeScheduleメンテナンス期間では、指定された自動アップグレード チャネルによってスケジュールされたクラスター アップグレードを実行するタイミングを制御できます。 詳細については、「計画メンテナンスを使用して、Azure Kubernetes Service (AKS) クラスターのアップグレードをスケジュールおよび制御するを参照してください。

[前提条件]

AKS でノードの自動プロビジョニングを使用するには、次の前提条件が必要です。

  • Azure サブスクリプション。 アカウントがない場合は、無料アカウントを作成することができます。
  • Azure CLI バージョン 2.76.0 以降。 バージョンを見つけるには、 az --versionを実行します。 Azure CLIのインストールまたはアップグレードの詳細については、「Install Azure CLI」を参照してください。

制限事項とサポートされていない機能

AKS のノード自動プロビジョニングには、次の制限事項とサポートされていない機能が適用されます。

  • クラスター オートスケーラーで有効になっているクラスターで NAP を有効にすることはできません。
  • Windows ノード プールはサポートされていません。
  • IPv6 クラスターはサポートされていません。
  • サービス プリンシパル はサポートされていません。 システム割り当てまたはユーザー割り当てマネージド ID のどちらかを使用できます。
  • NAP で有効 になっているクラスターを停止 することはできません。
  • NAP を有効にしたクラスターを作成した後で、 クラスターエグレス送信の種類 を変更することはできません。
  • カスタム仮想ネットワーク (VNet) で NAP クラスターを作成する場合は、Standard Load Balancerを使用する必要があります。 Basic Load Balancerはサポートされていません。

AKS でのノード自動プロビジョニングを始めましょう

新しい運用ワークロードを開始する場合は、AKS Automatic から始めます。

AKS Standard または高度な NAP カスタマイズ シナリオでは、次のリソースを使用します。