Halaman ini menjelaskan permintaan resource maksimum, minimum, dan default yang dapat Anda tentukan untuk workload Autopilot Google Kubernetes Engine (GKE), dan cara Autopilot mengubah permintaan tersebut secara otomatis untuk menjaga stabilitas workload.
Ringkasan permintaan resource di Autopilot
Autopilot menggunakan permintaan resource yang Anda tentukan dalam konfigurasi workload untuk mengonfigurasi node yang menjalankan workload Anda. Autopilot menerapkan permintaan resource minimum dan maksimum berdasarkan class komputasi atau konfigurasi hardware yang digunakan workload Anda. Jika Anda tidak menentukan permintaan untuk beberapa container, Autopilot akan menetapkan nilai default agar penampung tersebut berjalan dengan benar.
Saat Anda men-deploy workload di cluster Autopilot, GKE memvalidasi konfigurasi workload berdasarkan nilai minimum dan maksimum yang diizinkan untuk class komputasi atau konfigurasi hardware yang dipilih (seperti GPU). Jika permintaan Anda kurang dari jumlah minimum, Autopilot akan otomatis mengubah konfigurasi workload Anda untuk membawa permintaan Anda dalam rentang yang diizinkan. Jika permintaan Anda lebih besar dari maksimum, Autopilot akan menolak workload Anda dan menampilkan pesan error.
Daftar berikut merangkum kategori permintaan resource:
- Permintaan resource default: Autopilot menambahkan permintaan ini jika Anda tidak menentukan permintaan workload Anda sendiri
- Permintaan resource minimum dan maksimum: Autopilot memvalidasi permintaan yang Anda tentukan untuk memastikan permintaan tersebut tidak melebihi batas ini. Jika permintaan Anda di luar batas, Autopilot akan mengubah permintaan workload Anda.
- Pemisahan workload dan permintaan durasi yang diperpanjang: Autopilot memiliki nilai default yang berbeda dan nilai minimum yang berbeda untuk workload yang Anda pisahkan satu sama lain, atau untuk Pod yang mendapatkan perlindungan tambahan dari penghapusan yang dilakukan GKE.
- Permintaan resource untuk DaemonSets: Autopilot memiliki nilai default, minimum, dan maksimum yang berbeda untuk container di DaemonSets.
Cara meminta resource
Dalam mode Autopilot, Anda meminta resource dalam spesifikasi Pod. Resource minimum dan maksimum yang didukung yang dapat Anda minta berubah berdasarkan konfigurasi hardware node tempat Pod berjalan. Untuk mempelajari cara meminta konfigurasi hardware tertentu, lihat halaman berikut:
Permintaan resource default
Jika Anda tidak menentukan permintaan resource untuk beberapa container dalam Pod, Autopilot akan menerapkan nilai default. Setelan default ini cocok untuk banyak workload yang lebih kecil.
Selain itu, Autopilot menerapkan permintaan resource default berikut, terlepas dari konfigurasi class komputasi atau hardware yang dipilih:
Container di DaemonSets
- CPU: 50 mCPU
- Memori: 100 MiB
- Penyimpanan efemeral: 100 MiB
Semua container lainnya
- Penyimpanan efemeral: 1 GiB
Untuk mengetahui informasi selengkapnya tentang batas cluster Autopilot, lihat Kuota dan batas.
Permintaan default untuk class komputasi
Autopilot menerapkan nilai default berikut ke resource yang tidak ditentukan dalam spesifikasi Pod untuk Pod yang berjalan di class komputasi. Jika Anda hanya menyetel salah satu permintaan dan membiarkan yang lain kosong, GKE akan menggunakan rasio CPU:memori yang ditentukan di bagian Permintaan minimum dan maksimum untuk menyetel permintaan yang tidak ada ke nilai yang sesuai dengan rasio tersebut.
Class compute | Resource | Permintaan default |
---|---|---|
Tujuan umum | CPU | 0,5 vCPU |
Memori | 2 GiB | |
Seimbang | CPU | 0,5 vCPU |
Memori | 2 GiB | |
Performa | CPU |
|
Memori |
|
|
Penyimpanan efemeral |
|
|
Penyebaran Skala | CPU | 0,5 vCPU |
Memori | 2 GiB |
Permintaan default untuk konfigurasi hardware lainnya
Autopilot menerapkan nilai default berikut ke resource yang tidak ditentukan dalam spesifikasi Pod untuk Pod yang berjalan di node dengan hardware khusus, seperti GPU:
Hardware | Resource | Total permintaan default |
---|---|---|
GPU H100 (80 GB)nvidia-h100-80gb |
CPU |
|
Memori |
|
|
Penyimpanan efemeral |
|
|
GPU A100 (40 GB)nvidia-tesla-a100 |
CPU |
|
Memori |
|
|
GPU A100 (80 GB)nvidia-a100-80gb |
CPU |
|
Memori |
|
|
Penyimpanan efemeral |
|
|
GPU L4nvidia-l4 |
CPU |
|
Memori |
|
|
GPU T4nvidia-tesla-t4 |
CPU | 0,5 vCPU |
Memori | 2 GiB |
Permintaan resource minimum dan maksimum
Total resource yang diminta oleh konfigurasi deployment Anda harus berada dalam nilai minimum dan maksimum yang didukung yang diizinkan oleh Autopilot. Kondisi berikut berlaku:
- Permintaan penyimpanan sementara harus antara 10 MiB dan 10 GiB untuk semua class komputasi dan konfigurasi hardware kecuali jika ditentukan lain. Untuk volume yang lebih besar, sebaiknya gunakan volume sementara generik yang memberikan fungsionalitas dan performa setara dengan penyimpanan sementara, tetapi dengan fleksibilitas yang jauh lebih tinggi karena dapat digunakan dengan opsi penyimpanan GKE apa pun. Misalnya, ukuran maksimum untuk volume efemeral generik
yang menggunakan
pd-balanced
adalah 64 TiB. Untuk Pod DaemonSet, permintaan resource minimum adalah sebagai berikut:
- Cluster yang mendukung burst: 1 mCPU per Pod, memori 2 MiB per Pod, dan penyimpanan efemeral 10 MiB per container di Pod.
- Cluster yang tidak mendukung burst: 10 mCPU per Pod, 10 MiB memori per Pod, dan 10 MiB penyimpanan efemeral per container dalam Pod.
Untuk memeriksa apakah cluster Anda mendukung bursting, lihat Ketersediaan burst di GKE.
Rasio CPU:memory harus berada dalam rentang yang diizinkan untuk class komputasi atau konfigurasi hardware yang dipilih. Jika rasio CPU:memori Anda berada di luar rentang yang diizinkan, Autopilot akan otomatis meningkatkan resource yang lebih kecil. Misalnya, jika Anda meminta 1 vCPU dan memori 16 GiB (rasio 1:16) untuk Pod yang berjalan di class
Scale-Out
, Autopilot meningkatkan permintaan CPU menjadi 4 vCPU, yang mengubah rasionya menjadi 1:4.
Batas Minimum dan maksimum untuk class komputasi
Tabel berikut menjelaskan rasio CPU:memori minimum, maksimum, dan yang diizinkan untuk setiap class komputasi yang didukung Autopilot:
Class komputasi | Rasio CPU:memori (vCPU:GiB) | Resource | Minimum | Maksimum |
---|---|---|---|---|
Tujuan umum | Antara 1:1 dan 1:6,5 | CPU | Nilainya bergantung pada apakah cluster Anda mendukung bursting atau tidak, sebagai berikut:
Untuk memeriksa apakah cluster Anda mendukung bursting, lihat Ketersediaan burst di GKE. |
30 vCPU |
Memori | Nilainya bergantung pada apakah cluster Anda mendukung bursting atau tidak, sebagai berikut:
Untuk memeriksa apakah cluster Anda mendukung bursting, lihat Ketersediaan burst di GKE. |
110 GiB | ||
Seimbang | Antara 1:1 dan 1:8 | CPU | 0,25 vCPU | 222 vCPU Jika platform CPU minimum dipilih:
|
Memori | 0,5 GiB | 851 GiB Jika platform CPU minimum dipilih:
|
||
Performa | T/A | CPU | 0,001 vCPU |
|
Memori | 1 MiB |
|
||
Penyimpanan efemeral | 10 MiB |
|
||
Penyebaran Skala | 1:4 | CPU | 0,25 vCPU |
|
Memori | 1 GiB |
|
Untuk mempelajari cara meminta class komputasi di Pod Autopilot, lihat Memilih class komputasi untuk Pod Autopilot.
Batas minimum dan maksimum untuk konfigurasi hardware lainnya
Tabel berikut menjelaskan rasio CPU:memori minimum, maksimum, dan yang diizinkan untuk Pod yang berjalan pada node dengan hardware tertentu seperti GPU. Kecuali ditentukan lain, penyimpanan sementara maksimum yang didukung adalah 122 GiB dalam versi 1.28.6-gke.1369000 atau yang lebih baru, dan 1.29.1-gke.1575000 atau yang lebih baru. Untuk versi sebelumnya, penyimpanan sementara maksimum yang didukung adalah 10 GiB.
Hardware | Rasio CPU:memori (vCPU:GiB) | Resource | Minimum | Maksimum |
---|---|---|---|---|
GPU H100 (80 GB)nvidia-h100-80gb |
Tidak diterapkan | CPU |
|
|
Memori |
|
|
||
Penyimpanan efemeral |
|
|
||
GPU A100 (40 GB)nvidia-tesla-a100 |
Tidak diterapkan | CPU |
|
Jumlah permintaan CPU dari semua DaemonSets yang berjalan pada node GPU A100 tidak boleh lebih dari 2 vCPU. |
Memori |
|
Jumlah permintaan memori semua DaemonSets yang berjalan pada node GPU A100 tidak boleh melebihi 14 GiB. |
||
GPU A100 (80 GB)nvidia-a100-80gb |
Tidak diterapkan | CPU |
|
Jumlah permintaan CPU dari semua DaemonSets yang berjalan pada node GPU A100 (80 GB) tidak boleh lebih dari 2 vCPU. |
Memori |
|
Jumlah permintaan memori semua DaemonSets yang berjalan pada node GPU A100 (80 GB) tidak boleh melebihi 14 GiB. |
||
Penyimpanan efemeral |
|
|
||
GPU L4nvidia-l4 |
|
CPU |
|
Jumlah permintaan CPU dari semua DaemonSet yang berjalan pada node GPU L4 tidak boleh lebih dari 2 vCPU. |
Memori |
|
Jumlah permintaan memori dari semua DaemonSet yang berjalan pada node GPU L4 tidak boleh melebihi 14 GiB. |
||
GPU T4nvidia-tesla-t4 |
Antara 1:1 dan 1:6,25 | CPU | 0,5 vCPU |
|
Memori | 0,5 GiB |
|
Untuk mempelajari cara meminta GPU di Pod Autopilot, lihat Men-deploy workload GPU di Autopilot.
Permintaan resource untuk pemisahan workload dan durasi yang diperpanjang
Dengan Autopilot, Anda dapat memanipulasi penjadwalan dan perilaku penggusuran Kubernetes menggunakan metode seperti berikut:
- Gunakan taint dan toleransi serta pemilih node untuk memastikan Pod tertentu hanya ditempatkan di node tertentu. Untuk mengetahui detailnya, lihat Mengonfigurasi pemisahan workload di GKE.
- Gunakan anti-afinitas Pod agar Pod tidak menemukan lokasi bersama di node yang sama. Permintaan resource default dan minimum bagi workload yang menggunakan metode ini untuk mengontrol perilaku penjadwalan lebih tinggi daripada workload yang tidak menggunakan metode ini.
- Gunakan anotasi untuk melindungi Pod dari penghapusan yang disebabkan oleh upgrade otomatis node dan peristiwa penurunan skala hingga selama tujuh hari. Untuk mengetahui detailnya, lihat Memperpanjang runtime Pod Autopilot.
Jika permintaan yang Anda tentukan kurang dari jumlah minimum, perilaku Autopilot akan berubah berdasarkan metode yang Anda gunakan, sebagai berikut:
- Taint, toleransi, pemilih, dan Pod dengan durasi yang diperpanjang: Autopilot mengubah Pod untuk meningkatkan permintaan saat menjadwalkan Pod.
- Anti-afinitas Pod: Autopilot menolak Pod dan menampilkan pesan error.
Tabel berikut menjelaskan permintaan default dan permintaan resource minimum yang dapat Anda tentukan. Jika class konfigurasi atau komputasi tidak ada dalam tabel ini, Autopilot tidak akan menerapkan nilai minimum atau default khusus.
Class compute | Resource | Default | Minimum |
---|---|---|---|
Tujuan umum | CPU | 0,5 vCPU | 0,5 vCPU |
Memori | 2 GiB | 0,5 GiB | |
Seimbang | CPU | 2 vCPU | 1 vCPU |
Memori | 8 GiB | 4 GiB | |
Penyebaran Skala | CPU | 0,5 vCPU | 0,5 vCPU |
Memori | 2 GiB | 2 GiB |
Container init
Container init berjalan secara serial dan harus selesai sebelum container aplikasi dimulai. Jika Anda tidak menentukan permintaan resource untuk container init Autopilot, GKE akan mengalokasikan total resource yang tersedia untuk Pod ke setiap container init. Perilaku ini berbeda dengan GKE Standard, yang memungkinkan setiap container init menggunakan resource apa pun yang belum dialokasikan yang tersedia di node tempat Pod dijadwalkan.
Tidak seperti container aplikasi, GKE merekomendasikan agar Anda tidak menentukan permintaan resource untuk container init Autopilot, sehingga setiap container mendapatkan resource penuh yang tersedia untuk Pod. Jika meminta lebih sedikit resource daripada default, Anda akan membatasi container init. Jika meminta lebih banyak resource daripada default Autopilot, Anda dapat meningkatkan tagihan selama masa pakai Pod.
Menetapkan batas resource dalam Autopilot
Kubernetes memungkinkan Anda menetapkan requests
dan limits
untuk resource dalam spesifikasi Pod. Perilaku Pod berubah bergantung pada apakah
limits
berbeda dengan requests
, seperti yang dijelaskan dalam tabel
berikut:
Nilai yang ditetapkan | Perilaku Autopilot |
---|---|
requests sama dengan limits |
Pod menggunakan class QoS Guaranteed .
|
requests ditetapkan, limits belum ditetapkan |
Perilaku ini bergantung pada apakah cluster Anda mendukung burst atau tidak, sebagai berikut:
Untuk memeriksa apakah cluster Anda mendukung bursting, lihat Ketersediaan burst di GKE. |
requests belum disetel, limits disetel |
Autopilot menetapkan requests ke nilai limits , yang merupakan perilaku Kubernetes default.
Sebelum: resources: limits: cpu: "400m" Sesudah: resources: requests: cpu: "400m" limits: cpu: "400m" |
Lebih murah requests daripada limits |
Perilaku ini bergantung pada apakah cluster Anda mendukung burst atau tidak, sebagai berikut:
Untuk memeriksa apakah cluster Anda mendukung bursting, lihat Ketersediaan burst di GKE. |
requests lebih dari limits |
Autopilot menetapkan requests ke nilai
limits .
Sebelum: resources: requests: cpu: "450m" limits: cpu: "400m" Sesudah: resources: requests: cpu: "400m" limits: cpu: "400m" |
requests tidak disetel, limits tidak disetel |
Autopilot menetapkan Perilaku untuk
Untuk memeriksa apakah cluster Anda mendukung bursting, lihat Ketersediaan burst di GKE. |
Di sebagian besar situasi, tetapkan permintaan resource yang memadai dan batas yang sama untuk beban kerja Anda.
Untuk beban kerja yang untuk sementara memerlukan lebih banyak resource daripada status stabilnya, seperti selama booting atau periode traffic yang lebih tinggi, tetapkan batas yang lebih tinggi dari permintaan agar Pod dapat mengalami burst. Untuk mengetahui detailnya, lihat Mengonfigurasi burst Pod di GKE.
Pengelolaan resource otomatis di Autopilot
Jika permintaan resource yang ditentukan untuk workload Anda berada di luar rentang yang diizinkan, atau jika Anda tidak meminta resource untuk beberapa container, Autopilot akan mengubah konfigurasi workload Anda untuk mematuhi batas yang diizinkan. Autopilot menghitung rasio resource dan persyaratan peningkatan skala resource setelah menerapkan nilai default ke container tanpa permintaan yang ditentukan.
- Permintaan tidak ada: Jika Anda tidak meminta resource di beberapa container, Autopilot akan menerapkan permintaan default untuk class komputasi atau konfigurasi hardware.
- Rasio CPU:memori: Autopilot meningkatkan skala resource yang lebih kecil untuk memasukkan rasio dalam rentang yang diizinkan.
- Penyimpanan efemeral: Autopilot mengubah permintaan penyimpanan efemeral Anda untuk memenuhi jumlah minimum yang diperlukan oleh setiap container. Nilai kumulatif permintaan penyimpanan di semua container tidak boleh melebihi nilai maksimum yang diizinkan. Autopilot menurunkan skala permintaan jika nilainya melebihi maksimum.
- Permintaan di bawah batas minimum: Jika Anda meminta resource yang lebih sedikit dari jumlah minimum yang diizinkan untuk konfigurasi hardware yang dipilih, Autopilot akan otomatis mengubah Pod untuk meminta setidaknya nilai resource minimum.
Secara default, saat Autopilot meningkatkan skala resource secara otomatis untuk memenuhi
nilai resource minimum atau default, GKE mengalokasikan kapasitas
tambahan ke container pertama di manifes Pod. Pada GKE
versi 1.27.2-gke.2200 dan yang lebih baru, Anda dapat meminta GKE untuk mengalokasikan
resource tambahan ke container tertentu dengan menambahkan kode berikut ke
kolom annotations
di manifes Pod Anda:
autopilot.gke.io/primary-container: "CONTAINER_NAME"
Ganti CONTAINER_NAME
dengan nama
container.
Contoh modifikasi resource
Contoh skenario berikut menunjukkan cara Autopilot mengubah konfigurasi workload Anda untuk memenuhi persyaratan Pod dan container yang sedang berjalan.
Container tunggal dengan < 0,05 vCPU
Nomor container | Permintaan asli | Permintaan yang diubah |
---|---|---|
1 |
CPU: 30 mCPU Memori: 0,5 GiB Penyimpanan sementara: 10 MiB |
CPU: 50 mCPU Memori: 0,5 GiB Penyimpanan sementara: 10 MiB |
Beberapa container dengan total CPU < 0,05 vCPU
Nomor container | Permintaan asli | Permintaan yang diubah |
---|---|---|
1 | CPU: 10 mCPU Memori: 0,5 GiB Penyimpanan sementara: 10 MiB |
CPU: 30 mCPU Memori: 0,5 GiB Penyimpanan ephemeral: 10 MiB |
2 | CPU: 10 mCPU Memori: 0,5 GiB Penyimpanan sementara: 10 MiB |
CPU: 10 mCPU Memori: 0,5 GiB Penyimpanan sementara: 10 MiB |
3 | CPU: 10 mvCPU Memori: 0,5 GiB Penyimpanan ephemeral: 10 MiB |
CPU: 10 mCPU Memori: 0,5 GiB Penyimpanan sementara: 10 MiB |
Total resource Pod | CPU: 50 mCPU Memori: 1,5 GiB Penyimpanan ephemeral: 30 MiB |
Beberapa container dengan total lebih dari 0,25 vCPU
Untuk beberapa container dengan total resource >= 0,25 vCPU, CPU dibulatkan ke kelipatan 0,25 vCPU dan CPU tambahan ditambahkan ke container pertama. Dalam contoh ini, CPU kumulatif asli adalah 0,32 vCPU dan diubah menjadi total 0,5 vCPU.
Nomor container | Permintaan asli | Permintaan yang diubah |
---|---|---|
1 | CPU: 0,17 vCPU Memori: 0,5 GiB Penyimpanan efemeral: 10 MiB |
CPU: 0,35 vCPU Memori: 0,5 GiB Penyimpanan efemeral: 10 MiB |
2 | CPU: 0,08 vCPU Memori: 0,5 GiB Penyimpanan efemeral: 10 MiB |
CPU: 0,08 vCPU Memori: 0,5 GiB Penyimpanan efemeral: 10 MiB |
3 | CPU: 0,07 vCPU Memori: 0,5 GiB Penyimpanan efemeral: 10 MiB |
CPU: 0,07 vCPU Memori: 0,5 GiB Penyimpanan efemeral: 10 MiB |
4 | Kontainer init, resource tidak ditentukan | Akan menerima resource Pod |
Total resource Pod | CPU: 0,5 vCPU Memori: 1,5 GiB Penyimpanan efemeral: 30 MiB |
Container tunggal dengan memori yang terlalu rendah untuk CPU yang diminta
Dalam contoh ini, memori terlalu rendah untuk jumlah CPU (minimum 1 vCPU:1 GiB). Rasio minimum yang diizinkan untuk CPU ke memori adalah 1:1. Jika rasionya lebih rendah dari itu, permintaan memori akan ditingkatkan.
Nomor container | Permintaan asli | Permintaan yang diubah |
---|---|---|
1 | CPU: 4 vCPU Memori: 1 GiB Penyimpanan efemeral: 10 MiB |
CPU: 4 vCPU Memori: 4 GiB Penyimpanan efemeral: 10 MiB |
Total resource Pod | CPU: 4 vCPU Memori: 4 GiB Penyimpanan efemeral: 10 MiB |
Langkah selanjutnya
- Pelajari cara memilih class komputasi di workload Autopilot Anda.
- Pelajari class komputasi Autopilot yang didukung lebih lanjut.
- Pelajari cara memilih GPU di Pod Autopilot.