全部产品
Search
文档中心

Container Service for Kubernetes:Proses inisialisasi node ACK

更新时间:Dec 10, 2025

Container Service for Kubernetes (ACK) menyediakan manajemen node yang stabil, efisien, dan dapat diprediksi. Saat Anda membuat node baru atau melakukan penskalaan keluar pada kelompok node yang ada, ACK mengikuti proses inisialisasi standar dengan menginstal dan mengonfigurasi perangkat lunak sesuai konfigurasi kelompok node, lalu menambahkan node tersebut ke kluster Kubernetes.

Catatan penggunaan

Proses ini berlaku untuk kelompok node Elastic Compute Service (ECS) dan Elastic GPU Service (EGS) di kluster ACK yang dikelola dan kluster khusus ACK yang menjalankan Kubernetes versi 1.20 atau lebih baru.

Ikhtisar proses

Langkah 1: Buat node

Setelah menerima permintaan penskalaan keluar atau penambahan node secara otomatis, ACK membuat instans ECS atau EGS berdasarkan konfigurasi kelompok node, seperti tipe instans, citra, dan disk. Sistem operasi kemudian melakukan inisialisasi dasar, seperti mengonfigurasi jaringan dan memasang sistem disk.

Selanjutnya, Cloud-init menjalankan skrip User Data. Skrip ini terdiri dari Pre-defined Custom Data, skrip inisialisasi ACK, dan User Data.

Langkah 2: Jalankan skrip pra-kustomisasi

Cloud-init pertama-tama menjalankan Pre-defined Custom Data. Skrip ini biasanya menginstal paket dependensi sistem tertentu atau agen pemantauan, serta melakukan pemeriksaan atau konfigurasi lingkungan awal.

Langkah 3: Jalankan skrip inisialisasi ACK

Tahap ini mencakup beberapa langkah dan menyediakan mekanisme skip fleksibel untuk berbagai kasus penggunaan.

3.1 Siapkan lingkungan dasar

Langkah ini mengonfigurasi lingkungan dasar yang diperlukan untuk Kubernetes pada node.

Alur eksekusi

  • Jalankan layanan chronyd: Ini memastikan waktu node disinkronkan dengan server Network Time Protocol (NTP).

  • Tetapkan Node ID dan hostname.

    • Node ID: Menghitung dan menetapkan ID node dalam kluster Kubernetes.

    • Hostname: Jika Custom Node Name dikonfigurasi untuk kelompok node, nama tersebut juga ditetapkan sebagai hostname node.

  • Inisialisasi data disk: Jika data disk dikonfigurasi untuk kelompok node, secara default sistem akan mencari data disk terakhir dalam urutan leksikografis (disk NVMe diprioritaskan), memformatnya, lalu memasangnya. Disk ini digunakan untuk menyimpan lingkungan runtime kontainer, seperti direktori kerja containerd di /var/lib/containerd.

Mekanisme skip

  • Untuk mengelola partisi dan sistem file data disk secara manual, atau menggunakan data disk yang sudah berisi data historis, buat file /var/.skip-auto-fdisk dalam pre-defined custom data agar melewati pemformatan otomatis.

  • Jika Anda tidak melewati pemformatan otomatis tetapi ingin menyimpan dan memigrasikan data dari direktori runtime asli (seperti cache gambar), buat file /var/.keep-container-data. Setelah data disk dipasang, sistem akan menyalin data yang ada ke direktori baru. Hal ini mencegah sistem menarik ulang gambar-gambar tersebut.

3.2 Instal add-on Kubernetes

Langkah ini menginstal add-on inti yang diperlukan untuk menjalankan Kubernetes.

3.3 Instal add-on sesuai kebutuhan

ACK menginstal add-on opsional berdasarkan konfigurasi kelompok node.

  • Instal driver perangkat keras heterogen dan device plugin: Jika node merupakan instans komputasi heterogen, seperti instans GPU atau NPU, sistem secara otomatis menginstal driver yang sesuai dan device plugin Kubernetes, seperti NVIDIA Device Plugin. Hal ini memungkinkan kluster mendeteksi dan menjadwalkan sumber daya tersebut.

  • Instal perangkat lunak akselerasi citra: Jika fitur seperti Gunakan pemuatan on-demand gambar kontainer untuk mempercepat startup kontainer diaktifkan, sistem menginstal perangkat lunak akselerasi terkait dan memodifikasi konfigurasi runtime kontainer. Hal ini meningkatkan kecepatan startup kontainer.

  • Instal perangkat lunak terkait SGX: Jika komputasi rahasia berbasis TEE diaktifkan, sistem menginstal driver Software Guard Extensions (SGX) dan dependensi terkait. Hal ini menyediakan lingkungan eksekusi tepercaya untuk menjalankan kontainer rahasia.

