Tentang buffer kapasitas

Buffer kapasitas membantu Anda mengurangi latensi startup Pod untuk workload Google Kubernetes Engine (GKE) dengan memungkinkan Anda secara proaktif mendeklarasikan tingkat kapasitas aktif atau siaga di cluster. Dengan mendeklarasikan kapasitas cadangan sebelumnya, Anda dapat memulai beban kerja lebih cepat dengan cara yang hemat biaya.

Dokumen ini menjelaskan cara kerja buffer kapasitas. Untuk mempelajari cara mengaktifkan dan menggunakan buffer kapasitas, lihat Mengonfigurasi buffer kapasitas.

Waktu penggunaan buffer kapasitas

Gunakan buffer kapasitas untuk aplikasi yang sensitif terhadap latensi saat memulai dan perlu diskalakan dengan cepat. Saat Anda mengalami peningkatan traffic yang tiba-tiba, buffer aktif menyediakan kapasitas yang telah disediakan sebelumnya dan dirancang untuk penskalaan latensi rendah. Saat Anda mengalami peningkatan traffic yang berkelanjutan, buffer siaga menyediakan penjadwalan Pod dengan biaya yang lebih terjangkau daripada pra-penyediaan.

Buffer kapasitas memberikan manfaat berikut:

  • Meminimalkan latensi penskalaan: buffer aktif menyediakan VM yang berjalan, yang membantu meminimalkan latensi. Buffer standby dilanjutkan dengan cepat, sehingga memberikan ketersediaan kapasitas yang lebih cepat daripada node baru.
  • Penyediaan berlebih yang hemat biaya: buffer kapasitas membantu Anda mempertahankan jaring pengaman berukuran tetap. Untuk beban kerja berskala besar, pendekatan ini sering kali lebih hemat biaya daripada metode penyediaan berlebih lainnya (misalnya, menurunkan target pemanfaatan HorizontalPodAutoscaler (HPA)), yang dapat meningkatkan kapasitas tidak aktif secara linier seiring pertumbuhan cluster Anda.
  • Memenuhi persyaratan beban kerja: Anda memiliki kontrol penuh atas ukuran buffer kapasitas. Opsi Anda mencakup menggabungkan daemonset atau data kustom, dan mengontrol pemuatan awal image dan pra-mulai workload agar sesuai dengan kebutuhan Anda.

Sebaiknya gunakan buffer kapasitas untuk workload yang sensitif terhadap latensi yang memerlukan penskalaan cepat, seperti agen AI, inferensi AI, aplikasi retail selama acara penjualan, atau server game selama aktivitas pemain mencapai puncaknya.

Kami tidak merekomendasikan buffer kapasitas untuk workload yang tidak sensitif terhadap latensi saat memulai, misalnya tugas pemrosesan batch. Untuk beban kerja ini, penyediaan resource yang berlebihan tidak memberikan manfaat.

Cara kerja buffer kapasitas

Terapkan buffer kapasitas dengan menggunakan resource kustom CapacityBuffer Kubernetes untuk menentukan buffer kapasitas cadangan. Penskala otomatis cluster GKE memantau resource CapacityBuffer dan memperlakukannya sebagai permintaan tertunda untuk membantu memastikan ketersediaan kapasitas cadangan. Jika cluster Anda tidak memiliki kapasitas yang cukup untuk memenuhi permintaan resource yang ditentukan dalam buffer, autoscaler cluster akan menyediakan node tambahan.

Saat workload berprioritas tinggi di-scale up, GKE akan segera menjadwalkan workload pada kapasitas yang tersedia di buffer. Penjadwalan langsung ini berlaku untuk jumlah replika atau jumlah resource yang dicadangkan dalam buffer, sehingga menghindari penundaan umum yang terkait dengan penyediaan node. Saat workload menggunakan unit buffer, autoscaler cluster akan menyediakan node baru untuk mengisi ulang buffer.

Strategi buffer kapasitas

Anda dapat mengonfigurasi buffer kapasitas menggunakan berbagai strategi penyediaan berdasarkan persyaratan latensi dan biaya Anda.

Buffer aktif

Buffer aktif menyediakan VM yang berjalan untuk penskalaan beban kerja latensi rendah yang sesuai dengan kapasitas yang dipesan. Karena node sudah siap, node memberikan latensi minimal untuk penggunaan buffer awal selama peristiwa penskalaan.

Kami merekomendasikan strategi ini untuk workload penting yang waktu penskalaannya menjadi prioritas tertinggi.

Buffer siaga

Buffer standby menyediakan VM yang ditangguhkan. Strategi standby lebih hemat biaya daripada strategi aktif, tetapi menimbulkan penundaan singkat untuk melanjutkan VM sebelum menerima beban kerja.

Kami merekomendasikan strategi ini untuk workload yang dapat mentoleransi sedikit penundaan dalam penskalaan untuk mengoptimalkan biaya.

CRD CapacityBuffer

Untuk mengonfigurasi buffer kapasitas, Anda membuat CustomResourceDefinition (CRD) CapacityBuffer. Anda dapat mengonfigurasi buffer kapasitas untuk memenuhi kriteria yang berbeda:

  • Replika tetap: Tentukan jumlah tetap Pod buffer. Konfigurasi ini adalah cara paling sederhana untuk membuat buffer dengan ukuran yang diketahui.
  • Berbasis persentase: Tentukan ukuran buffer sebagai persentase dari objek yang dapat diskalakan yang ada yang menentukan subresource skala (seperti Deployment, StatefulSet, ReplicaSet, atau Job). Ukuran buffer disesuaikan secara dinamis saat skala workload referensi berubah. Anda tidak dapat menentukan buffer berbasis persentase untuk template Pod karena tidak memiliki kolom replika.
  • Batas resource: Tentukan total jumlah CPU dan memori yang harus dicadangkan buffer. Pengontrol menghitung jumlah Pod buffer yang akan dibuat berdasarkan permintaan resource template Pod yang dirujuk.

Untuk mengetahui informasi selengkapnya, lihat dokumentasi referensi CRD CapacityBuffer.

Persyaratan dan batasan

Buffer kapasitas memiliki persyaratan dan batasan berikut:

  • Buffer kapasitas tersedia untuk cluster GKE yang menjalankan versi 1.35.2-gke.1842000 atau yang lebih baru untuk buffer aktif, dan versi 1.35.2-gke.1842002 untuk buffer standby.
  • Buffer kapasitas hanya mendukung workload yang menggunakan model penagihan berbasis node. Buffer kapasitas tidak mendukung workload yang menggunakan model penagihan berbasis Pod.
  • Sebaiknya aktifkan penyediaan otomatis node di cluster Anda. Penyediaan otomatis node memungkinkan autoscaler cluster membuat node pool baru berdasarkan permintaan resource di CapacityBuffer Anda. Jika Anda tidak mengaktifkan penyediaan otomatis node, autoscaler cluster hanya akan meningkatkan skala node pool yang ada.

Buffer siaga memiliki batasan tambahan berikut:

Langkah berikutnya