Azure Kubernetes Service (AKS) クラスターを作成し、仮想ノードを使用できるように構成する

AKS クラスターでアプリケーション ワークロードをすばやくスケーリングするには、仮想ノードを使用します。 仮想ノードを使用すると、ポッドを短時間でプロビジョニングできるため、ポッドの実行時間に対して秒単位の支払いだけで済みます。 Kubernetes クラスターのオートスケーラーが VM コンピューティング ノードをデプロイして追加のポッドを実行するのを待つ必要はありません。 仮想ノードは、Linux のポッドとノードでのみサポートされます。

AKS 用の仮想ノード アドオンは、オープン ソース プロジェクト Virtual Kubelet に基づいています。

この記事では、仮想ノードを使用する上でのリージョンの可用性およびネットワークの要件の概要と、既知の制限事項について説明します。

リージョン別の提供状況

ACI によって VNET SKU がサポートされているリージョンはすべて、仮想ノードのデプロイに対応しています。 詳細については、「Azure リージョンの Azure Container Instances のリソースの可用性」を参照してください。

各リージョンで使用可能な CPU およびメモリ SKU については、Azure リージョンの Azure Container Instances の Azure Container Instances リソースの可用性 (Linux コンテナー グループ) に関するページを参照してください

ネットワークの要件

仮想ノードを使用すると、Azure Container Instances (ACI) および AKS クラスターで実行されているポッド間でのネットワーク通信が可能になります。 この通信を可能にするために、仮想ネットワーク サブネットが作成され、委任されたアクセス許可が割り当てられます。 仮想ノードは、"高度" ネットワーク (Azure CNI) を使用して作成された AKS クラスターに対してのみ機能します。 既定では、AKS クラスターは "基本" ネットワーク (kubenet) を使用して作成されます。

Azure Container Instances (ACI) で実行されているポッドは、ネットワークを構成するために、AKS API サーバー エンドポイントにアクセスする必要があります。

既知の制限事項

仮想ノードの機能は、ACI の機能セットに大きく依存します。 Azure Container Instances のクォータと制限に加えて、次のシナリオは仮想ノードではまだサポートされていません。

  • サービス プリンシパルを使用した ACR イメージのプル。 対処法は、Kubernetes シークレットを使用することです
  • 仮想ネットワークの制限事項 (VNet ピアリング、Kubernetes ネットワーク ポリシー、およびネットワーク セキュリティ グループを使用したインターネットへの送信トラフィックなど)。
  • Init コンテナー
  • ホストのエイリアス
  • ACI の exec の引数
  • DaemonSets を使用すると、ポッドは仮想ノードにデプロイされません
  • 仮想ノードでは、Linux ポッドのスケジュール設定がサポートされています。 オープンソースの Virtual Kubelet ACI プロバイダーを手動でインストールして、Windows Server のコンテナーを ACI にスケジュールすることができます。
  • 仮想ノードには、Azure CNI ネットワークを使用した AKS クラスターが必要です。
  • AKS に対する API サーバーの許可された IP 範囲の使用。
  • Azure Files 共有のサポート汎用 v1 をマウントするボリューム。 Azure Files 共有を含むボリュームをマウントする手順に従います。
  • IPv6 の使用はサポートされていません。
  • 仮想ノードでは、コンテナー フック機能はサポートされていません。

次のステップ

ご利用のクラスターに対して仮想ノードを構成します。

多くの場合、仮想ノードは AKS のスケーリング ソリューションの 1 つのコンポーネントです。 スケーリング ソリューションの詳細については、次の記事を参照してください。