Microsoft ソフトウェア定義ネットワーク (SDN) を展開する
適用対象: AKS on Azure Stack HCI 22H2、AKS on Windows Server
この記事では、すべての AKS Arc 負荷分散シナリオで SDN ソフトウェア Load Balancerを使用して、AKS インフラストラクチャとワークロード VM を SDN Virtual Networkにデプロイする方法について説明します。 Azure Arc で有効になっている AKS は、 Kubernetes コンテナー オーケストレーション プラットフォームでクラウドネイティブ アプリケーションを実行できる、完全にサポートされているコンテナー プラットフォームを提供します。 このアーキテクチャでは、仮想化された Windows および Linux ワークロードの実行がサポートされています。
制限事項
次の機能は範囲外であり、この GA リリースではサポートされていません。
- ポッドとコンテナーの SDN 仮想ネットワークへのアタッチ。
- ポッドでは、ネットワーク プロバイダーとして Flannel または Calico (既定値) が使用されます。
- SDN ネットワーク セキュリティ グループを使用したネットワーク ポリシーの適用。
- SDN ネットワーク セキュリティ グループは、SDN ツール (REST/PowerShell/Windows Admin Center/SCVMM) を使用して AKS Arc の外部で構成できますが、Kubernetes NetworkPolicy オブジェクトでは構成されません。
- AKS Arc VM NIC を SDN 論理ネットワークにアタッチする。
- Windows Admin Center を使用したインストール。
- AKS Arc VM への物理ホスト接続: VM NIC は SDN 仮想ネットワークに参加しているため、既定ではホストからアクセスできません。 現時点では、SDN ソフトウェア Load Balancerを使用してパブリック IP を VM に直接アタッチすることで、この接続を手動で有効にすることができます。
前提条件
SDN を使用して Arc によって有効になっている AKS をデプロイするには、環境が AKS Arc と SDN の両方のデプロイ条件を満たしていることを確認します。
- AKS Arc の要件
- SDN 要件: ソフトウェア定義ネットワーク インフラストラクチャを計画する
注意
SDN と AKS Arc の統合には、ネットワーク コントローラーとソフトウェアのLoad Balancerのみが必要です。 ゲートウェイ VM は省略可能です。
AKS Arc 用の SDN をインストールして準備する
SDN をインストールするための最初の手順。 SDN をインストールするには、SDN Express または Windows Admin Center を使用することをお勧めします。 必要なすべての SDN インフラストラクチャ コンポーネントをデプロイする参照構成ファイルは、ソフトウェア Load Balancer.psd1 にあります。
SDN Express のデプロイが完了すると、状態を正常として報告する画面が表示されます。
問題が発生した場合、または異常として報告されている場合は、「 SDN のトラブルシューティング」を参照してください。
続行する前に SDN が正常であることが重要です。 新しい環境に SDN をデプロイする場合は、テスト VM を作成し、ロード バランサー VIP への接続を確認することもお勧めします。 Windows Admin Center を使用して VM を作成し、SDN 仮想ネットワークにアタッチする方法に関する記事を参照してください。
AKS をインストールする手順
AKS Arc 用のすべての物理ホスト マシンを初期化して準備します。最新の手順については、「 AKS ホストをデプロイ する」を参照してください。
AKS-HCI PowerShell モジュールをインストールする
AKS-HCI PowerShell モジュールのインストールについては、AksHci PowerShell モジュールのインストールに関するページを参照してください。
注意
この手順を完了したら、開いている PowerShell セッションを更新または再読み込みして、モジュールを再読み込みします。
リソース プロバイダーをサブスクリプションに登録する
リソース プロバイダーをサブスクリプションに登録する方法については、「 AksHci PowerShell モジュールをインストールする」を参照してください。
デプロイ用にマシンを準備する
デプロイ用にマシンを準備する方法については、「展開 用にマシンを準備する」を参照してください。
インストール用に AKS を構成する
Azure Stack HCI サーバーのいずれかを選択して、AKS Arc の作成を推進します。インストールの前に、次の 3 つの手順を実行する必要があります。
SDN の AKS ネットワーク設定を構成する。たとえば、次を使用します。
- SDN 仮想ネットワーク "10.20.0.0/24" (10.20.0.0 – 10.20.0.255)。 仮想化されたネットワーク。任意の IP サブネットを使用できます。 このサブネットは、物理ネットワーク上に存在する必要はありません。
- vSwitch 名 "External"Azure Stack HCI サーバー上の外部 vSwitch。 SDN デプロイに使用されたものと同じ vSwitch を使用していることを確認します。
- ゲートウェイ "10.20.0.1"このアドレスは、仮想ネットワークのゲートウェイです。
- DNS サーバー "10.127.130.7"仮想ネットワークの DNS サーバー。
$vnet = New-AksHciNetworkSetting –name "myvnet" –vswitchName "External" -k8sNodeIpPoolStart "10.20.0.2" -k8sNodeIpPoolEnd "10.20.0.255" -ipAddressPrefix "10.20.0.0/24" -gateway "10.20.0.1" -dnsServers "10.127.130.7"
パラメーター 説明 -name
Arc で有効になっている AKS の仮想ネットワークの名前 (小文字にする必要があります)。 -vswitchName
Azure Stack HCI サーバー上の外部 vSwitch の名前。 SDN デプロイに使用されたものと同じ vSwitch を使用します。 -k8sNodeIpPoolStart
-k8sNodeIpPoolEnd
SDN 仮想ネットワークの IP 開始/終了範囲。 -ipAddressPrefix
CIDR 表記の仮想ネットワーク サブネット。 -gateway
-dnsServers
SDN 仮想ネットワークのゲートウェイと DNS サーバー。 これらのパラメーターの詳細については、「 New-AksHciNetworkSetting」を参照してください。
手順 1 で使用したのと同じ PowerShell ウィンドウで、SDN 負荷分散論理ネットワークから使用できる IP を AKS に通知する VIP プールを作成します。
$VipPool = New-AksHciVipPoolSetting -name "publicvip" -vipPoolStart "10.127.132.16" -vipPoolEnd "10.127.132.23
パラメーター 説明 -name
SDN ロード バランサーの構成時に指定した "PublicVIP" 論理ネットワーク。 コマンドレット内では、この名前は小文字にする必要があります。 -vipPoolStart
パブリック ロード バランサー VIP プールに使用される論理ネットワークの IP 開始範囲。 "PublicVIP" SDN 論理ネットワークのアドレス範囲を使用する必要があります。 -vipPoolEnd
パブリック ロード バランサー VIP プールに使用される論理ネットワークの IP 終了範囲。 "PublicVIP" SDN 論理ネットワークのアドレス範囲を使用する必要があります。 手順 2 で使用したのと同じ PowerShell ウィンドウで、対象の SDN ネットワークへの参照を指定して SDN の AKS 構成を作成し、前に定義したネットワーク設定 ($vnet、$vipPool) を指定します。
Set-AksHciConfig –imageDir "C:\ClusterStorage\Volume1\ImageStore" –workingDir "C:\ClusterStorage\Volume1\WorkDir" –cloudConfigLocation "C:\ClusterStorage\Volume1\Config" –vnet $vnet –useNetworkController –NetworkControllerFqdnOrIpAddress "nc.contoso.com" –networkControllerLbSubnetRef "/logicalnetworks/PublicVIP/subnets/my_vip_subnet" –networkControllerLnetRef "/logicalnetworks/HNVPA" -vipPool $vipPool
HNVPA 論理ネットワークは、AKS Arc 仮想ネットワークの基になるプロバイダーとして使用されます。
Azure Stack HCI クラスター ノードに静的 IP アドレスの割り当てを使用する場合は、 パラメーターも指定する
CloudServiceCidr
必要があります。 このパラメーターは MOC クラウド サービスの IP アドレスであり、Azure Stack HCI クラスター ノードと同じサブネット内に存在する必要があります。 詳細については、「 Microsoft オンプレミス クラウド サービス」を参照してください。パラメーター 説明 –imageDir
AKS Arc が VHD イメージを格納する場所へのパス。 このパスは、共有ストレージ パスまたは SMB 共有である必要があります。 –workingDir
モジュールの小さなファイルが格納される場所へのパス。 このパスは、共有ストレージ パスまたは SMB 共有である必要があります。 -cloudConfigLocation
クラウド エージェント構成が格納されているディレクトリへのパス。 このパスは、共有ストレージ パスまたは SMB 共有である必要があります。 -vnet
前の AksHciNetworkSetting
手順で作成した変数の名前-useNetworkController
SDN との統合を有効にします。 -networkControllerFqdnOrIpAddress
ネットワーク コントローラーの完全修飾ドメイン名 FQDN を取得するには、ネットワーク コントローラー VM で を Get-NetworkController
実行し、 パラメーターをRestName
使用します。-networkControllerLbSubnetRef
ネットワーク コントローラーで構成されたパブリック VIP 論理ネットワーク サブネットへの参照。 このサブネットを取得するには、 コマンドレットを Get-NetworkControllerLogicalSubnet
実行します。 このコマンドレットを使用する場合は、 として を使用PublicVIP
しますLogicalNetworkId
。 コマンドレットのNew-AksHciVipPoolSetting
パラメーターとvipPoolEnd
パラメーターはVipPoolStart
、ここで参照されているサブネットの一部である必要があります。-networkControllerLnetRef
通常、この値は "/logicalnetworks/HNVPA" です。 -vipPool
負荷分散のフロントエンド IP として使用される VIP プール。 これらのパラメーターの詳細については、「 Set-AksHciConfig」を参照してください。
Azure にサインインし、登録設定を構成する
登録設定を構成するには 、こちらの手順 に従います。
注意
所有者のアクセス許可がない場合は、 Azure サービス プリンシパルを使用することをお勧めします。
AKS のインストール
AKS 構成が完了したら、AKS on Azure Stack HCI をインストールする準備が整います。
Install-AksHci
インストールが成功すると、コントロール プレーン VM (管理クラスター) が作成され、その VmNIC が SDN ネットワークに接続されます。
HCI 環境で SDN と AKS からログを収集する
HCI 上の SDN と AKS を使用すると、仮想ネットワーク上の AKS ノードを分離できます。 これらは分離されているため、新しい SDN AKS-HCI ログ収集スクリプトをインポートし、ロード バランサーを使用してノードからログを取得する変更されたコマンドを実行する必要があります。
Install-Module -Name AksHciSdnLogCollector -Repository PSGallery
Get-AksHciLogsSdn
フィードバック/問題
SDN についてはセルフヘルプ リソース、AKS-HCI についてはこちらを参照してください。
次の手順
次に、 ワークロード クラスターを作成 し、 アプリケーションをデプロイできます。 Arc で有効になっている AKS 内のすべての AKS VM NIC は、インストール時に提供された SDN 仮想ネットワークにシームレスに接続されます。 SDN ソフトウェア ロード バランサーは、すべての Kubernetes サービスの外部ロード バランサーとしても使用され、Kubernetes コントロール プレーン上の API サーバーのロード バランサーとして機能します。