3.4 Daftarkan kluster

Setelah add-on inti diinstal, kubelet dijalankan dan mendaftar ke API server kluster. Selanjutnya, node tersebut secara resmi ditambahkan ke kluster dengan status awal NotReady.

3.5 Instal perangkat lunak dasar tambahan

Untuk memastikan stabilitas dan keamanan node, ACK secara default menginstal paket perangkat lunak dasar tambahan dan melakukan pembaruan keamanan.

Alur eksekusi

  • Instal toolkit dasar: Menginstal tool umum seperti pigz, container-selinux, dan zlib untuk fitur lanjutan seperti penyimpanan dan jaringan.

  • Pembaruan keamanan (hanya untuk Alibaba Cloud Linux):

    • Upgrade systemd jika diperlukan: Versi systemd mungkin ditingkatkan untuk memastikan stabilitas dan fungsionalitas.

    • Lakukan perbaikan kerentanan keamanan minimal: Secara otomatis memperbaiki Common Vulnerabilities and Exposures (CVE) dengan menjalankan yum update-minimal --exclude kernel* --security -y.

Mekanisme Peloncatan

  • Buat file /var/.skip-yum untuk sepenuhnya melewati langkah ini, termasuk perbaikan CVE. Ini berguna untuk lingkungan offline atau kasus penggunaan yang memerlukan pengendalian versi ketat.

  • Buat file /var/.skip-security-fix untuk hanya melewati perbaikan kerentanan CVE. Toolkit dasar tetap diinstal.

3.6 Terapkan konfigurasi OS kelompok node

Setelah semua perangkat lunak diinstal dan diperbarui, sistem menerapkan ulang konfigurasi OS kelompok node untuk memastikan bahwa semua pengaturan berlaku di lingkungan akhir. Untuk informasi selengkapnya, lihat Kelola parameter OS untuk kelompok node.

3.7 Aktifkan penguatan keamanan sesuai kebutuhan

Berdasarkan fitur Security Hardening yang dikonfigurasi untuk kelompok node (seperti Penguatan Keamanan OS), sistem menjalankan skrip yang sesuai. Skrip ini memperkuat parameter kernel dan membatasi izin sistem untuk memenuhi standar keamanan perusahaan.

Langkah 4: Jalankan skrip kustom

Pada tahap ini, skrip kustom (disediakan sebagai User Data) dieksekusi. Skrip ini umumnya digunakan untuk melakukan tugas inisialisasi tingkat aplikasi, seperti membuat direktori data aplikasi atau menjalankan layanan pembantu non-kontainer.

Alur eksekusi paralel

Perubahan status (dari  NotReady ke Ready)

Setelah node ditambahkan ke kluster dan berada dalam status NotReady, kubelet-nya terus-menerus berkomunikasi dengan lapisan kontrol. Ketika add-on utama pada node siap dan node lulus semua pemeriksaan kesehatan, statusnya secara otomatis berubah menjadi Ready. Penjadwal Kubernetes kemudian menganggap node tersebut sebagai resource yang tersedia dan mulai menjadwalkan Pod di atasnya.

Penjelasan mekanisme paralel

Perubahan status node dan eksekusi User Data merupakan tugas paralel.

  • Non-blocking: Eksekusi User Data bersifat independen terhadap transisi node ke status Ready. Artinya, hasil eksekusi skrip (sukses, gagal, atau durasi) tidak mencegah node menjadi Ready.

  • Waktu eksekusi: Kedua proses berjalan secara paralel. Anda tidak dapat mengasumsikan bahwa Pod aplikasi sedang berjalan di node saat skrip User Data selesai. Sebaliknya, Anda juga tidak dapat mengasumsikan bahwa skrip telah selesai saat Pod mulai berjalan di node.

  • Pelacakan log: Untuk memeriksa status eksekusi skrip kustom, login ke node dan jalankan perintah cat /var/log/cloud-init-output.log untuk melihat log eksekusi dan status akhirnya.