使用 Azure Arc 和 Azure CLI 建立 MetalLB 負載平衡器
適用於:Azure Stack HCI 版本 23H2
負載平衡器的主要用途是將流量分散到 Kubernetes 叢集中的多個節點。 這有助於防止停機並改善應用程式的整體效能。 Azure Arc 所啟用的 AKS 支援使用 Arc Networking
k8s 擴充功能在 Kubernetes 叢集上建立 MetalLB 負載平衡器實例。
必要條件
- 至少有一個Linux節點的 Kubernetes 叢集。 您可以使用 Azure CLI 或 Azure 入口網站,在 Azure Stack HCI 23H2 上建立 Kubernetes 叢集。
- 請確定您有足夠的IP位址可供負載平衡器使用。 確定保留給負載平衡器的IP位址不會與Arc VM邏輯網路中的IP位址衝突,以及控制平面IP。 如需 Kubernetes 中 IP 位址規劃和網路的詳細資訊,請參閱 Azure Stack HCI 23H2 上的 AKS 網路需求。
- 本操作指南假設您瞭解 Metal LB 的運作方式。 如需詳細資訊,請參閱 Arc Kubernetes叢集中的 MetalLB 概觀。
安裝 Azure CLI 擴充功能
執行下列命令以安裝必要的 Azure CLI 擴充功能:
az extension add -n k8s-runtime --upgrade
啟用負載平衡器 Arc 延伸模組
繼續之前,請先設定下列變數:
參數 | Description |
---|---|
$subId |
Kubernetes 叢集的 Azure 訂用帳戶標識碼。 |
$rgName |
Kubernetes 叢集的 Azure 資源群組。 |
$clusterName |
AKS Arc 叢集的名稱。 |
az k8s-runtime load-balancer enable
使用 命令來安裝 Arc 延伸模組,並註冊 Kubernetes 叢集的資源提供者。 參數 --resource-uri
是指 AKS Arc 叢集的資源管理員標識碼。
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
負載平衡器。 此命令會在命名空間 kube-system
中建立類型IPAddressPool
自定義資源。
繼續之前,請先設定下列變數:
參數 | Description |
---|---|
$lbName |
您的 MetalLB 負載平衡器實例名稱。 |
$advertiseMode |
您的 MetalLB 負載平衡器的模式。 支援的值為 ARP 、 BGP 或 Both 。 |
$ipRange |
或模式中 MetalLB 負載平衡器的 ARP Both IP 範圍。 |
如果公告模式為 BGP
或 Both
,它也會建立類型的 BGPAdvertisement
自定義資源。 如果公告模式為 ARP
或 Both
,它也會建立 類型的 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 叢集的 az k8s-runtime bgp-peer create
BGP 對等互連。 請注意,BGP 對等互連對於具有 BGP
或 Both
公告模式的所有負載平衡器都有效。 如果您在 或 Both
模式中使用 MetalLB 負載平衡器BGP
,則必須建立 BGP 對等互連。
繼續之前,請先設定下列變數:
參數 | Description |
---|---|
$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
下一步
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應