Azure Arc ネットワーク要件によって有効になっている AKS

適用対象: Azure Stack HCI バージョン 23H2

この記事では、Azure Arc で有効になっている AKS の VM とアプリケーションのコア ネットワークの概念について説明します。この記事では、Kubernetes クラスターを作成するために必要なネットワークの前提条件についても説明します。 ネットワーク管理者と協力して、Arc で有効な AKS のデプロイに必要なネットワーク パラメーターを指定して設定することをお勧めします。

この概念記事では、次の主要なコンポーネントについて説明します。 AKS Arc クラスターとアプリケーションを正常に作成して動作させるには、これらのコンポーネントに静的 IP アドレスが必要です。

  • AKS クラスター VM
  • AKS コントロール プレーン IP
  • コンテナー化されたアプリケーションのロード バランサー

AKS クラスター VM のネットワーク

Kubernetes ノードは、Arc によって有効になっている AKS に特殊な仮想マシンとしてデプロイされます。これらの VM には、Kubernetes ノード間の通信を可能にするために IP アドレスが割り当てられます。 AKS Arc は、Azure Stack HCI 論理ネットワークを使用して、Kubernetes クラスターの基になる VM の IP アドレスとネットワークを提供します。 論理ネットワークの詳細については、「 Azure Stack HCI の論理ネットワーク」を参照してください。 Azure Stack HCI 環境では、AKS クラスター ノード VM ごとに 1 つの IP アドレスを予約する必要があります。

注意

静的 IP は、AKS Arc VM に IP アドレスを割り当てるためにサポートされている唯一のモードです。 これは、Kubernetes クラスターのライフサイクル全体を通して Kubernetes ノードに割り当てられた IP アドレスを一定にする必要があるためです。

AKS Arc クラスター作成操作に論理ネットワークを使用するには、次のパラメーターが必要です。

論理ネットワーク パラメーター 説明 AKS Arc クラスターに必要なパラメーター
--address-prefixes ネットワークの AddressPrefix。 現在サポートされているアドレス プレフィックスは 1 つだけです。 使用方法: --address-prefixes "10.220.32.16/24" サポートされています
--dns-servers DNS サーバーの IP アドレスのスペース区切りの一覧。 使用方法: --dns-servers 10.220.32.16 10.220.32.17 サポートされています
--gateway ゲートウェイ。 ゲートウェイ IP アドレスは、アドレス プレフィックスのスコープ内にある必要があります。 使用方法: --gateway 10.220.32.16 サポートされています
--ip-allocation-method IP アドレスの割り当て方法。 サポートされている値は "Static" です。 使用方法: --ip-allocation-method "Static" サポートされています
--ip-pool-start IP プールの開始 IP アドレス。 アドレスは、アドレス プレフィックスの範囲内である必要があります。 使用方法: --ip-pool-start "10.220.32.18" サポートされています
--ip-pool-end IP プールの終了 IP アドレス。 アドレスは、アドレス プレフィックスの範囲内である必要があります。 使用方法: --ip-pool-end "10.220.32.38" サポートされています
--vm-switch-name VM スイッチの名前。 使用方法: --vm-switch-name "vm-switch-01" サポートされています

コントロール プレーン IP

Kubernetes はコントロール プレーンを使用して、Kubernetes クラスター内のすべてのコンポーネントが目的の状態に保たれるようにします。 コントロール プレーンでは、コンテナー化されたアプリケーションを保持するワーカー ノードも管理および維持されます。 Arc によって有効になっている AKS によって KubeVIP ロード バランサーがデプロイされ、Kubernetes コントロール プレーンの API サーバー IP アドレスが常に使用できるようになります。 この KubeVIP インスタンスが正しく機能するには、1 つの変更できない "コントロール プレーン IP アドレス" が必要です。

注意

コントロール プレーン IP は、Kubernetes クラスターを作成するために必要なパラメーターです。 Kubernetes クラスターのコントロール プレーン IP アドレスが、Arc VM 論理ネットワーク、インフラストラクチャ ネットワーク IP、ロード バランサーなど、他の何かと重複しないようにする必要があります。コントロール プレーン IP は、論理ネットワークのアドレス プレフィックスのスコープ内にあり、IP プールの外部にある必要もあります。 これは、IP プールが VM にのみ使用され、コントロール プレーンの IP プールから IP アドレスを選択すると、IP アドレスの競合が発生する可能性があるためです。 IP アドレスが重複すると、AKS クラスターと、IP アドレスが使用されている他の場所の両方で予期しないエラーが発生する可能性があります。 環境内の Kubernetes クラスターごとに 1 つの IP アドレスを予約する必要があります。

