All Products
Search
Document Center

Container Service for Kubernetes:Migrasi node ke cgroup v2

Last Updated:Jun 16, 2026

cgroup v2 menyatukan pengendalian resource, meningkatkan penanganan memori, dan memastikan kompatibilitas dengan Kubernetes.

Versi cgroup

Kernel Linux menyediakan cgroup v1 dan cgroup v2 untuk membatasi, mencatat, dan mengisolasi resource fisik (seperti CPU, memori, dan I/O) bagi kelompok proses. cgroup v2 menyelesaikan masalah hierarki ganda pada v1 melalui model pengendali terpadu. Antarmuka filesystem-nya tidak kompatibel, sehingga aplikasi yang mengakses cgroupfs secara langsung harus diperbarui.

Lihat Perbedaan antara cgroup v1 dan cgroup v2.

Kubernetes v1.31 memindahkan dukungan cgroup v1 ke mode maintenance, dan v1.35 menghentikan dukungannya. Keunggulan utama cgroup v2:

  • Stabilitas lebih baik: Pencatatan memori terpadu mengelola page cache secara efektif, mengatasi masalah pada cgroup v1 di mana aplikasi dengan I/O disk tinggi mendahului alokasi memori dan menyebabkan event OOMKilled.

  • Hierarki terpadu: Semua pengendali resource (seperti CPU dan memori) berbagi satu hierarki tunggal, menghilangkan konflik konfigurasi akibat hierarki paralel pada cgroup v1.

  • Observabilitas resource yang ditingkatkan: Pressure Stall Information (PSI) mengukur waktu terhenti pada CPU, memori, atau I/O, memberikan metrik detail halus untuk analisis bottleneck.

Periksa versi cgroup

Masuk ke node dan jalankan perintah berikut untuk memeriksa versi cgroup-nya.

# Jalankan perintah ini setelah masuk ke node target
stat -fc %T /sys/fs/cgroup/

# Expected output:
# cgroup2fs  --> Menunjukkan cgroup v2
# tmpfs      --> Menunjukkan cgroup v1

Prosedur migrasi

Tingkat node: Ubah sistem operasi

Versi cgroup suatu node ditentukan oleh sistem operasinya.

  • Kelompok node ECS (termasuk EGS):

    Ubah sistem operasi di tingkat kelompok node. Sistem operasi berikut menggunakan cgroup v2 secara default:

    • Alibaba Cloud Linux 3.2104 LTS 64-bit container-optimized

    • Alibaba Cloud Linux 4 LTS 64-bit container-optimized

    • ContainerOS 3.3 dan versi lebih baru

    • RHEL 9 dan versi lebih baru

    • Ubuntu 22 dan versi lebih baru

  • Kelompok node Lingjun

    Instal ulang node dan tambahkan kembali ke kluster:

    1. Hapus node: Hapus node Lingjun dari kluster ACK. Secara opsional lakukan Drain sebelum penghapusan.

      Drain node memerlukan node lain dengan resource yang cukup untuk menampung Pod yang dievakuasi. Pastikan kluster memiliki kapasitas yang memadai.
    2. Instal ulang OS: Di Konsol Lingjun, instal ulang node dengan citra OS yang mendukung cgroup v2.

    3. Tambahkan kembali ke kluster: Tambahkan kembali node Lingjun ke kluster ACK.

  • Kelompok node cloud hibrida

    Anda mengelola OS-nya sendiri. Lakukan upgrade ke OS yang kompatibel dengan cgroup v2 untuk mencegah kegagalan saat melakukan upgrade atau menambahkan kembali node.

Tingkat aplikasi: Pastikan kompatibilitas workload

cgroup v1 dan v2 memiliki struktur filesystem dan nama parameter yang tidak kompatibel. Aplikasi apa pun yang membaca langsung /sys/fs/cgroup harus diverifikasi atau ditingkatkan agar kompatibel dengan cgroup v2.

Kategori

Deskripsi

Aplikasi Java

  • DragonWell: 11.0.16.12, 8.15.16-GA, dan versi lebih baru.

  • OpenJDK/HotSpot: jdk8u372, 11.0.16, 15, dan versi lebih baru.

  • IBM Semeru Runtimes: 8.0.382.0, 11.0.20.0, 17.0.8.0, dan versi lebih baru.

  • IBM Java: 8.0.8.6 dan versi lebih baru.

Aplikasi Go

Jika Anda menggunakan uber-go/automaxprocs, lakukan upgrade ke v1.5.1 atau versi lebih baru.

cAdvisor

Jika Anda men-deploy cAdvisor sebagai DaemonSet mandiri, perbarui ke v0.43.0 atau versi lebih baru.

Nginx Ingress

Versi lama dapat memicu error OOMKilled karena penguraian jumlah core CPU yang salah di cgroup v2. Lakukan upgrade ke v1.11.2 atau versi lebih baru. Lihat GitHub Issue #9665.

Untuk melakukan upgrade Nginx Ingress Controller di ACK, lihat Upgrade komponen Nginx Ingress Controller.
Aplikasi dan komponen lainnya
  • Agen monitoring dan APM pihak ketiga: Alat seperti Prometheus Node Exporter, Datadog Agent, dan SkyWalking membaca cgroupfs untuk metrik. Versi yang tidak kompatibel dapat menyebabkan kehilangan data atau anomali. Lakukan upgrade ke versi yang mendukung cgroup v2.

  • Alat keamanan dan auditing: Alat seperti Falco dan Sysdig menggunakan data cgroup untuk mengatribusikan event. Versi yang tidak kompatibel dapat menyebabkan kegagalan aturan deteksi atau false positive. Lakukan upgrade ke versi yang kompatibel dan verifikasi aturan di lingkungan pengujian.

  • Aplikasi sensitif performa dan skrip kustom: Skrip startup yang membaca file cgroup untuk auto-tuning (misalnya mengatur jumlah thread berdasarkan kuota CPU) akan gagal di bawah cgroup v2 karena perubahan path. Tinjau dan perbarui skrip tersebut agar kompatibel dengan cgroup v2.

Rekomendasi produksi