Bagikan melalui


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, Anda menskalakan pod di aplikasi, mencoba penskalaan otomatis pod, dan menskalakan jumlah simpul Azure VM untuk menyesuaikan kapasitas kluster dalam meng-host beban kerja. Anda akan mempelajari cara untuk:

  • Sesuaikan node Kubernetes.
  • Tingkatkan skala pod Kubernetes secara manual yang menjalankan aplikasi Anda.
  • Konfigurasikan pod autoscaling yang menjalankan frontend 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 Service Bus 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 menginstal atau memperbarui, lihat Install Azure CLI.

Menskalakan pod secara manual

  1. Lihat pod di kluster Anda menggunakan perintah kubectl get itu.

    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
    
  2. Ubah jumlah pod secara manual dalam penyebaran store-front menggunakan perintah kubectl scale.

    kubectl scale --replicas=5 deployment.apps/store-front
    
  3. Verifikasi bahwa pod tambahan dibuat menggunakan perintah kubectl get pods.

    kubectl get pods --selector app=store-front
    

    Contoh output berikut menunjukkan pod tambahan yang menjalankan aplikasi Azure Store Front:

    NAME                              READY     STATUS    RESTARTS   AGE
    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
    

Penskalaan otomatis pod

Untuk menggunakan autoscaler pod horizontal, semua kontainer harus memiliki permintaan dan batasan CPU yang ditentukan, dan pod harus memiliki permintaan yang ditentukan. Dalam penyebaran aks-store-quickstart, kontainer front-end meminta 1m CPU dengan batas 1000m CPU.

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

Menskalakan otomatis pod dengan menggunakan file manifes.

  1. Buat file manifes untuk menentukan perilaku autoscaler dan batas sumber daya, seperti yang ditunjukkan dalam file aks-store-quickstart-hpa.yamlmanifes 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
    
  2. Terapkan file manifes autoscaler menggunakan perintah kubectl apply.

    kubectl apply -f aks-store-quickstart-hpa.yaml
    
  3. 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 perintah kubectl get pods lagi untuk melihat pod yang tidak diperlukan dihapus.

Note

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 membutuhkan waktu beberapa menit untuk diselesaikan.

  • Skalakan node kluster Anda menggunakan perintah az aks scale.

    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 selanjutnya

Dalam tutorial ini, Anda menggunakan fitur penskalakan yang berbeda di kluster Kubernetes Anda. Anda mempelajari cara untuk:

  • Tingkatkan skala pod Kubernetes secara manual yang menjalankan aplikasi Anda.
  • Konfigurasikan pod autoscaling yang menjalankan frontend aplikasi.
  • Skalakan simpul Kubernetes secara manual.

Dalam tutorial berikutnya, Anda mempelajari cara meningkatkan Kubernetes di kluster AKS Anda.