Aracılığıyla paylaş


Azure CLI kullanarak Azure Arc özellikli Kubernetes kümeleri için MetalLB uzantısı dağıtma

Şunlar için geçerlidir: Azure Yerel, sürüm 23H2

Yük dengeleyicinin temel amacı, trafiği bir Kubernetes kümesindeki birden çok düğüme dağıtmaktır. Bu, kapalı kalma süresini önlemeye ve uygulamaların genel performansını iyileştirmeye yardımcı olabilir. Azure Arc tarafından etkinleştirilen AKS, Arc uzantısı kullanarak Kubernetes kümenizde MetalLB yük dengeleyici örneği oluşturmayı destekler.

Önkoşullar

  • En az bir Linux düğümüne sahip Azure Arc özellikli kubernetes kümesi. Azure CLI veya Azure portalını kullanarak Azure Yerel sürüm 23H2'de bir Kubernetes kümesi oluşturabilirsiniz. Azure Yerel'de AKS, sürüm 23H2 kümeleri varsayılan olarak Arc etkindir.
  • Yük dengeleyici için yeterli IP adresine sahip olduğunuzdan emin olun. Azure Yerel sürüm 23H2'deki AKS için yük dengeleyici için ayrılmış IP adreslerinin Arc VM mantıksal ağlarındaki VE denetim düzlemi IP'lerindeki IP adresleriyle çakışmadığından emin olun. Kubernetes'te IP adresi planlaması ve ağ hakkında daha fazla bilgi için bkz. Kubernetes için ağ gereksinimleri ve Kubernetes için IP adresi planlaması.
  • Bu nasıl yapılır kılavuzunda Metal LB'nin nasıl çalıştığını anladığınız varsayılır. Daha fazla bilgi için bkz . Kubernetes için MetalLB'ye genel bakış.

Azure CLI uzantısını yükleme

Gerekli Azure CLI uzantısını yüklemek için aşağıdaki komutu çalıştırın:

az extension add -n k8s-runtime --upgrade

MetalLB için Arc uzantısını etkinleştirme

Devam etmeden önce aşağıdaki değişkenleri yapılandırın:

Parametre Açıklama
$subId Kubernetes kümenizin Azure abonelik kimliği.
$rgName Kubernetes kümenizin Azure kaynak grubu.
$clusterName Kubernetes kümenizin adı.

Seçenek 1: Komutu kullanarak az k8s-runtime load-balancer enable MetalLB için Arc uzantısını etkinleştirme

Aşağıdaki komutu kullanarak MetalLB için Arc uzantısını etkinleştirmek için Application.Read.All Graf iznine sahip olmanız gerekir. Azure aboneliğinizde oturum açıp aşağıdaki komutu çalıştırarak bu izne sahip olup olmadığınızı de kontrol edebilirsiniz:

`az ad sp list --filter "appId eq '087fca6e-4606-4d41-b3f6-5ebdf75b8b4c'" --output json`

Komut başarısız olursa rol almak Application.Read.All için Azure kiracı yöneticinize başvurun.

İzniniz varsa Komutunu kullanarak Arc uzantısını az k8s-runtime load-balancer enable yükleyebilir ve Kubernetes kümeniz için kaynak sağlayıcısını kaydedebilirsiniz. --resource-uri parametresi Kubernetes kümenizin kaynak yöneticisi kimliğine başvurur.

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

Seçenek 2: Komutu kullanarak az k8s-extension add MetalLB için Arc uzantısını etkinleştirme

Application.Read.All Graph izniniz yoksa şu adımları izleyebilirsiniz:

  1. Microsoft.KubernetesRuntime RP Henüz yapmadıysanız kaydedin. Azure aboneliği başına yalnızca bir kez kaydolmanız gerektiğini unutmayın. Azure portalını kullanarak kaynak sağlayıcılarını da kaydedebilirsiniz. Kaynak sağlayıcılarını ve gerekli izinleri kaydetme hakkında daha fazla bilgi için bkz . Kaynak sağlayıcısını kaydetme.
az provider register -n Microsoft.KubernetesRuntime

Aşağıdaki komutu çalıştırarak kaynak sağlayıcısının başarıyla kaydedilip kaydedilmediğini de kontrol edebilirsiniz.

az provider show -n Microsoft.KubernetesRuntime -o table

Beklenen çıktı:

Namespace                    RegistrationPolicy    RegistrationState
---------------------------  --------------------  -------------------
Microsoft.KubernetesRuntime  RegistrationRequired  Registered
  1. MetalLB için Arc uzantısını yüklemek için MetalLB uzantısı kaynak sağlayıcısının AppID'sini alın ve uzantı oluşturma komutunu çalıştırın. Arc Kubernetes kümesi başına aşağıdaki komutları bir kez çalıştırmanız gerekir.

az ad sp list komutunu çalıştırarak Arc uzantısının Uygulama Kimliğini alın. Aşağıdaki komutu çalıştırmak için Azure kiracınızın bir user üyesi olmanız gerekir. Kullanıcı ve konuk üyeliği hakkında daha fazla bilgi için bkz . Microsoft Entra Id'de varsayılan kullanıcı izinleri.

$objID = az ad sp list --filter "appId eq '00001111-aaaa-2222-bbbb-3333cccc4444'" --query "[].id" --output tsv

$objID aldıktan sonra Kubernetes kümenize MetalLB Arc uzantısını yükleyebilirsiniz. Aşağıdaki komutu çalıştırmak için Kubernetes uzantısı katkıda bulunan rolüne sahip olmanız gerekir.

az k8s-extension create --cluster-name $clusterName -g $rgName --cluster-type connectedClusters --extension-type microsoft.arcnetworking --config k8sRuntimeFpaObjectId=$objID -n arcnetworking

Kubernetes kümenizde MetalLB yük dengeleyici dağıtma

Artık komutunu çalıştırarak az k8s-runtime load-balancer create Kubernetes kümeniz için uzaktan bir yük dengeleyici oluşturabilirsiniz. Bu komut, ad alanında kube-systemtüründe IPAddressPool bir özel kaynak oluşturur.

Devam etmeden önce aşağıdaki değişkenleri yapılandırın:

Parametre Açıklama
$lbName MetalLB yük dengeleyici örneğinizin adı.
$advertiseMode MetalLB yük dengeleyicinizin modu. Desteklenen değerler , BGPveya Both'dırARP.
$ipRange Veya Both modunda MetalLB yük dengeleyici ARP için IP aralığı.

Tanıtma modu veya BothiseBGP, türünde BGPAdvertisementbir özel kaynak da oluşturur. Tanıtma modu veya BothiseARP, türünde L2Advertisementbir özel kaynak da oluşturur:

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 kümeniz için BGP eş oluşturma

komutunu çalıştırarak Kubernetes kümeniz için uzaktan bir BGP eşliği az k8s-runtime bgp-peer create oluşturun. BGP eşdüzeyinin, veya tanıtma moduna sahip BGP Both tüm yük dengeleyiciler için etkili olduğunu unutmayın. MetalLB yük dengeleyiciyi BGP veya Both modunda kullanıyorsanız BGP eşleri oluşturmak zorunludur.

Devam etmeden önce aşağıdaki değişkenleri yapılandırın:

Parametre Açıklama
$peerName BGP eşinizin adı.
$myASN Oturumun yerel sonu için kullanılacak AS numarası.
$peerASN Oturumun uzak ucundan bekleyebileceğiniz AS numarası.
$peerIP Oturum oluşturulurken aranacak adres.
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

Sonraki adımlar