Tutorial - Menskalakan aplikasi di Azure Kubernetes Service (AKS)
Jika mengikuti tutorial sebelumnya, Anda memiliki kluster Kubernetes dan aplikasi Azure Store Front yang berfungsi.
Dalam tutorial ini, bagian enam dari tujuh, Anda menskalakan pod di aplikasi, mencoba penskalaan otomatis pod, dan menskalakan jumlah simpul Azure VM untuk mengubah kapasitas kluster untuk menghosting beban kerja. Anda akan mempelajari cara untuk:
- Skalakan simpul Kubernetes.
- Skalakan pod Kubernetes secara manual yang menjalankan aplikasi Anda.
- Konfigurasikan pod autoscaling yang menjalankan front end aplikasi.
Sebelum Anda mulai
Dalam tutorial sebelumnya, Anda mengemas aplikasi ke dalam gambar kontainer, mengunggah gambar ke Azure Container Registry, membuat kluster AKS, menyebarkan aplikasi, dan menggunakan Azure Bus Layanan untuk menyebarkan ulang aplikasi yang diperbarui. Jika Anda belum menyelesaikan langkah-langkah ini dan ingin mengikutinya, mulailah dengan Tutorial 1 - Siapkan aplikasi untuk AKS.
Tutorial ini memerlukan Azure CLI versi 2.34.1 atau yang lebih baru. Jalankan az --version
untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.
Penskalaan pod secara manual
Lihat pod di kluster Anda menggunakan
kubectl get
perintah .kubectl get pods
Contoh output berikut menunjukkan pod yang menjalankan aplikasi Azure Store Front:
NAME READY STATUS RESTARTS AGE order-service-848767080-tf34m 1/1 Running 0 31m product-service-4019737227-2q2qz 1/1 Running 0 31m store-front-2606967446-2q2qz 1/1 Running 0 31m
Ubah jumlah pod secara manual dalam penyebaran store-front menggunakan
kubectl scale
perintah .kubectl scale --replicas=5 deployment.apps/store-front
Verifikasi pod tambahan dibuat menggunakan
kubectl get pods
perintah .kubectl get pods
Contoh output berikut menunjukkan pod tambahan yang menjalankan aplikasi Azure Store Front:
READY STATUS RESTARTS AGE store-front-2606967446-2q2qzc 1/1 Running 0 15m store-front-3309479140-2hfh0 1/1 Running 0 3m store-front-3309479140-bzt05 1/1 Running 0 3m store-front-3309479140-fvcvm 1/1 Running 0 3m store-front-3309479140-hrbf2 1/1 Running 0 15m store-front-3309479140-qphz8 1/1 Running 0 3m
Skala otomatis pod
Untuk menggunakan autoscaler pod horizontal, semua kontainer harus memiliki permintaan dan batasan CPU yang ditentukan, dan pod harus memiliki permintaan yang ditentukan. aks-store-quickstart
Dalam penyebaran, kontainer front-end meminta CPU 1m dengan batas CPU 1000m.
Permintaan dan batas sumber daya ini didefinisikan untuk setiap kontainer, seperti yang ditunjukkan dalam contoh ringkas YAML berikut:
...
containers:
- name: store-front
image: ghcr.io/azure-samples/aks-store-demo/store-front:latest
ports:
- containerPort: 8080
name: store-front
...
resources:
requests:
cpu: 1m
...
limits:
cpu: 1000m
...
Pod skala otomatis menggunakan file manifes
Buat file manifes untuk menentukan perilaku autoscaler dan batas sumber daya, seperti yang ditunjukkan dalam file
aks-store-quickstart-hpa.yaml
manifes contoh ringkas berikut :apiVersion: autoscaling/v2 kind: HorizontalPodAutoscaler metadata: name: store-front-hpa spec: maxReplicas: 10 # define max replica count minReplicas: 3 # define min replica count scaleTargetRef: apiVersion: apps/v1 kind: Deployment name: store-front metrics: - type: Resource resource: name: cpu target: type: Utilization averageUtilization: 50
Terapkan file manifes autoscaler menggunakan
kubectl apply
perintah .kubectl apply -f aks-store-quickstart-hpa.yaml
Periksa status autoscaler menggunakan
kubectl get hpa
perintah .kubectl get hpa
Setelah beberapa menit, dengan beban minimal pada aplikasi Azure Store Front, jumlah replika pod berkurang menjadi tiga. Anda dapat menggunakan
kubectl get pods
lagi untuk melihat pod yang tidak perlu dihapus.
Catatan
Anda dapat mengaktifkan add-on AKS Event-Driven Autoscaler (KEDA) berbasis Kubernetes ke kluster Anda untuk mendorong penskalaan berdasarkan jumlah peristiwa yang perlu diproses. Untuk informasi selengkapnya, lihat Mengaktifkan penskalaan otomatis aplikasi yang disederhanakan dengan add-on Kubernetes Event-Driven Autoscaling (KEDA) (Pratinjau).
Menskalakan simpul AKS secara manual
Jika Anda membuat kluster Kubernetes menggunakan perintah dalam tutorial sebelumnya, kluster Anda memiliki dua node. Jika Anda ingin menambah atau mengurangi jumlah ini, Anda dapat menyesuaikan jumlah simpul secara manual.
Contoh berikut meningkatkan jumlah simpul menjadi tiga di kluster Kubernetes bernama myAKSCluster. Perintah ini membutuhkan waktu beberapa menit untuk menyelesaikannya.
Skalakan
az aks scale
node kluster Anda menggunakan perintah .az aks scale --resource-group myResourceGroup --name myAKSCluster --node-count 3
Setelah kluster berhasil diskalakan, output Anda akan mirip dengan contoh output berikut:
"aadProfile": null, "addonProfiles": null, "agentPoolProfiles": [ { ... "count": 3, "mode": "System", "name": "nodepool1", "osDiskSizeGb": 128, "osDiskType": "Managed", "osType": "Linux", "ports": null, "vmSize": "Standard_DS2_v2", "vnetSubnetId": null ... } ... ]
Anda juga dapat menskalakan simpul secara otomatis di kluster Anda. Untuk informasi selengkapnya, lihat Menggunakan autoscaler kluster dengan kumpulan simpul.
Langkah berikutnya
Dalam tutorial ini, kamu menggunakan fitur penskalaan yang berbeda di kluster Kubernetes Anda. Anda mempelajari cara untuk:
- Skalakan pod Kubernetes secara manual yang menjalankan aplikasi Anda.
- Konfigurasikan pod autoscaling yang menjalankan front end aplikasi.
- Skalakan simpul Kubernetes secara manual.
Dalam tutorial berikutnya, Anda mempelajari cara meningkatkan Kubernetes di kluster AKS Anda.
Azure Kubernetes Service