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:
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
- 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-system
tü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 , BGP veya Both 'dırARP . |
$ipRange |
Veya Both modunda MetalLB yük dengeleyici ARP için IP aralığı. |
Tanıtma modu veya Both
iseBGP
, türünde BGPAdvertisement
bir özel kaynak da oluşturur. Tanıtma modu veya Both
iseARP
, türünde L2Advertisement
bir ö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