Bagikan melalui


Aktifkan penskalakan add-on yang dioptimalkan biaya pada kluster Azure Kubernetes Service (AKS) Anda (Pratinjau)

Artikel ini memberikan gambaran umum tentang penskalaan add-on yang dioptimalkan biaya di Azure Kubernetes Service (AKS). Dengan penskalaan add-on yang dioptimalkan biaya, Anda dapat mengelola add-on yang memerlukan CPU dan memori kustom dengan mengambil alih konfigurasi default atau mengaktifkan penskalaan otomatis. Fitur ini memastikan bahwa sumber daya tidak terlalu dialokasikan untuk pod add-on, meningkatkan penghematan biaya dan efisiensi kluster.

Gambaran Umum

Dengan mengaktifkan penskalaan add-on yang dioptimalkan biaya, add-on Vertical Pod Autoscaler (VPA) diinstal, memungkinkan add-on yang didukung untuk melakukan penskalaan otomatis berdasarkan penggunaan.

Fitur ini juga memungkinkan Anda menyesuaikan permintaan dan batas memori CPU/ memori default sumber daya dalam Deployments dan DaemonSets, CPU/ memori maksimum dan minimum yang diizinkan, dan mode pembaruan VPA dalam sumber daya kustom VPA. Untuk informasi selengkapnya, lihat menyesuaikan konfigurasi sumber daya untuk add-on AKS.

Add-on AKS yang didukung

Add-on terkelola AKS berikut mendukung fitur penskalakan add-on yang dioptimalkan biaya:

Tambahan Perilaku pengaktifan Nama sumber daya kustom VPA Perintah untuk memeriksa sumber daya kustom VPA
CoreDNS Diaktifkan secara default pada kluster AKS baru. coredns kubectl get vpa coredns --namespace kube-system
Identitas beban kerja Fitur tambahan opsional yang memerlukan pengaktifan manual. azure-wi-webhook-controller-manager kubectl get vpa azure-wi-webhook-controller-manager --namespace kube-system
Integritas Gambar Fitur tambahan opsional yang memerlukan pengaktifan manual. ratify kubectl get vpa ratify --namespace gatekeeper-system
Pengamatan Jaringan (Retina) Fitur tambahan opsional yang memerlukan pengaktifan manual. retina-agent dan retina-operator kubectl get vpa retina-agent --namespace kube-system dan kubectl get vpa retina-operator --namespace kube-system

Mode VPA yang didukung untuk skala tambahan dengan biaya dioptimalkan

VPA saat ini mendukung mode berikut untuk penskalaan add-on yang dioptimalkan biaya:

  • Nonaktif: VPA menyediakan data rekomendasi sumber daya tetapi tidak menerapkannya ke pod target.
  • Awal (mode default): VPA secara otomatis menerapkan rekomendasi CPU dan memori ke pod target ketika restart, tetapi tidak memulai restart itu sendiri.
  • Otomatis: VPA secara otomatis memperbarui permintaan CPU dan memori untuk pod berdasarkan rekomendasi.

Nota

Saat mengaktifkan penskalaan add-on yang dioptimalkan biaya, pertimbangkan informasi berikut:

  • Jika Anda menghapus sumber daya kustom seperti Penyebaran, SetDaemon, atau sumber daya kustom VPA, perubahan akan kembali ke konfigurasi awal add-on AKS.
  • Fitur penskalaan add-on yang dioptimalkan untuk biaya memungkinkan add-on VPA untuk melakukan penskalaan otomatis pada add-on AKS yang didukung. Ini tidak berfungsi dengan VPA yang dihost sendiri.
  • AKS memulai ulang pod add-on saat mengaktifkan penskalaan add-on yang dioptimalkan biaya. CoreDNS saat ini adalah satu-satunya pengecualian untuk menghindari potensi gangguan selama mulai ulang. Untuk informasi selengkapnya, lihat Perilaku penskalaan otomatis CoreDNS.

Peringatan

Pastikan Anda memiliki sumber daya komputasi yang cukup pada kumpulan simpul sistem untuk addon Anda saat Anda mengaktifkan penskalaan add-on yang dioptimalkan biaya. AKS merekomendasikan untuk mengaktifkan penyesuaian otomatis kluster atau penyediaan otomatis node untuk memastikan ukuran sumber daya komputasi Anda secara otomatis. Pantau pod add-on yang tertunda saat menggunakan fitur penskalaan add-on yang dioptimalkan biaya. VPA mungkin merekomendasikan permintaan sumber daya yang melebihi kapasitas simpul yang tersedia, yang dapat mengakibatkan pod yang tidak dapat dijadwalkan. Anda dapat mengontrol perilaku ini dengan menyesuaikan nilai min/maks untuk permintaan dan batas addon yang didukung.

Prasyarat

Penting

