Bagikan melalui


Menyebarkan ekstensi untuk MetalLB untuk kluster Kubernetes dengan dukungan Azure Arc menggunakan Azure CLI

Berlaku untuk: Azure Local, versi 23H2

Tujuan utama load balancer adalah untuk mendistribusikan lalu lintas di beberapa node dalam kluster Kubernetes. Ini dapat membantu mencegah waktu henti dan meningkatkan performa aplikasi secara keseluruhan. AKS yang diaktifkan oleh Azure Arc mendukung pembuatan instans load balancer MetalLB pada kluster Kubernetes Anda menggunakan ekstensi Arc.

Prasyarat

  • Kluster Kubernetes dengan dukungan Azure Arc dengan setidaknya satu node Linux. Anda dapat membuat kluster Kubernetes di Azure Local, versi 23H2 menggunakan Azure CLI atau portal Azure. AKS di Azure Local, kluster versi 23H2 diaktifkan Arc secara default.
  • Pastikan Anda memiliki cukup alamat IP untuk load balancer. Untuk AKS di Azure Local, versi 23H2, pastikan bahwa alamat IP yang dicadangkan untuk load balancer tidak bertentangan dengan alamat IP di jaringan logis komputer virtual Arc dan IP sarana kontrol. Untuk informasi selengkapnya tentang perencanaan alamat IP dan jaringan di Kubernetes, lihat Persyaratan jaringan untuk Kubernetes dan perencanaan alamat IP untuk Kubernetes.
  • Panduan cara kerja ini mengasumsikan Anda memahami cara kerja Metal LB. Untuk informasi selengkapnya, lihat ringkasan untuk MetalLB untuk Kubernetes.

Memasang ekstensi Azure CLI

Jalankan perintah berikut untuk menginstal ekstensi Azure CLI yang diperlukan:

az extension add -n k8s-runtime --upgrade

Mengaktifkan ekstensi Arc untuk MetalLB

Konfigurasikan variabel berikut sebelum melanjutkan:

Parameter Deskripsi
$subId ID langganan Azure dari kluster Kubernetes Anda.
$rgName Grup sumber daya Azure dari kluster Kubernetes Anda.
$clusterName Nama kluster Kubernetes Anda.

Opsi 1: Aktifkan ekstensi Arc untuk MetalLB menggunakan az k8s-runtime load-balancer enable perintah

Untuk mengaktifkan ekstensi Arc untuk MetalLB menggunakan perintah berikut, Anda harus memiliki izin Grafik Application.Read.All. Anda dapat memeriksa apakah Anda memiliki izin ini dengan masuk ke langganan Azure Anda, dan menjalankan perintah berikut:

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

Jika perintah gagal, hubungi administrator penyewa Azure Anda untuk mendapatkan Application.Read.All peran.

Jika memiliki izin, Anda dapat menggunakan az k8s-runtime load-balancer enable perintah untuk menginstal ekstensi Arc dan mendaftarkan penyedia sumber daya untuk kluster Kubernetes Anda. Parameter --resource-uri mengacu pada ID resource manager kluster Kubernetes Anda.

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

Opsi 2: Aktifkan ekstensi Arc untuk MetalLB menggunakan az k8s-extension add perintah

Jika Anda tidak memiliki izin Graph Application.Read.All, Anda dapat mengikuti langkah-langkah berikut:

  1. Daftarkan Microsoft.KubernetesRuntime RP jika Anda belum melakukannya. Perhatikan bahwa Anda hanya perlu mendaftar sekali per langganan Azure. Anda juga dapat mendaftarkan penyedia sumber daya menggunakan portal Azure. Untuk informasi selengkapnya tentang cara mendaftarkan penyedia sumber daya dan izin yang diperlukan, lihat cara mendaftarkan penyedia sumber daya.
az provider register -n Microsoft.KubernetesRuntime

Anda dapat memeriksa apakah penyedia sumber daya telah berhasil didaftarkan dengan menjalankan perintah berikut.

az provider show -n Microsoft.KubernetesRuntime -o table

Output yang diharapkan:

Namespace                    RegistrationPolicy    RegistrationState
---------------------------  --------------------  -------------------
Microsoft.KubernetesRuntime  RegistrationRequired  Registered
  1. Untuk menginstal ekstensi Arc untuk MetalLB, dapatkan AppID penyedia sumber daya ekstensi MetalLB, lalu jalankan perintah buat ekstensi. Anda harus menjalankan perintah berikut sekali per kluster Arc Kubernetes.

Dapatkan ID Aplikasi ekstensi Arc dengan menjalankan daftar az ad sp. Untuk menjalankan perintah berikut, Anda harus menjadi user anggota penyewa Azure Anda. Untuk informasi selengkapnya tentang keanggotaan pengguna dan tamu, lihat izin pengguna default di ID Microsoft Entra.

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

Setelah memiliki $objID, Anda dapat menginstal ekstensi MetalLB Arc pada kluster Kubernetes. Untuk menjalankan perintah di bawah ini, Anda harus memiliki peran kontributor ekstensi Kubernetes.

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

Menyebarkan load balancer MetalLB pada kluster Kubernetes Anda

Anda sekarang dapat membuat load balancer untuk kluster Kubernetes dari jarak jauh dengan menjalankan az k8s-runtime load-balancer create perintah . Perintah ini membuat sumber daya kustom jenis IPAddressPool di namespace kube-system.

Konfigurasikan variabel berikut sebelum melanjutkan:

Parameter Deskripsi
$lbName Nama instans load balancer MetalLB Anda.
$advertiseMode Mode untuk load balancer MetalLB Anda. Nilai yang didukung adalah ARP, BGP, atau Both.
$ipRange Rentang IP untuk load balancer MetalLB dalam ARP mode atau Both .

Jika mode iklan adalah BGP atau Both, mode ini juga membuat sumber daya kustom jenis BGPAdvertisement. Jika mode iklan adalah ARP atau Both, mode iklan juga membuat sumber daya kustom jenis 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

Membuat peer BGP untuk kluster Kubernetes Anda

Buat serekan BGP untuk kluster Kubernetes dari jarak jauh dengan menjalankan az k8s-runtime bgp-peer create perintah . Perhatikan bahwa peer BGP efektif untuk semua load balancer yang memiliki BGP atau Both mengiklankan mode. Membuat rekan BGP adalah wajib jika Anda menggunakan load balancer MetalLB dalam BGP mode atau Both .

Konfigurasikan variabel berikut sebelum melanjutkan:

Parameter Deskripsi
$peerName Nama serekan BGP Anda.
$myASN Nomor AS yang digunakan untuk akhir lokal sesi.
$peerASN Angka AS yang diharapkan dari akhir sesi jarak jauh.
$peerIP Alamat untuk dial ketika membuat sesi.
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

Langkah berikutnya