Bagikan melalui


Autoscaling pod vertikal di Azure Kubernetes Service (AKS)

Artikel ini memberikan gambaran umum tentang penggunaan Vertical Pod Autoscaler (VPA) di Azure Kubernetes Service (AKS), yang didasarkan pada versi sumber terbuka Kubernetes.

Saat dikonfigurasi, VPA secara otomatis menetapkan permintaan dan batasan sumber daya pada kontainer per beban kerja berdasarkan penggunaan sebelumnya. VPA membebaskan CPU dan Memori untuk pod lain dan membantu memastikan pemanfaatan kluster AKS Yang efektif. Autoscaler Pod Vertikal memberikan rekomendasi untuk penggunaan sumber daya dari waktu ke waktu. Untuk mengelola peningkatan penggunaan sumber daya secara tiba-tiba, gunakan Horizontal Pod Autoscaler, yang menskalakan jumlah replika pod sesuai kebutuhan.

Keuntungan

Autoscaler Pod Vertikal menawarkan manfaat berikut:

  • Menganalisis dan menyesuaikan sumber daya prosesor dan memori untuk mengukur aplikasi Anda dengan tepat. VPA tidak hanya bertanggung jawab untuk meningkatkan skala, tetapi juga untuk menurunkan skala berdasarkan penggunaan sumber daya mereka dari waktu ke waktu.
  • Pod dengan mode penskalaan yang diatur ke otomatis atau dibuat ulang dikeluarkan jika perlu mengubah permintaan sumber dayanya.
  • Anda dapat mengatur batasan CPU dan memori untuk kontainer individual dengan menentukan kebijakan sumber daya.
  • Memastikan simpul memiliki sumber daya yang benar untuk penjadwalan pod.
  • Menawarkan pengelogan yang dapat dikonfigurasi dari setiap penyesuaian yang dibuat pada sumber daya prosesor atau memori yang dibuat.
  • Meningkatkan pemanfaatan sumber daya kluster dan membebaskan CPU dan memori untuk pod lain.

Batasan dan pertimbangan

Pertimbangkan batasan dan pertimbangan berikut saat menggunakan Penskala Otomatis Pod Vertikal:

  • VPA mendukung maksimum 1.000 pod yang terkait dengan VerticalPodAutoscaler objek per kluster.
  • VPA mungkin merekomendasikan lebih banyak sumber daya daripada yang tersedia di kluster, yang mencegah pod ditetapkan ke node dan berjalan karena sumber daya yang tidak mencukup. Anda dapat mengatasi batasan ini dengan mengatur LimitRange ke sumber daya maksimum yang tersedia per namespace, yang memastikan pod tidak meminta lebih banyak sumber daya daripada yang ditentukan. Anda juga dapat mengatur rekomendasi sumber daya maksimum yang diizinkan per pod dalam objek VerticalPodAutoscaler . VPA tidak dapat sepenuhnya mengatasi masalah sumber daya simpul yang tidak memadai. Rentang batas diperbaiki, tetapi penggunaan sumber daya simpul diubah secara dinamis.
  • Kami tidak merekomendasikan penggunaan VPA dengan Horizontal Pod Autoscaler (HPA), yang menskalakan berdasarkan metrik penggunaan CPU dan memori yang sama.
  • Pemberi Rekomendasi VPA hanya menyimpan hingga delapan hari data historis.
  • VPA tidak mendukung beban kerja berbasis JVM karena visibilitas terbatas ke dalam penggunaan memori beban kerja yang sebenarnya.
  • VPA tidak mendukung menjalankan implementasi VPA Anda sendiri bersama dengannya. Memiliki pemberi rekomendasi tambahan atau disesuaikan didukung.
  • Kontainer AKS Windows tidak didukung.

Gambaran umum VPA

Objek VPA terdiri dari tiga komponen:

  • Pemberi Rekomendasi: Pemberi Rekomendasi memantau konsumsi sumber daya saat ini dan sebelumnya, termasuk riwayat metrik, peristiwa Kehabisan Memori (OOM), dan spesifikasi penyebaran VPA, dan menggunakan informasi yang dikumpulkannya untuk memberikan nilai yang direkomendasikan untuk permintaan/batas CPU kontainer dan Memori.
  • Updater: Updater memantau pod terkelola untuk memastikan bahwa permintaan sumber daya mereka diatur dengan benar. Jika tidak, pod tersebut akan menghapus pod tersebut sehingga pengontrolnya dapat membuatnya kembali dengan permintaan yang diperbarui.
  • Pengontrol Penerimaan VPA: Pengontrol Penerimaan VPA mengatur permintaan sumber daya yang benar pada pod baru baik yang dibuat atau dibuat ulang oleh pengontrolnya berdasarkan aktivitas Updater.