コンテナー化されたアプリケーション用のロード バランサー IP

ロード バランサーのメインの目的は、Kubernetes クラスター内の複数のノードにトラフィックを分散することです。 この負荷分散は、ダウンタイムを防ぎ、アプリケーションの全体的なパフォーマンスを向上させるのに役立ちます。 AKS では、Kubernetes クラスター用のロード バランサーをデプロイするための次のオプションがサポートされています。

MetalLB Arc 拡張機能を選択するか、独自のロード バランサーを使用するかに関係なく、ロード バランサー サービスに一連の IP アドレスを指定する必要があります。 次のようなオプションがあります。

  • AKS Arc VM と同じサブネットからサービスの IP アドレスを指定します。
  • アプリケーションで外部負荷分散が必要な場合は、別のネットワークと IP アドレスの一覧を使用します。

選択したオプションに関係なく、ロード バランサーに割り当てられた IP アドレスが、Kubernetes クラスターの論理ネットワークまたはコントロール プレーン IP の IP アドレスと競合しないようにする必要があります。 IP アドレスが競合すると、AKS のデプロイとアプリケーションで予期しないエラーが発生する可能性があります。

Kubernetes クラスターとアプリケーションの簡単な IP アドレス計画

次のシナリオのチュートリアルでは、Kubernetes クラスターとサービス用に 1 つのネットワークから IP アドレスを予約します。 これは、IP アドレス割り当ての最も簡単で簡単なシナリオです。

IP アドレスの要件 IP アドレスの最小数 この予約の方法と場所
AKS Arc VM IP Kubernetes クラスター内のすべてのワーカー ノードに 1 つの IP アドレスを予約します。 たとえば、各ノード プールに 3 つのノードを含む 3 つのノード プールを作成する場合は、IP プールに 9 つの IP アドレスが必要です。 Arc VM 論理ネットワークの IP プールを介して AKS Arc VM の IP アドレスを予約します。
AKS Arc K8s バージョンアップグレード IP AKS Arc はローリング アップグレードを実行するため、Kubernetes バージョンのアップグレード操作用に AKS Arc クラスターごとに 1 つの IP アドレスを予約します。 Arc VM 論理ネットワークの IP プールを使用して K8s バージョンのアップグレード操作用に IP アドレスを予約します。
コントロール プレーン IP 環境内のすべての Kubernetes クラスターに 1 つの IP アドレスを予約します。 たとえば、合計で 5 つのクラスターを作成する場合は、Kubernetes クラスターごとに 1 つずつ、5 つの IP アドレスを予約します。 Arc VM 論理ネットワークと同じサブネット内で、指定された IP プールの外部にあるコントロール プレーン IP の IP アドレスを予約します。
ロード バランサー IP 予約されている IP アドレスの数は、アプリケーションのデプロイ モデルによって異なります。 開始点として、Kubernetes サービスごとに 1 つの IP アドレスを予約できます。 Arc VM 論理ネットワークと同じサブネット内で、指定された IP プールの外部にあるコントロール プレーン IP の IP アドレスを予約します。

Kubernetes クラスターとアプリケーションの IP アドレス予約のチュートリアルの例

Jane は、Azure Arc で有効になっている AKS から始めたばかりの IT 管理者です。彼女は、2 つの Kubernetes クラスター (Kubernetes クラスター A と Kubernetes クラスター B) を Azure Stack HCI クラスターにデプロイしたいと考えています。 また、クラスター A の上で投票アプリケーションを実行したいと考えています。このアプリケーションには、2 つのクラスターとバックエンド データベースの 1 つのインスタンスで実行されているフロントエンド UI の 3 つのインスタンスがあります。 すべての AKS クラスターとサービスは、1 つのサブネットを持つ単一のネットワークで実行されています。

  • Kubernetes クラスター A には、3 つのコントロール プレーン ノードと 5 つのワーカー ノードがあります。
  • Kubernetes クラスター B には、1 つのコントロール プレーン ノードと 3 つのワーカー ノードがあります。
  • フロントエンド UI の 3 つのインスタンス (ポート 443)。
  • バックエンド データベースの 1 つのインスタンス (ポート 80)。

