Mulai dari versi 1.33, Google Kubernetes Engine (GKE) memigrasikan cluster yang menjalankan
cgroupv1
ke cgroupv2
. Halaman ini menginstruksikan Anda cara melakukan hal berikut:
- Periksa mode cgroup yang dijalankan oleh node cluster Anda, dan apakah workload Anda mungkin terpengaruh oleh transisi antara mode cgroup.
- Memigrasikan node cluster Autopilot GKE atau node pool cluster Standard ke
cgroupv2
. - Menonaktifkan sementara migrasi otomatis node GKE
dari
cgroupv1
kecgroupv2
. Ikuti petunjuk ini jika cluster Anda menjalankan workload yang mungkin terpengaruh oleh transisi antar-mode cgroup.
Anda dapat melewati membaca halaman ini jika Anda tahu bahwa workload Anda berjalan sesuai harapan di cgroupv2
, atau tidak terpengaruh oleh konfigurasi mode cgroup.
GKE secara otomatis memigrasikan cluster yang menjalankan cgroupv1
ke
cgroupv2
dengan versi 1.33 dan yang lebih baru.
Tentang grup kontrol Linux
Kubelet dan runtime container menggunakan grup kontrol (cgroup) kernel Linux untuk pengelolaan resource, seperti membatasi jumlah CPU atau memori yang dapat diakses oleh setiap container di sebuah Pod. Ada
dua mode subsistem cgroup dalam kernel: cgroupv1
dan cgroupv2
.
Dukungan Kubernetes untuk cgroupv2
diperkenalkan sebagai alfa di Kubernetes versi 1.18, beta di 1.22, dan GA di 1.25. Untuk mengetahui detail selengkapnya, lihat dokumentasi cgroups v2 Kubernetes.
Untuk mempelajari cara mengonfigurasi mode cgroup untuk cluster Standar, lihat Opsi konfigurasi mode cgroup Linux.
Cara GKE bertransisi ke cgroupv2
Tinjau linimasa berikut untuk memahami cara GKE mentransisikan cluster yang ada agar menggunakan cgroupv2
:
- Untuk versi sebelum 1.26,
cgroupv1
adalah default untuk node. Untuk versi 1.26 atau yang lebih baru,cgroupv2
adalah default untuk node baru. Tidak ada perubahan pada node yang ada. Untuk mempelajari lebih lanjut mode cgroup yang dijalankan cluster GKE Anda secara default, lihat Memeriksa mode cgroup node cluster. - Dengan versi minor 1.31, GKE menghentikan penggunaan
cgroupv1
. - Mulai versi 1.33, GKE memigrasikan cluster yang menjalankan
cgroupv1
kecgroupv2
. Anda dapat mencegah migrasi otomatis ini untuk sementara dengan menentukan secara eksplisit bahwa node pool menggunakancgroupv1
. - Dengan versi minor 1.35, GKE menghapus dukungan untuk
cgroupv1
.
Untuk mengetahui perkiraan waktu upgrade otomatis ke versi minor yang lebih baru seperti 1.31 dan 1.33, lihat Perkiraan jadwal untuk saluran rilis.
Sebelum memulai
Sebelum memulai, pastikan Anda telah melakukan tugas berikut:
- Aktifkan Google Kubernetes Engine API. Aktifkan Google Kubernetes Engine API
- Jika ingin menggunakan Google Cloud CLI untuk tugas ini,
instal lalu
lakukan inisialisasi
gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan
gcloud components update
.
Periksa mode cgroup node cluster
Mode cgroup default bergantung pada jenis cluster atau node pool, dan
versinya. Dengan versi 1.26 atau yang lebih baru, defaultnya adalah cgroupv2
. Dengan versi 1.25 atau yang lebih lama, defaultnya adalah cgroupv1
:
- Untuk cluster Autopilot dan node pool cluster Standard baru yang dibuat dengan penyediaan otomatis node, mode cgroup didasarkan pada versi cluster awal. Anda tidak dapat menyetel mode cgroup selama pembuatan cluster Autopilot. Untuk node baru yang disediakan otomatis, Anda tidak dapat menyetel mode yang berbeda dari mode cgroup default berdasarkan versi minor.
- Untuk node pool cluster Standard yang dibuat secara manual tanpa penyediaan otomatis node, mode cgroup didasarkan pada versi node pool awal, atau konfigurasi sistem node yang disesuaikan.
Untuk memeriksa mode cgroup, ikuti petunjuk berdasarkan mode cluster Anda.
Autopilot
Jalankan perintah berikut:
gcloud container clusters describe CLUSTER_NAME \
--format='value(nodePools[0].config.effectiveCgroupMode)'
Ganti CLUSTER_NAME
dengan nama cluster Anda.
Jika outputnya adalah EFFECTIVE_CGROUP_MODE_V2
, cluster berjalan di cgroupv2
.
Jika outputnya adalah EFFECTIVE_CGROUP_MODE_V1
, cluster berjalan di cgroupv1
.
Cluster GKE Autopilot yang awalnya dibuat dengan
GKE versi 1.25 atau yang lebih lama menjalankan cgroupv1
hingga Anda memigrasikannya.
Standar
Dengan cluster GKE Standard, mode cgroup ditetapkan di level node pool. Untuk memeriksa mode setiap node pool, ikuti
petunjuk untuk Memverifikasi konfigurasi
cgroup.
Jika node cluster Anda sudah menggunakan cgroupv2
, Anda tidak perlu melakukan tindakan lebih lanjut.
Memigrasikan node ke cgroupv2
Sebaiknya migrasikan node yang ada sebelum GKE memigrasikannya secara otomatis di versi 1.33 atau yang lebih baru.
Lakukan langkah-langkah berikut untuk memigrasikan node yang menjalankan cgroupv1
:
- Periksa mode cgroup node. Jika node cluster Anda sudah menggunakan
cgroupv2
, Anda tidak perlu melakukan tindakan lebih lanjut. - Tinjau pertimbangan tentang migrasi, Memigrasikan ke cgroup v2, untuk memastikan workload Anda siap menggunakan API versi baru.
Migrasikan node untuk cluster Anda.
Autopilot
Tetapkan node cluster Anda secara eksplisit untuk menggunakan
cgroupv2
:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v2
Ganti
CLUSTER_NAME
dengan nama cluster Anda.Standar
Jika Anda menggunakan penyediaan otomatis node untuk cluster, jalankan perintah berikut untuk memastikan bahwa node pool yang ada dan yang akan dibuat dengan penyediaan otomatis node menggunakan
cgroupv2
:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v2
Ganti
CLUSTER_NAME
dengan nama cluster Anda.Untuk node pool yang sudah ada yang dibuat tanpa penyediaan otomatis node, perbarui node pool untuk menambahkan hal berikut ke konfigurasi sistem node:
linuxConfig: cgroupMode: 'CGROUP_MODE_V2'
Untuk mempelajari lebih lanjut, lihat Menyesuaikan konfigurasi sistem node.
Saat Anda membuat node pool baru secara manual tanpa penyediaan otomatis node, GKE akan menggunakan
cgroupv2
secara default.
Memilih tidak ikut migrasi otomatis ke cgroupv2
untuk sementara
Untuk menghindari migrasi otomatis node yang menjalankan cgroupv1
ke
cgroupv2
dengan versi minor 1.33 dan yang lebih baru untuk sementara, Anda harus menetapkan
cgroupv1
secara eksplisit. Anda juga dapat menggunakan petunjuk ini untuk kembali ke cgroupv1
untuk sementara jika memigrasikan node ke cgroupv2
menyebabkan masalah pada workload cluster Anda.
Autopilot
Jalankan perintah berikut untuk cluster yang awalnya Anda buat menggunakan
versi 1.25 atau yang lebih lama. Jika cluster Anda dibuat dengan menjalankan versi 1.26 atau yang lebih baru, Anda tidak dapat menyetel mode cgroup ke cgroupv1
.
Tetapkan node cluster Anda secara eksplisit untuk menggunakan cgroupv1
:
gcloud container clusters update CLUSTER_NAME \
--autoprovisioning-cgroup-mode=v1
Ganti CLUSTER_NAME
dengan nama cluster Anda.
Standar
Untuk terus menjalankan cgroupv1
dengan node pool cluster Standard GKE yang menjalankan versi 1.33 atau yang lebih baru, lakukan langkah-langkah berikut:
Jika Anda menggunakan penyediaan otomatis node, dan cluster Anda dibuat dengan menjalankan versi 1.25 atau yang lebih lama, gunakan perintah berikut untuk memastikan bahwa node pool yang ada dan yang akan dibuat dengan penyediaan otomatis node menggunakan
cgroupv1
. Jika cluster Anda dibuat dengan menjalankan versi 1.26 atau yang lebih baru, Anda tidak dapat menyetel mode cgroup kecgroupv1
:gcloud container clusters update CLUSTER_NAME \ --autoprovisioning-cgroup-mode=v1
Ganti
CLUSTER_NAME
dengan nama cluster Anda.Untuk node pool Standard yang ada, perbarui node pool untuk menambahkan hal berikut ke konfigurasi sistem node:
linuxConfig: cgroupMode: 'CGROUP_MODE_V1'
Anda juga harus menetapkan konfigurasi node ini untuk node pool baru yang Anda buat secara manual tanpa penyediaan otomatis node.
Untuk mempelajari lebih lanjut, lihat Menyesuaikan konfigurasi sistem node.