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 アドレスを予約する必要があります。
Note
静的 IP は、AKS Arc VM に IP アドレスを割り当てるためにサポートされている唯一のモードです。 これは、Kubernetes クラスターのライフサイクル全体を通して Kubernetes ノードに割り当てられた IP アドレスが一定である必要があるためです。 ソフトウェア定義の仮想ネットワークと SDN 関連の機能は、現在、AKS on Azure Stack HCI 23H2 ではサポートされていません。
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 インスタンスが正しく機能するには、変更できない "コントロール プレーン IP アドレス" が 1 つ必要です。
Note
コントロール プレーン IP は、Kubernetes クラスターを作成するために必要なパラメーターです。 Kubernetes クラスターのコントロール プレーン IP アドレスが、Arc VM 論理ネットワーク、インフラストラクチャ ネットワーク IP、ロード バランサーなど、他の何とも重複しないようにする必要があります。また、コントロール プレーン IP は、論理ネットワークのアドレス プレフィックスのスコープ内にあり、IP プールの外部にある必要があります。 これは、IP プールが VM にのみ使用され、コントロール プレーンの IP プールから IP アドレスを選択すると、IP アドレスの競合が発生する可能性があるためです。 IP アドレスが重複すると、AKS クラスターと、IP アドレスが使用されているその他の場所の両方で予期しないエラーが発生する可能性があります。 環境内の Kubernetes クラスターごとに 1 つの IP アドレスを予約する必要があります。
コンテナー化されたアプリケーションのロード バランサー IP
ロード バランサーの主な目的は、Kubernetes クラスター内の複数のノードにトラフィックを分散することです。 この負荷分散は、ダウンタイムを防ぎ、アプリケーションの全体的なパフォーマンスを向上させるのに役立ちます。 AKS では、Kubernetes クラスターのロード バランサーをデプロイするための次のオプションがサポートされています。
- Azure Arc 拡張機能を使用して MetalLB ロード バランサーをデプロイ。
- 独自のサード パーティ製ロード バランサーを持ち込みます。
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 アドレス (AKS Arc クラスター用に 1 つ) を予約する | コントロール プレーン IP の IP アドレスを渡すには、 controlPlaneIP パラメーターを使用します。 この IP が Arc 論理ネットワークと同じサブネット内にあり、Arc 論理ネットワークで定義されている IP プールの外部にあることを確認します。 |
ロード バランサー IP | Jane の投票アプリケーション用の Kubernetes サービスの 3 つの IP アドレス。 | これらの IP アドレスは、クラスター A にロード バランサーをインストールするときに使用されます。MetalLB Arc 拡張機能を使用することも、独自のサード パーティのロード バランサーを使用することもできます。 この IP が Arc 論理ネットワークと同じサブネット内にあり、Arc VM 論理ネットワークで定義されている IP プールの外部にあることを確認します。 |
プロキシの設定
AKS のプロキシ設定は、基になるインフラストラクチャ システムから継承されます。 Kubernetes クラスターの個々のプロキシ設定を設定し、プロキシ設定を変更する機能はまだサポートされていません。
ネットワーク ポートとクロス VLAN の要件
Azure Stack HCI をデプロイするときは、管理ネットワークのサブネットに少なくとも ix 静的 IP アドレスの連続したブロックを割り当てます物理サーバーで既に使用されているアドレスを省略します。 これらの IP は、Azure Stack HCI と、Arc VM 管理と AKS Arc 用の内部インフラストラクチャ (Arc リソース ブリッジ) によって使用されます。Arc Resource Bridge 関連の Azure Stack HCI サービスに IP アドレスを提供する管理ネットワークが、AKS クラスターの作成に使用した論理ネットワークとは異なる VLAN 上にある場合は、AKS クラスターを正常に作成して運用するために、次のポートが開かれていることを確認する必要があります。
宛先ポート | 宛先 | ソース | 説明 | クロス VLAN ネットワークに関する注意事項 |
---|---|---|---|---|
22 | AKS Arc VM に使用される論理ネットワーク | 管理ネットワーク内の IP アドレス | トラブルシューティングのためにログを収集するために必要です。 | 個別の VLAN を使用する場合、Azure Stack HCI と Arc Resource Bridge に使用される管理ネットワーク内の IP アドレスは、このポート上の AKS Arc クラスター VM にアクセスする必要があります。 |
6443 | AKS Arc VM に使用される論理ネットワーク | 管理ネットワーク内の IP アドレス | Kubernetes API と通信するために必要です。 | 個別の VLAN を使用する場合、Azure Stack HCI と Arc Resource Bridge に使用される管理ネットワーク内の IP アドレスは、このポート上の AKS Arc クラスター VM にアクセスする必要があります。 |
55000 | 管理ネットワーク内の IP アドレス | AKS Arc VM に使用される論理ネットワーク | Cloud Agent gRPC サーバー | 個別の VLAN を使用する場合、AKS Arc VM は、このポートのクラウド エージェント IP とクラスター IP に使用される管理ネットワーク内の IP アドレスにアクセスする必要があります。 |
65000 | 管理ネットワーク内の IP アドレス | AKS Arc VM に使用される論理ネットワーク | Cloud Agent gRPC 認証 | 個別の VLAN を使用する場合、AKS Arc VM は、このポートのクラウド エージェント IP とクラスター IP に使用される管理ネットワーク内の IP アドレスにアクセスする必要があります。 |
ファイアウォール URL の例外
Azure Arc ファイアウォール/プロキシ URL 許可リストの詳細については、Azure Arc リソース ブリッジのネットワーク要件Azure Stack HCI 23H2 ネットワーク要件を参照してください。
Note
以前の Azure Stack HCI リリース (2402 以前など) をデプロイする場合は、 gcr.io と storage.googleapis.com URL も許可する必要があります。 これらの URL は、最新の AKS Arc リリースから削除されました。
URL | Port | サービス | メモ |
---|---|---|---|
https://mcr.microsoft.com *.data.mcr.microsoft.com azurearcfork8s.azurecr.io linuxgeneva-microsoft.azurecr.io pipelineagent.azurecr.io ecpacr.azurecr.io https://azurearcfork8sdev.azurecr.io https://hybridaks.azurecr.io aszk8snetworking.azurecr.io |
443 | AKS Arc | コンテナー イメージなどの公式の Microsoft アーティファクトに使用されます。 |
docker.io |
443 | AKS Arc | コンテナーの基本イメージなどの Kubernetes 公式成果物に使用されます。 |
hybridaksstorage.z13.web.core.windows.net |
443 | AKS Arc | Azure Storage でホストされている AKSHCI 静的 Web サイト。 |
*.blob.core.windows.net *.dl.delivery.mp.microsoft.com *.do.dsp.mp.microsoft.com |
443 | AKS Arc | AKS Arc VHD イメージのダウンロードと更新に使用されます。 |
*.prod.do.dsp.mp.microsoft.com |
443 | AKS Arc | AKS Arc VHD イメージのダウンロードと更新に使用されます。 |
*.login.microsoft.com |
443 | Azure | Azure にログインするために Azure Resource Manager トークンをフェッチおよび更新するために必要です。 |
https://*.his.arc.azure.com |
443 | Azure Arc 対応 K8s | Arc エージェントの ID とアクセス制御に使用されます。 |
https://*.dp.kubernetesconfiguration.azure.com |
443 | Azure Arc 対応 K8s | Azure Arc 構成に使用されます。 |
https://*.servicebus.windows.net |
443 | Azure Arc 対応 K8s | ファイアウォールで受信ポートを有効にする必要なく、Azure Arc 対応 Kubernetes クラスターに安全に接続するために使用されます。 |
https://guestnotificationservice.azure.com |
443 | Azure Arc 対応 K8s | ゲスト通知操作に使用されます。 |
sts.windows.net |
443 | Azure Arc 対応 K8s | クラスター接続とカスタムの場所ベースのシナリオの場合。 |
https://*.dp.prod.appliances.azure.com |
443 | Arc リソース ブリッジ | リソース ブリッジ (アプライアンス) のデータ プレーン操作に使用されます。 |
*.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 https://adhs.events.data.microsoft.com https://v20.events.data.microsoft.com |
443 | メトリックと正常性の監視 | メトリックとテレメトリ トラフィックの監視に使用されます。 |
pypi.org *.pypi.org files.pythonhosted.org |
443 | AZ CLI | Az CLI および Az CLI 拡張機能をダウンロードするために使用されます。 |
aka.ms |
443 | Azure Stack HCI | Azure Stack HCI 関連のダウンロードに必要です。 |
raw.githubusercontent.com |
443 | GitHub | GitHub に使用されます。 |
www.microsoft.com |
80 | Microsoft 公式 Web サイト。 | Microsoft 公式 Web サイト。 |