前の表に基づいて、サブネットに合計 19 個の IP アドレスを予約する必要があります。

  • クラスター A 内の AKS Arc ノード VM の 8 つの IP アドレス (K8s ノード VM ごとに 1 つの IP)。
  • クラスター B 内の AKS Arc ノード VM の 4 つの IP アドレス (K8s ノード VM ごとに 1 つの IP)。
  • AKS Arc アップグレード操作を実行するための 2 つの IP アドレス (AKS Arc クラスターごとに 1 つの IP アドレス)。
  • AKS Arc コントロール プレーンの 2 つの IP アドレス (AKS Arc クラスターごとに 1 つの IP アドレス)
  • Kubernetes サービスの 3 つの IP アドレス (すべて同じポートを使用するため、フロントエンド UI のインスタンスごとに 1 つの IP アドレス)。バックエンド データベースでは、異なるポートを使用している限り、3 つの IP アドレスのいずれかを使用できます。

この例を続け、次の表に追加すると、次のようになります。

パラメーター IP アドレスの数 この予約の方法と場所
AKS Arc VM と K8s バージョンのアップグレード 14 個の IP アドレスを予約する この予約は、Azure Stack HCI 論理ネットワークの IP プールを介して行います。
コントロール プレーン IP 2 つの IP アドレスを予約します。1 つは AKS Arc クラスター用です パラメーターを controlPlaneIP 使用して、コントロール プレーン IP の IP アドレスを渡します。 この IP が Arc 論理ネットワークと同じサブネット内にあり、Arc 論理ネットワークで定義されている IP プールの外部にあることを確認します。
ロード バランサー IP Jane の投票アプリケーションの Kubernetes サービスの 3 つの IP アドレス。 これらの IP アドレスは、クラスター A にロード バランサーをインストールするときに使用されます。MetalLB Arc 拡張機能を使用することも、独自のサード パーティ製ロード バランサーを使用することもできます。 この IP が Arc 論理ネットワークと同じサブネット内にあり、Arc VM 論理ネットワークで定義されている IP プールの外部にあることを確認します。

プロキシの設定

AKS のプロキシ設定は、基になるインフラストラクチャ システムから継承されます。 Kubernetes クラスターの個々のプロキシ設定を設定し、プロキシ設定を変更する機能はまだサポートされていません。

ネットワーク ポート & VLAN 間の要件

Azure Stack HCI をデプロイするときは、 管理ネットワークのサブネットに少なくとも 6 つの静的 IP アドレスの連続したブロックを割り当てます。物理サーバーで既に使用されているアドレスは省略します。 これらの IP は、Arc VM 管理と AKS Arc 用の Azure Stack HCI と内部インフラストラクチャ (Arc リソース ブリッジ) によって使用されます。Arc リソース ブリッジ関連の Azure Stack HCI サービスに IP アドレスを提供する管理ネットワークが、AKS クラスターの作成に使用した論理ネットワークとは異なる VLAN 上にある場合は、AKS クラスターを正常に作成して操作するために、次のポートが開かれていることを確認する必要があります。

宛先ポート 到着地 source 説明 クロス VLAN ネットワークに関する注意事項
22 AKS Arc VM に使用される論理ネットワーク 管理ネットワーク内の IP アドレス トラブルシューティングのためにログを収集するために必要です。 個別の VLAN を使用する場合、Azure Stack HCI と Arc リソース ブリッジに使用される管理ネットワーク内の IP アドレスは、このポート上の AKS Arc クラスター VM にアクセスする必要があります。
6443 AKS Arc VM に使用される論理ネットワーク 管理ネットワーク内の IP アドレス Kubernetes API と通信するために必要です。 個別の VLAN を使用する場合、Azure Stack HCI と Arc リソース ブリッジに使用される管理ネットワーク内の IP アドレスは、このポート上の AKS Arc クラスター VM にアクセスする必要があります。
55000 管理ネットワーク内の IP アドレス AKS Arc VM に使用される論理ネットワーク クラウド エージェント gRPC サーバー 個別の VLAN を使用する場合、AKS Arc VM は、このポートのクラウド エージェント IP とクラスター IP に使用される管理ネットワーク内の IP アドレスにアクセスする必要があります。
65000 管理ネットワーク内の IP アドレス AKS Arc VM に使用される論理ネットワーク クラウド エージェント gRPC 認証 個別の VLAN を使用する場合、AKS Arc VM は、このポートのクラウド エージェント IP とクラスター IP に使用される管理ネットワーク内の IP アドレスにアクセスする必要があります。

