Azure Arc と Azure CLI を使用して MetalLB ロード バランサーを作成する

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

ロード バランサーのメイン目的は、Kubernetes クラスター内の複数のノードにトラフィックを分散することです。 これにより、ダウンタイムを回避し、アプリケーションの全体的なパフォーマンスを向上させることができます。 Azure Arc で有効になっている AKS では、k8s 拡張機能を使用して Kubernetes クラスターに MetalLB ロード バランサー インスタンスを Arc Networking 作成できます。

前提条件

  • 少なくとも 1 つの Linux ノードを持つ Kubernetes クラスター。 Azure CLI または Azure portalを使用して、Azure Stack HCI 23H2 で Kubernetes クラスターを作成できます。
  • ロード バランサーに十分な IP アドレスがあることを確認します。 ロード バランサー用に予約されている IP アドレスが、Arc VM 論理ネットワークとコントロール プレーン IP の IP アドレスと競合しないようにします。 Kubernetes での IP アドレスの計画とネットワークの詳細については、「 AKS on Azure Stack HCI 23H2 のネットワーク要件」を参照してください。
  • この攻略ガイドでは、Metal LB のしくみを理解していることを前提としています。 詳細については、 Arc Kubernetes クラスターの MetalLB の概要に関するページを参照してください。

Azure CLI 拡張機能をインストールする

次のコマンドを実行して、必要な Azure CLI 拡張機能をインストールします。

az extension add -n k8s-runtime --upgrade

ロード バランサーの Arc 拡張機能を有効にする

続行する前に、次の変数を構成します。

パラメーター 説明
$subId Kubernetes クラスターの Azure サブスクリプション ID。
$rgName Kubernetes クラスターの Azure リソース グループ。
$clusterName AKS Arc クラスターの名前。

コマンドを az k8s-runtime load-balancer enable 使用して Arc 拡張機能をインストールし、Kubernetes クラスターのリソース プロバイダーを登録します。 パラメーターは --resource-uri 、AKS Arc クラスターのリソース マネージャー ID を参照します。

az k8s-runtime load-balancer enable --resource-uri subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Kubernetes/connectedClusters/$clusterName

Kubernetes クラスターに MetalLB ロード バランサーをデプロイする

コマンドを実行して、Kubernetes クラスターのロード バランサーを az k8s-runtime load-balancer create リモートで作成できるようになりました。 このコマンドは、 名前空間 に種類 IPAddressPool のカスタム リソースを作成します kube-system

続行する前に、次の変数を構成します。

パラメーター 説明
$lbName MetalLB ロード バランサー インスタンスの名前。
$advertiseMode MetalLB ロード バランサーのモード。 サポートされている値は、 ARPBGP、または Bothです。
$ipRange または Both モードの MetalLB ロード バランサーの ARP IP 範囲。

アドバタイズ モードが または Bothの場合、BGP種類のカスタム リソースも作成されますBGPAdvertisement。 アドバタイズ モードが または Bothの場合はARP、 型のカスタム リソースも作成されますL2Advertisement

az k8s-runtime load-balancer create --load-balancer-name $lbName --resource-uri subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Kubernetes/connectedClusters/$clusterName --addresses $ipRange --advertise-mode $advertiseMode

Kubernetes クラスターの BGP ピアを作成する

コマンドを実行して、Kubernetes クラスターの BGP ピアを az k8s-runtime bgp-peer create リモートで作成します。 BGP ピアは、モードまたはBothアドバタイズ モードを持つBGPすべてのロード バランサーに対して有効であることに注意してください。 または Both モードで MetalLB ロード バランサーを使用している場合は、BGP ピアのBGP作成が必須です。

続行する前に、次の変数を構成します。

パラメーター 説明
$peerName BGP ピアの名前。
$myASN セッションのローカル終了に使用する AS 番号。
$peerASN セッションのリモート終了から想定される AS 番号。
$peerIP セッションの確立時にダイヤルするアドレス。
az k8s-runtime bgp-peer create --bgp-peer-name $peerName --resource-uri subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Kubernetes/connectedClusters/$clusterName --my-asn $myASN --peer-asn $peerASN --peer-address $peerIP

次の手順

-GitOps Flux v2 Arc 拡張機能を使用して Kubernetes クラスターにアプリケーションをデプロイする