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:
- 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
- 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