Microsoft ソフトウェア定義ネットワーク (SDN) を展開する
適用対象: AKS on Azure Stack HCI 22H2、Windows Server 上の AKS
この記事では、すべての AKS Arc 負荷分散シナリオで SDN Software Load Balancer を使用して、AKS インフラストラクチャとワークロード VM を SDN 仮想ネットワークにデプロイする方法について説明します。 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 ソフトウェア ロード バランサーを使用してパブリック IP を VM に直接接続することで、この接続を手動で有効にすることができます。
前提条件
SDN を使用して Arc によって有効になっている AKS をデプロイするには、環境が AKS Arc と SDN の両方のデプロイ条件を満たしていることを確認します。
Note
AKS Arc との SDN 統合には、ネットワーク コントローラーとソフトウェア ロード バランサーのみが必要です。 ゲートウェイ VM は省略可能です。
AKS Arc の SDN をインストールして準備する
SDN をインストールするための最初の手順。 SDN をインストールするには、SDN Express または Windows Admin Center を使用することをお勧めします。 必要なすべての SDN インフラストラクチャ コンポーネントをデプロイする参照構成ファイルは、[Software 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 モジュールのインストール を参照してください。
Note
この手順を完了したら、開いている PowerShell セッションを更新または再読み込みしてモジュールを再読み込みします。
リソース プロバイダーをサブスクリプションに登録する
リソース プロバイダーをサブスクリプションに登録する方法については、「 AksHci PowerShell モジュールのインストールを参照してください。
デプロイ用にマシンを準備する
マシンをデプロイ用に準備する方法については、「 展開用にマシンを準備するを参照してください。
インストール用に AKS を構成する
AKS Arc の作成を推進する Azure ローカル マシンのいずれかを選択します。インストールする前に、次の 3 つの手順を実行する必要があります。
SDN の AKS ネットワーク設定を構成する。たとえば、次を使用します。
- SDN 仮想ネットワーク "10.20.0.0/24" (10.20.0.0 – 10.20.0.255)。 仮想化されたネットワーク。任意の IP サブネットを使用できます。 このサブネットは、物理ネットワーク上に存在する必要はありません。
- vSwitch 名 "External"Azure ローカル マシン上の外部 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 ローカル マシン上の外部 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 ローカル クラスター ノードに静的 IP アドレスの割り当てを使用する場合は、
CloudServiceCidr
パラメーターも指定する必要があります。 このパラメーターは MOC クラウド サービスの IP アドレスであり、Azure ローカル クラスター ノードと同じサブネット内にある必要があります。 詳細については、「 Microsoft オンプレミス クラウド サービス」を参照してください。パラメーター 説明 –imageDir
AKS Arc が VHD イメージを格納する場所へのパス。 このパスは、共有ストレージ パスまたは SMB 共有である必要があります。 –workingDir
モジュールの小さなファイルが格納される場所へのパス。 このパスは、共有ストレージ パスまたは SMB 共有である必要があります。 -cloudConfigLocation
クラウド エージェント構成が格納されているディレクトリへのパス。 このパスは、共有ストレージ パスまたは SMB 共有である必要があります。 -vnet
前の手順で作成 AksHciNetworkSetting
変数の名前-useNetworkController
SDN との統合を有効にします。 -networkControllerFqdnOrIpAddress
ネットワーク コントローラーの完全修飾ドメイン名 FQDN を取得するには、ネットワーク コントローラー VM で Get-NetworkController
を実行し、RestName
パラメーターを使用します。-networkControllerLbSubnetRef
ネットワーク コントローラーで構成されたパブリック VIP 論理ネットワーク サブネットへの参照。 このサブネットは、 Get-NetworkControllerLogicalSubnet
コマンドレットを実行して取得できます。 このコマンドレットを使用する場合は、LogicalNetworkId
としてPublicVIP
を使用します。New-AksHciVipPoolSetting
コマンドレットのVipPoolStart
パラメーターとvipPoolEnd
パラメーターは、ここで参照するサブネットの一部である必要があります。-networkControllerLnetRef
通常、この値は "/logicalnetworks/HNVPA" です。 -vipPool
負荷分散のフロントエンド IP として使用される VIP プール。 これらのパラメーターの詳細については、「 Set-AksHciConfigを参照してください。
Azure にサインインし、登録設定を構成する
こちらの手順に従って登録設定を構成します。
Note
所有者アクセス許可がない場合は、 Azure サービス プリンシパルを使用することをお勧めします。
AKS のインストール
AKS 構成が完了したら、Azure Local に AKS をインストールする準備が整います。
Install-AksHci
インストールが成功すると、コントロール プレーン VM (管理クラスター) が作成され、その VmNIC が SDN ネットワークに接続されます。
Azure ローカル環境で SDN と AKS からログを収集する
Azure Local 上の 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 サーバーのロード バランサーとして機能します。