Fitur pratinjau AKS tersedia atas dasar layanan mandiri dan pendaftaran sukarela. Pratinjau disediakan "apa adanya" dan "sebagaimana tersedia," dan pratinjau tersebut dikecualikan dari perjanjian tingkat layanan (SLA) serta garansi terbatas. Pratinjau AKS sebagian didukung oleh dukungan pelanggan berdasarkan upaya terbaik yang dapat dilakukan. Dengan demikian, fitur-fitur ini tidak dimaksudkan untuk penggunaan produksi. Untuk informasi lebih lanjut, lihat artikel dukungan berikut ini:

Memasang ekstensi aks-preview Azure CLI

  1. Pasang ekstensi aks-preview menggunakan perintah az extension add.

    az extension add --name aks-preview
    
  2. Perbarui ke versi terbaru ekstensi menggunakan az extension update perintah .

    az extension update --name aks-preview
    

Daftarkan fitur pratinjau penskalaan add-on berbiaya hemat

  1. Daftarkan fitur pratinjau penskalaan yang dioptimalkan biaya untuk add-on menggunakan perintah az feature register.

    az feature register --namespace "Microsoft.ContainerService" --name "AKS-AddonAutoscalingPreview"
    

    Dibutuhkan beberapa menit agar status ditampilkan sebagai Terdaftar.

  2. Verifikasi status pendaftaran menggunakan az feature show perintah .

    az feature show --namespace "Microsoft.ContainerService" --name "AKS-AddonAutoscalingPreview"
    
  3. Saat status ditampilkan sebagai Terdaftar, segarkan pendaftaran penyedia Microsoft.ContainerService menggunakan perintah az provider register.

    az provider register --namespace Microsoft.ContainerService
    

Mengaktifkan penskalaan add-on berbiaya optimal pada kluster AKS

Saat mengaktifkan add-on, kluster AKS secara otomatis menginstal add-on VPA. Add-on AKS yang mendukung fitur penskalaan add-on yang dioptimalkan biaya memiliki perilaku pengaktifan yang berbeda.

Nota

Jika Anda menggunakan Bicep, templat ARM, atau Terraform, atur VerticalPodAutoscaler ke "True" dan AddonAutoscaling ke "enabled".

Aktifkan penskalaan add-on yang telah dioptimalkan biaya pada kluster baru

  • Aktifkan skala add-on biaya yang dioptimalkan pada kluster AKS baru dengan menggunakan perintah az aks create dan flag --enable-optimized-addon-scaling.

    az aks create --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME --enable-optimized-addon-scaling
    

Mengaktifkan penskalaan add-on dengan biaya yang dioptimalkan pada kluster yang ada

  • Aktifkan penskalaan add-on yang dioptimalkan biaya pada kluster AKS yang ada menggunakan perintah az aks update dengan flag --enable-optimized-addon-scaling.

    az aks update --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME --enable-optimized-addon-scaling
    

Menonaktifkan penskalakan add-on yang dioptimalkan biaya pada kluster AKS

  • Nonaktifkan penskalaan add-on yang dioptimalkan biaya pada kluster AKS menggunakan perintah az aks update dengan parameter --disable-optimized-addon-scaling.

    az aks update --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME --disable-optimized-addon-scaling
    

Nota

Menonaktifkan fitur penskalaan add-on berorientasi biaya tidak menonaktifkan add-on VPA secara default. Untuk menonaktifkan VPA, lihat Menonaktifkan VPA pada kluster AKS.

Menyesuaikan konfigurasi sumber daya default

Dengan fitur penskalaan add-on yang dioptimalkan biaya yang diaktifkan pada kluster Anda, Anda dapat menyesuaikan pengaturan CPU/memori default untuk sumber daya add-on serta konfigurasi VPA default untuk add-on AKS yang didukung. Untuk informasi selengkapnya, lihat menyesuaikan konfigurasi sumber daya untuk add-on AKS.

Nota