Pengontrol penerimaan VPA

Pengontrol Penerimaan VPA adalah biner yang mendaftarkan dirinya sebagai Webhook Penerimaan Bermutasi. Ketika pod baru dibuat, Pengontrol Penerimaan VPA mendapatkan permintaan dari server API dan mengevaluasi apakah ada konfigurasi VPA yang cocok atau menemukan yang sesuai dan menggunakan rekomendasi saat ini untuk mengatur permintaan sumber daya dalam pod.

Pekerjaan mandiri, overlay-vpa-cert-webhook-check, berjalan di luar Pengontrol Penerimaan VPA. Pekerjaan ini overlay-vpa-cert-webhook-check membuat dan memperbarui sertifikat dan mendaftarkan Pengontrol Penerimaan VPA sebagai MutatingWebhookConfiguration.

Mode operasi objek VPA

Sumber daya Penskala Otomatis Pod Vertikal, yang paling umum merupakan penyebaran, dimasukkan untuk setiap pengontrol yang ingin Anda komputasi persyaratan sumber daya secara otomatis.

Ada empat mode di mana VPA beroperasi:

  • Auto: VPA menetapkan permintaan sumber daya selama pembuatan pod dan memperbarui pod yang ada menggunakan mekanisme pembaruan pilihan. Auto, yang setara Recreatedengan , adalah mode default. Setelah bebas hidupkan ulang, atau di tempat, pembaruan permintaan pod tersedia, itu dapat digunakan sebagai mekanisme pembaruan yang disukai oleh Auto mode . Dengan mode , Auto VPA mengeluarkan pod jika perlu mengubah permintaan sumber dayanya. Ini dapat menyebabkan pod dimulai ulang sekaligus, yang dapat menyebabkan inkonsistensi aplikasi. Anda dapat membatasi restart dan mempertahankan konsistensi dalam situasi ini menggunakan PodDisruptionBudget.
  • Recreate: VPA menetapkan permintaan sumber daya selama pembuatan pod dan memperbarui pod yang ada dengan mengeluarkannya ketika sumber daya yang diminta berbeda secara signifikan dari rekomendasi baru (menghormati PodDisruptionBudget, jika ditentukan). Anda hanya boleh menggunakan mode ini jika perlu memastikan bahwa pod dimulai ulang setiap kali permintaan sumber daya berubah. Jika tidak, sebaiknya gunakan Auto mode, yang memanfaatkan pembaruan bebas hidupkan ulang setelah tersedia.
  • Initial: VPA hanya menetapkan permintaan sumber daya selama pembuatan pod. Ini tidak memperbarui pod yang ada. Mode ini berguna untuk menguji dan memahami perilaku VPA tanpa memengaruhi pod yang sedang berjalan.
  • Off: VPA tidak secara otomatis mengubah persyaratan sumber daya pod. Rekomendasi dihitung dan dapat diperiksa di objek VPA.

Pola penyebaran untuk pengembangan aplikasi

Jika Anda tidak terbiasa dengan VPA, kami merekomendasikan pola penyebaran berikut selama pengembangan aplikasi untuk mengidentifikasi karakteristik pemanfaatan sumber daya uniknya, menguji VPA untuk memverifikasi bahwa VPA berfungsi dengan baik, dan menguji bersama komponen Kubernetes lainnya untuk mengoptimalkan pemanfaatan sumber daya kluster:

  1. Atur UpdateMode = "Off" di kluster produksi Anda dan jalankan VPA dalam mode rekomendasi sehingga Anda dapat menguji dan mendapatkan keakraban dengan VPA. UpdateMode = "Off" dapat menghindari kesalahan konfigurasi yang dapat menyebabkan pemadaman.
  2. Tetapkan pengamatan terlebih dahulu dengan mengumpulkan telemetri pemanfaatan sumber daya aktual selama jangka waktu tertentu, yang membantu Anda memahami perilaku dan tanda-tanda masalah dari sumber daya kontainer dan pod yang dipengaruhi oleh beban kerja yang berjalan di dalamnya.
  3. Kenali data pemantauan untuk memahami karakteristik performa. Berdasarkan wawasan ini, atur permintaan/batas yang diinginkan sesuai dan kemudian dalam penyebaran atau peningkatan berikutnya.
  4. Atur updateMode nilai ke Auto, Recreate, atau Initial tergantung pada kebutuhan Anda.

Langkah berikutnya

Untuk mempelajari cara menyiapkan Autoscaler Pod Vertikal pada kluster AKS Anda, lihat Menggunakan Penskala Otomatis Pod Vertikal di AKS.