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

Azure Yerel üzerinde AKS için geçerlidir

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. AKS Hibrit ve Edge, 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'yi veya Azure portalını kullanarak Azure Yerel'de bir Kubernetes kümesi oluşturabilirsiniz. Azure Yerel kümelerindeki AKS varsayılan olarak Arc etkindir.
  • Yük dengeleyici için yeterli IP adresine sahip olduğunuzdan emin olun. Azure Yerel'de 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 MetalLB'nin nasıl çalıştığını anladığınız varsayılır. Daha fazla bilgi için bkz: MetalLB için Kubernetes 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: MetalLB için Arc uzantısını az k8s-runtime load-balancer enable kullanarak etkinleştirin

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, Application.Read.All rolünü almak için Azure kiracı yöneticinizle iletişime geçin.

İ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. parametresi Kubernetes --resource-uri 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: MetalLB için Arc uzantısını kullanarak etkinleştir az k8s-extension add

Graph izinlerine sahip değilseniz Application.Read.All, şu adımları takip edebilirsiniz:

  1. Henüz kaydetmediyseniz, Microsoft.KubernetesRuntime RP 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ı kaydetme ve gerekli izinler hakkında daha fazla bilgi için bkz kaynak sağlayıcısını nasıl kaydedeceğiniz.

    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
    
  2. 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, MetalLB Arc uzantısını Kubernetes kümenize 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 IPAddressPooltüründe kube-system 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 , ARPveya BGP'dırBoth.
$ipRange MetalLB yük dengeleyici için ARP veya Both modunda IP aralığı.

Eğer tanıtım modu BGP veya Both ise, ayrıca BGPAdvertisement türünde bir özel kaynak da oluşturur. Tanıtma modu ARP veya Both ise, L2Advertisement türünde 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

az k8s-runtime bgp-peer create komutunu çalıştırarak Kubernetes kümeniz için uzaktan bir BGP eşliği oluşturun. BGP eşlerinin, BGP veya Both tanıtma moduna sahip olan 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

Kubernetes kümenize uygulama dağıtmak için GitOps Flux v2 Arc uzantısını kullanma