Dengan mode Awal , VPA menerapkan permintaan CPU dan memori yang direkomendasikan hanya ketika pod dibuat atau diperbarui. Jika Anda ingin rekomendasi segera diterapkan, harap perbarui pod secara manual. Sebelum menerapkan nilai yang direkomendasikan secara manual, pastikan mode pembaruan VPA diatur ke Awal atau Otomatis di sumber daya kustom VPA.

  1. Periksa status pod dan pemanfaatan CPU/memori untuk memverifikasi bahwa pod berjalan seperti yang diharapkan.

    Contoh berikut menggunakan kubectl get pod perintah untuk memeriksa status pod CoreDNS:

    kubectl get pod <coredns-pod-name> --namespace kube-system -o yaml
    

    Output berikut menunjukkan contoh status pod CoreDNS:

    apiVersion: v1
    kind: Pod
    metadata:
      name: <coredns-pod-name>
      namespace: kube-system
    spec:
      ...
      containers:
      - name: coredns
        resources:
          limits:
            cpu: "3"
            memory: "500Mi"
          requests:
            cpu: "100m"
            memory: "70Mi"
    
  2. Dapatkan nilai yang direkomendasikan oleh VPA menggunakan perintah kubectl get vpa.

    kubectl get vpa coredns --namespace kube-system
    

    Output berikut menunjukkan contoh nilai yang direkomendasikan VPA untuk pod CoreDNS:

    NAME      MODE      CPU   MEM        PROVIDED   AGE
    coredns   Initial   11m   23574998   True       44m
    
  3. Jika Anda ingin menggunakan nilai yang direkomendasikan oleh VPA, hapus pod secara manual menggunakan kubectl delete pod perintah untuk menghidupkan ulang pod dengan nilai yang direkomendasikan VPA.

    kubectl delete pod <coredns-pod-name> --namespace kube-system
    
  4. Setelah pod dimulai ulang, verifikasi status pod dan pembaruan CPU/memori menggunakan kubectl get pod perintah .

    kubectl get pod <coredns-pod-name> --namespace kube-system -o yaml
    

    Output berikut menunjukkan contoh status pod CoreDNS setelah menerapkan nilai yang direkomendasikan VPA:

    apiVersion: v1
    kind: Pod
    metadata:
      name: <coredns-pod-name>
      namespace: kube-system
    spec:
      ...
      containers:
      - name: coredns
        resources:
          limits:
            cpu: "330m"
            memory: "168392842"
          requests:
            cpu: "11m"
            memory: "23574998"
    

Penyelesaian Masalah

Dengan fitur penskalaan add-on yang dioptimalkan biaya yang diaktifkan pada kluster Anda, Anda dapat menyesuaikan pengaturan CPU dan memori default untuk sumber daya add-on, serta memodifikasi konfigurasi VPA default untuk add-on terkelola AKS yang didukung

Jika pod add-on yang diaktifkan untuk penskalaan otomatis berada dalam keadaan tertunda, atau Anda tidak melihat rekomendasi penskalaan otomatis VPA untuk add-on, ikuti langkah-langkah ini untuk memecahkan masalah.

Periksa status add-on VPA yang dikelola AKS

  1. Periksa apakah semua komponen sistem VPA berjalan menggunakan kubectl get pods perintah .

    kubectl get pods --namespace kube-system | grep vpa
    

    Output harus menunjukkan tiga pod (vpa-admission-controller, vpa-recommender, dan vpa-updater) yang sedang berjalan di namespace kube-system, mirip dengan contoh berikut:

    vpa-admission-controller   2/2     2            2           4m11s
    vpa-recommender            1/1     1            1           4m11s
    vpa-updater                1/1     1            1           4m11s
    
  2. Untuk masing-masing dari tiga pod VPA, periksa log untuk kesalahan apa pun menggunakan perintah kubectl logs. Pastikan untuk mengganti <pod-name> dengan nama pod VPA.

    kubectl logs <pod-name> --namespace kube-system | grep -e '^E[0-9]\{4\}'
    
  3. Pastikan definisi sumber daya kustom (CRD) telah dibuat menggunakan perintah kubectl get.

    kubectl get customresourcedefinition | grep verticalpodautoscalers
    

Periksa status pod dan penggunaan CPU/memori

  1. Periksa status pod menggunakan kubectl get pod perintah .

    kubectl get pod <pod-name> --namespace=kube-system
    
  2. Jika pod memiliki status Pending, periksa properti status pod untuk menentukan alasan pod tidak berjalan.

    kubectl describe pod <pod-name> --namespace kube-system -o yaml
    

    Output berikut menunjukkan contoh status pod dengan status Pending:

    apiVersion: v1
    kind: Pod
    ...
    status:
      conditions:
      - lastProbeTime: null
        lastTransitionTime: "2023-05-03T17:05:26Z"
        message: '0/1 nodes are available: 1 Insufficient cpu, 1 Insufficient memory.
          preemption: 0/1 nodes are available: 1 Insufficient cpu, 1 Insufficient memory..'
        reason: Unschedulable
        status: "False"
        type: PodScheduled
      phase: Pending
      qosClass: Guaranteed
    
  3. Jika output menunjukkan bahwa pod Pending disebabkan oleh CPU atau memori yang tidak mencukup, pertimbangkan tindakan berikut:

    • Tambahkan lebih banyak simpul sehingga pod dapat dijadwalkan dalam simpul dengan penggunaan sumber daya yang lebih rendah.
    • Nonaktifkan VPA untuk pod add-on target dengan mengubah mode pembaruan menjadi Nonaktif, lalu perbarui permintaan/batas secara manual ke nilai sumber daya yang tersedia pada simpul. Berhati-hatilah saat mengatur batas sumber daya ke nilai yang sangat rendah, karena ini dapat mengakibatkan pod mengalami terminasi OOM atau pengurangan kinerja CPU jika mencoba menggunakan lebih banyak sumber daya daripada yang tersedia pada node.

Langkah selanjutnya