Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Saat Anda membuat sumber daya load balancer di kluster Azure Kubernetes Service (AKS), alamat IP publik yang ditetapkan untuknya hanya berlaku untuk masa pakai sumber daya tersebut. Jika Anda menghapus layanan Kube, load balancer dan alamat IP terkait juga akan dihapus. Jika ingin menetapkan alamat IP tertentu atau mempertahankan alamat IP untuk layanan Kube yang disebarkan kembali, Anda dapat membuat dan menggunakan alamat IP publik statik.
Artikel ini menunjukkan cara membuat alamat IP publik statik dan menetapkannya ke layanan Kube.
Sebelum Anda mulai
- Anda memerlukan Azure CLI versi 2.0.59 atau yang lebih baru yang diinstal dan dikonfigurasi. Jalankan
az --versionuntuk menemukan versinya. Untuk menginstal atau meningkatkan, lihat Install Azure CLI. - Artikel ini membahas penggunaan IP SKU Standar dengan load balancer SKU Standar. Untuk informasi selengkapnya, lihat Jenis alamat IP dan metode alokasi di Azure.
Membuat kluster AKS
Buat grup sumber daya Azure menggunakan
az group createperintah .az group create --name myNetworkResourceGroup --location eastusBuat kluster AKS dengan menggunakan
az aks createperintah .az aks create --name myAKSCluster --resource-group myNetworkResourceGroup --generate-ssh-keys
Membuat alamat IP statik
Dapatkan nama grup sumber daya simpul menggunakan perintah
az aks showkemudian melakukan kueri pada propertinodeResourceGroup.az aks show --name myAKSCluster --resource-group myNetworkResourceGroup --query nodeResourceGroup -o tsvBuat alamat IP publik statis di grup sumber daya simpul dengan menggunakan
az network public-ip createperintah .az network public-ip create \ --resource-group <node resource group name> \ --name myAKSPublicIP \ --sku Standard \ --allocation-method staticPenting
AKS tidak lagi mendukung Basic Load Balancer. Jika kluster Anda menggunakan Load Balancer Dasar, tingkatkan ke Standard Load Balancer sebelum Anda mengonfigurasi alamat IP publik statis.
Dapatkan alamat IP publik statis dengan menggunakan
az network public-ip showperintah . Tentukan nama grup sumber daya node dan alamat IP publik yang Anda buat, lalu jalankan kueri untuk mencariipAddress.az network public-ip show --resource-group <node resource group name> --name myAKSPublicIP --query ipAddress --output tsv
Membuat layanan Kubernetes dengan alamat IP statis
Buat file bernama
load-balancer-service.yamldan salin dalam konten file YAML berikut. Berikan nama sumber daya IP publik (myAKSPublicIP) yang Anda buat di bagian Buat alamat IP statis dan nama grup sumber daya simpul.Identitas sarana kontrol AKS memiliki izin Kontributor pada grup sumber daya simpul secara default, sehingga IP publik yang Anda buat dalam artikel ini tidak memerlukan penetapan peran lain. Jika Anda menggunakan IP publik masuk atau keluar di grup sumber daya yang berbeda, berikan identitas sarana kontrol izin yang diperlukan pada grup sumber daya tersebut. Untuk informasi selengkapnya, lihat Identitas terkelola di AKS.
Penting
Properti
loadBalancerIPdalam manifes layanan Kubernetes tidak digunakan lagi setelah Kubernetes upstream. Layanan yang ada terus berfungsi tanpa modifikasi, tetapi gunakan anotasi layanan sebagai gantinya.Annotation Kegunaan service.beta.kubernetes.io/azure-pip-nameTentukan nama sumber daya IP publik. service.beta.kubernetes.io/azure-load-balancer-ipv4Tentukan alamat IPv4. service.beta.kubernetes.io/azure-load-balancer-ipv6Tentukan alamat IPv6. apiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/azure-load-balancer-resource-group: <node resource group name> service.beta.kubernetes.io/azure-pip-name: myAKSPublicIP name: azure-load-balancer spec: type: LoadBalancer ports: - port: 80 selector: app: azure-load-balancerCatatan
Menambahkan anotasi
service.beta.kubernetes.io/azure-pip-namememastikan pembuatan LoadBalancer yang paling efisien dan sangat disarankan untuk menghindari potensi pengurangan kecepatan.Atur label DNS yang menghadap publik ke layanan menggunakan
service.beta.kubernetes.io/azure-dns-label-nameanotasi layanan. Ini menerbitkan nama domain yang sepenuhnya memenuhi syarat (FQDN) untuk layanan Anda menggunakan server DNS publik Azure dan domain tingkat atas. Nilai anotasi harus unik dalam lokasi Azure, jadi kami sarankan Anda menggunakan label yang cukup memenuhi syarat. Azure secara otomatis menambahkan akhiran default di lokasi yang Anda pilih, seperti<location>.cloudapp.azure.com, ke nama yang Anda berikan, membuat FQDN.Catatan
Jika Anda ingin menerbitkan layanan di domain Anda sendiri, lihat Azure DNS dan proyek dns eksternal.
apiVersion: v1 kind: Service metadata: annotations: service.beta.kubernetes.io/azure-load-balancer-resource-group: <node resource group name> service.beta.kubernetes.io/azure-pip-name: myAKSPublicIP service.beta.kubernetes.io/azure-dns-label-name: <unique-service-label> name: azure-load-balancer spec: type: LoadBalancer ports: - port: 80 selector: app: azure-load-balancerSebelum membuat layanan, pastikan kluster Anda memiliki beban kerja dengan pod yang menggunakan
app: azure-load-balancerlabel . Manifes layanan memilih pod dengan label ini tetapi tidak membuat penyebaran.Buat layanan dengan menggunakan
kubectl applyperintah .kubectl apply -f load-balancer-service.yamlVerifikasi bahwa layanan memilih setidaknya satu pod yang berjalan dan siap.
kubectl get pods -l app=azure-load-balancerUntuk melihat label DNS untuk load balancer Anda, gunakan
kubectl describeperintah .kubectl describe service azure-load-balancerLabel DNS akan tercantum di bawah
Annotations, seperti yang diperlihatkan dalam contoh output ringkas berikut.Name: azure-load-balancer Namespace: default Labels: <none> Annotations: service.beta.kubernetes.io/azure-dns-label-name: <unique-service-label>
Pecahkan masalah
Bagian ini mengasumsikan Anda menyelesaikan Buat alamat IP statis, mencoba langkah-langkah dalam Membuat layanan Kubernetes dengan alamat IP statis, dan memiliki kluster AKS yang sedang berjalan. Untuk mengambil nama grup sumber daya simpul, gunakan az aks show --name myAKSCluster --resource-group myNetworkResourceGroup --query nodeResourceGroup -o tsv.
Jika sumber daya IP publik bernama dalam service.beta.kubernetes.io/azure-pip-name anotasi tidak ada di grup sumber daya yang ditentukan oleh service.beta.kubernetes.io/azure-load-balancer-resource-group, atau identitas sarana kontrol AKS tidak dapat mengakses grup sumber daya tersebut, pembuatan layanan penyeimbang beban gagal. Untuk melakukan pemecahan masalah, tinjau anotasi layanan dan event pembuatan dengan menggunakan perintah kubectl describe. Berikan nama layanan yang ditentukan dalam manifes YAML, seperti yang ditunjukkan dalam contoh berikut:
kubectl describe service azure-load-balancer
Output menunjukkan informasi tentang sumber daya layanan Kubernetes. Contoh output berikut menunjukkan Warning dalam Events: "user supplied IP address was not found." Dalam skenario ini, pastikan azure-pip-name anotasi cocok dengan nama sumber daya IP publik statis dan azure-load-balancer-resource-group anotasi cocok dengan grup sumber daya yang berisinya.
Name: azure-load-balancer
Namespace: default
Labels: <none>
Annotations: service.beta.kubernetes.io/azure-load-balancer-resource-group: <node resource group name>
service.beta.kubernetes.io/azure-pip-name: myAKSPublicIP
Selector: app=azure-load-balancer
Type: LoadBalancer
IP: 10.0.18.125
IP: 40.121.183.52
Port: <unset> 80/TCP
TargetPort: 80/TCP
NodePort: <unset> 32582/TCP
Endpoints: <pod-ip>:80
Session Affinity: None
External Traffic Policy: Cluster
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal CreatingLoadBalancer 7s (x2 over 22s) service-controller Creating load balancer
Warning CreatingLoadBalancerFailed 6s (x2 over 12s) service-controller Error creating load balancer (will retry): Failed to create load balancer for service default/azure-load-balancer: user supplied IP Address 40.121.183.52 was not found
Langkah berikutnya
Untuk kontrol yang lebih besar atas trafik jaringan ke aplikasi Anda, gunakan add-on perutean aplikasi untuk AKS. Untuk informasi selengkapnya tentang add-on perutean aplikasi, lihat Managed NGINX Ingress dengan add-on perutean aplikasi.