ファイアウォール URL の例外

Azure Arc ファイアウォール/プロキシ URL 許可リストの詳細については、 Azure Arc リソース ブリッジのネットワーク要件Azure Stack HCI 23H2 ネットワーク要件に関するページを参照してください。

Kubernetes クラスターのデプロイと操作を行うには、デプロイ内のすべての物理ノードと AKS Arc VM から次の URL に到達できる必要があります。 ファイアウォール構成でこれらの URL が許可されていることを確認します。

URL Port サービス メモ
https://mcr.microsoft.com 443 Microsoft コンテナー レジストリ コンテナー イメージなどの Microsoft の公式成果物に使用されます。
https://*.his.arc.azure.com 443 Azure Arc ID サービス ID とアクセス制御に使用されます。
https://*.dp.kubernetesconfiguration.azure.com 443 Kubernetes Azure Arc の構成に使用されます。
https://*.servicebus.windows.net 443 クラスター接続 ファイアウォールで受信ポートを有効にする必要なく、Azure Arc 対応 Kubernetes クラスターに安全に接続するために使用されます。
https://guestnotificationservice.azure.com 443 通知サービス ゲスト通知操作に使用されます。
https://*.dp.prod.appliances.azure.com 443 データ プレーン サービス リソース ブリッジ (アプライアンス) のデータ プレーン操作に使用されます。
*.data.mcr.microsoft.com
azurearcfork8s.azurecr.io
linuxgeneva-microsoft.azurecr.io
pipelineagent.azurecr.io
ecpacr.azurecr.io
443 エージェントのダウンロード イメージとエージェントをダウンロードするために使用されます。
*.prod.microsoftmetrics.com
*.prod.hot.ingestion.msftcloudes.com
dc.services.visualstudio.com
*.prod.warm.ingest.monitor.core.windows.net
gcs.prod.monitoring.core.windows.net
443 メトリックと正常性の監視 メトリックとテレメトリ トラフィックの監視に使用されます。
*.blob.core.windows.net
*.dl.delivery.mp.microsoft.com
*.do.dsp.mp.microsoft.com
443 TCP リソース ブリッジ (アプライアンス) イメージをダウンロードするために使用します。
https://azurearcfork8sdev.azurecr.io 443 Kubernetes Azure Arc for Kubernetes コンテナー イメージをダウンロードするために使用されます。
https://adhs.events.data.microsoft.com 443 テレメトリ ADHS は、アプライアンス/Mariner OS 内で実行されるテレメトリ サービスです。 必要な診断データをコントロール プレーン ノードから Microsoft に送信するために定期的に使用されます。 テレメトリがマリナーから外れるときに使用されます。これは、任意の Kubernetes コントロール プレーンを意味します。
https://v20.events.data.microsoft.com 443 テレメトリ Windows Server ホストから Microsoft に必要な診断データを送信するために定期的に使用されます。
gcr.io 443 Google コンテナー レジストリ コンテナー ベース イメージなどの Kubernetes 公式成果物に使用されます。
pypi.org 443 Python パッケージ Kubernetes と Python のバージョンを検証します。
*.pypi.org 443 Python パッケージ Kubernetes と Python のバージョンを検証します。
https://hybridaks.azurecr.io 443 コンテナー イメージ HybridAKS オペレーター イメージにアクセスするために必要です。
aka.ms 443 az extensions aksarcconnectedk8s などの Azure CLI 拡張機能をダウンロードするために必要です。
*.login.microsoft.com 443 Azure Azure Resource Manager トークンをフェッチし、更新するために必要です。
sts.windows.net 443 Azure Arc クラスター接続とカスタムの場所ベースのシナリオの場合。
hybridaksstorage.z13.web.core.windows.net 443 Azure Stack HCI Azure Storage でホストされている AKSHCI 静的 Web サイト。
raw.githubusercontent.com 443 GitHub GitHub に使用されます。
www.microsoft.com 80 Microsoft 公式 Web サイト。 Microsoft 公式 Web サイト。
*.prod.do.dsp.mp.microsoft.com 443 Microsoft Update リソース ブリッジ (アプライアンス) イメージのダウンロード。
files.pythonhosted.org 443 Python パッケージ Python パッケージ。

次の手順

Azure Stack HCI 23H2 上の Kubernetes クラスターの論理ネットワークをCreateする