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.
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
- Kluster AKS yang menjalankan Kubernetes versi 1.25 atau yang lebih baru.
- Azure CLI versi 2.60.0 atau yang lebih baru diinstal dan dikonfigurasi. Jalankan
az --version
untuk menemukan versinya. Jika Anda perlu menginstal atau memperbarui, lihat Install Azure CLI. -
aks-preview
dan daftarkan fitur pratinjau penskalaan tambahan yang dioptimalkan biaya.
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
Pasang ekstensi
aks-preview
menggunakan perintahaz extension add
.az extension add --name aks-preview
Perbarui ke versi terbaru ekstensi menggunakan
az extension update
perintah .az extension update --name aks-preview
Daftarkan fitur pratinjau penskalaan add-on berbiaya hemat
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.
Verifikasi status pendaftaran menggunakan
az feature show
perintah .az feature show --namespace "Microsoft.ContainerService" --name "AKS-AddonAutoscalingPreview"
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.
Menerapkan nilai yang direkomendasikan VPA secara manual
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.
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"
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
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
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
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
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\}'
Pastikan definisi sumber daya kustom (CRD) telah dibuat menggunakan perintah
kubectl get
.kubectl get customresourcedefinition | grep verticalpodautoscalers
Periksa status pod dan penggunaan CPU/memori
Periksa status pod menggunakan
kubectl get pod
perintah .kubectl get pod <pod-name> --namespace=kube-system
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
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
- Konfigurasikan Autoscaler Kluster atau Provisi Otomatis Node di kluster Anda untuk menskalakan kluster secara otomatis.
Azure Kubernetes Service