Menambahkan dan mengelola node pool


Halaman ini menunjukkan cara menambahkan dan menjalankan operasi pada node pool yang menjalankan cluster Google Kubernetes Engine (GKE). Untuk mempelajari cara kerja kumpulan node, lihat Tentang kumpulan node.

Cluster dapat menjalankan operasi, seperti penyediaan otomatis node, pada beberapa kumpulan node secara paralel. Anda dapat membuat, memperbarui, atau menghapus kumpulan node secara manual saat kumpulan node lain sedang dibuat, diperbarui, atau dihapus.

Sebelum memulai

Sebelum memulai, pastikan Anda telah menjalankan tugas berikut:

  • Aktifkan Google Kubernetes Engine API.
  • Aktifkan Google Kubernetes Engine API
  • Jika ingin menggunakan Google Cloud CLI untuk tugas ini, instal lalu initialize gcloud CLI. Jika sebelumnya Anda telah menginstal gcloud CLI, dapatkan versi terbaru dengan menjalankan gcloud components update.

Menambahkan node pool

Anda dapat menambahkan node pool baru ke cluster GKE Standar menggunakan gcloud CLI atau Konsol Google Cloud. GKE juga mendukung penyediaan otomatis node, yang secara otomatis mengelola node pool di cluster Anda berdasarkan persyaratan penskalaan.

Sebagai praktik terbaik untuk kedua kasus tersebut, sebaiknya buat dan gunakan akun layanan Identity and Access Management (IAM) dengan hak istimewa minimal untuk node pool Anda, bukan akun layanan default Compute Engine. Untuk mengetahui petunjuk cara membuat akun layanan dengan hak istimewa minimal, lihat Meningkatkan keamanan cluster.

gcloud

Untuk membuat node pool, jalankan perintah gcloud container node-pools create:

gcloud container node-pools create POOL_NAME \
    --cluster CLUSTER_NAME \
    --service-account SERVICE_ACCOUNT

Ganti kode berikut:

  • POOL_NAME: nama node pool baru.
  • CLUSTER_NAME: nama cluster yang ada.
  • SERVICE_ACCOUNT: nama akun layanan IAM yang akan digunakan oleh node Anda. Jika dihilangkan, node pool akan menggunakan akun layanan default Compute Engine.
  • Untuk menyediakan node melalui alamat IP pribadi, tambahkan flag --enable-private-nodes. Anda dapat menggunakan tanda ini di cluster publik yang menggunakan Private Service Connect. Untuk memeriksa apakah cluster Anda menggunakan Private Service Connect, lihat Cluster publik dengan Private Service Connect.

Untuk daftar lengkap flag opsional yang dapat Anda tentukan, lihat dokumentasi gcloud container node-pools create.

Outputnya mirip dengan hal berikut ini:

Creating node pool POOL_NAME...done.
Created [https://container.googleapis.com/v1/projects/PROJECT_ID/zones/us-central1/clusters/CLUSTER_NAME/nodePools/POOL_NAME].
NAME: POOL_NAME
MACHINE_TYPE: e2-medium
DISK_SIZE_GB: 100
NODE_VERSION: 1.21.5-gke.1302

Dalam output ini, Anda akan melihat detail tentang node pool, seperti jenis mesin dan versi GKE yang berjalan di node.

Terkadang, node pool berhasil dibuat, tetapi waktu tunggu perintah gcloud akan habis, alih-alih melaporkan status dari server. Untuk memeriksa status semua node pool, termasuk yang belum sepenuhnya disediakan, gunakan perintah berikut:

gcloud container node-pools list --cluster CLUSTER_NAME

Konsol

Untuk menambahkan node pool ke cluster yang ada, lakukan langkah-langkah berikut:

  1. Buka halaman Google Kubernetes Engine di Konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Di daftar cluster, klik nama cluster yang ingin diubah.

  3. Klik Add node pool.

  4. Konfigurasikan node pool Anda.

  5. Di menu navigasi, klik Security.

  6. Di menu drop-down Service account, pilih akun layanan IAM untuk node pool Anda yang akan digunakan. Secara default, node pool menggunakan akun layanan default Compute Engine.

  7. Klik Create untuk menambahkan node pool.

Melihat node pool di cluster

gcloud

Untuk menampilkan daftar semua node pool cluster, jalankan perintah gcloud container node-pools list:

gcloud container node-pools list --cluster CLUSTER_NAME

Untuk melihat detail tentang node pool tertentu, jalankan perintah gcloud container node-pools describe:

gcloud container node-pools describe POOL_NAME \
    --cluster CLUSTER_NAME

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster.
  • POOL_NAME: nama node pool yang akan dilihat.

Konsol

Untuk melihat node pool cluster, lakukan langkah-langkah berikut:

  1. Buka halaman Google Kubernetes Engine di Konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Di daftar cluster, klik nama cluster.

  3. Klik tab Nodes.

  4. Di bagian Node Pools, klik nama node pool yang ingin Anda lihat.

Menskalakan kumpulan node

Anda dapat meningkatkan atau menurunkan skala kumpulan node tersebut untuk mengoptimalkan performa dan biaya. Dengan kumpulan node GKE Standard, Anda dapat menskalakan kumpulan node secara horizontal dengan mengubah jumlah node di kumpulan node, atau menskalakan kumpulan node secara vertikal dengan mengubah konfigurasi atribut mesin node.

Skalakan secara horizontal dengan mengubah jumlah node

gcloud

Untuk mengubah ukuran node pool cluster, jalankan perintah gcloud container clusters resize:

gcloud container clusters resize CLUSTER_NAME \
    --node-pool POOL_NAME \
    --num-nodes NUM_NODES

Ganti kode berikut:

  • CLUSTER_NAME: nama cluster yang akan diubah ukurannya.
  • POOL_NAME: nama node pool yang akan diubah ukurannya.
  • NUM_NODES: jumlah node dalam kumpulan di cluster zona. Jika Anda menggunakan cluster multi-zona atau regional, NUM_NODES adalah jumlah node untuk setiap zona tempat node pool berada.

Ulangi perintah ini untuk setiap node pool. Jika cluster Anda hanya memiliki satu node pool, hapus flag --node-pool.

Konsol

Untuk mengubah ukuran node pool cluster, lakukan langkah-langkah berikut:

  1. Buka halaman Google Kubernetes Engine di Konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Di daftar cluster, klik nama cluster yang ingin diubah.

  3. Klik tab Nodes.

  4. Di bagian Node Pools, klik nama node pool yang ingin Anda ubah ukurannya.

  5. Klik Resize.

  6. Di kolom Node Pools, masukkan jumlah node yang Anda inginkan dalam node pool, lalu klik Resize.

  7. Ulangi untuk setiap node pool sesuai kebutuhan.

Skalakan secara vertikal dengan mengubah atribut mesin node

Anda dapat mengubah jenis mesin, jenis disk, dan ukuran disk yang dikonfigurasi kumpulan node.

Saat Anda mengedit satu atau beberapa atribut mesin ini, GKE akan memperbarui node ke konfigurasi baru menggunakan strategi upgrade yang dikonfigurasi untuk kumpulan node. Jika mengonfigurasi strategi upgrade blue-green, Anda dapat memigrasikan workload dari node asli ke node baru sambil melakukan roll back node asli jika migrasi gagal. Periksa setelan upgrade kumpulan node untuk memastikan strategi yang dikonfigurasi sesuai dengan keinginan Anda untuk mengupdate node.

Perbarui setidaknya satu atribut mesin yang ditandai dalam perintah berikut:

gcloud container node-pools update POOL_NAME \
    --cluster CLUSTER_NAME \
    --machine-type MACHINE_TYPE \
    --disk-type DISK_TYPE \
    --disk-size DISK_SIZE

Hapus tanda untuk atribut mesin yang tidak ingin diubah. Namun, Anda harus menggunakan minimal satu flag atribut mesin, karena perintah akan gagal.

Ganti kode berikut:

  • POOL_NAME: nama node pool yang akan diubah ukurannya.
  • CLUSTER_NAME: nama cluster yang akan diubah ukurannya.
  • MACHINE_TYPE: jenis mesin yang digunakan untuk node. Untuk mempelajari lebih lanjut, lihat gcloud container node-pools update.
  • DISK_TYPE: jenis boot disk VM node, harus berupa salah satu dari pd-standard, pd-ssd, pd-balanced.
  • DISK_SIZE: ukuran untuk boot disk VM node dalam GB. Default-nya adalah 100 GB.

Mengupgrade node pool

Secara default, node cluster mengaktifkan upgrade otomatis, dan sebaiknya Anda tidak menonaktifkannya. Upgrade otomatis node memastikan bidang kontrol dan versi node cluster Anda tetap sinkron dan sesuai dengan kebijakan kemiringan versi Kubernetes, yang memastikan bahwa bidang kontrol kompatibel dengan node hingga dua versi minor yang lebih lama dari bidang kontrol. Misalnya, bidang kontrol Kubernetes 1.29 kompatibel dengan node Kubernetes 1.27.

Dengan upgrade node pool GKE, Anda dapat memilih antara dua strategi upgrade yang dapat dikonfigurasi, yaitu upgrade lonjakan dan upgrade blue-green.

Pilih strategi dan gunakan parameter untuk mengatur strategi agar sesuai dengan kebutuhan lingkungan cluster Anda.

Saat node sedang diupgrade, GKE berhenti menjadwalkan Pod baru pada node tersebut, dan mencoba menjadwalkan Pod yang berjalan ke node lain. Hal ini serupa dengan peristiwa lain yang membuat ulang node, seperti mengaktifkan atau menonaktifkan fitur pada node pool.

Upgrade hanya akan selesai jika semua node telah dibuat ulang dan cluster dalam status yang diinginkan. Saat node yang baru diupgrade didaftarkan dengan panel kontrol, GKE akan menandai node tersebut sebagai dapat dijadwalkan.

Instance node baru menjalankan versi Kubernetes yang diinginkan serta:

Mengupgrade node pool secara manual

Anda dapat mengupgrade versi kumpulan node secara manual agar sesuai dengan versi bidang kontrol atau ke versi sebelumnya yang masih tersedia dan kompatibel dengan bidang kontrol. Anda dapat mengupgrade beberapa node pool secara paralel, sedangkan GKE secara otomatis hanya mengupgrade satu kumpulan node dalam satu waktu.

Saat Anda mengupgrade node pool secara manual, GKE akan menghapus label yang Anda tambahkan ke setiap node menggunakan kubectl. Untuk menghindari hal ini, terapkan label ke node pool.

Anda dapat mengupgrade node pool secara manual ke versi yang kompatibel dengan panel kontrol, menggunakan Konsol Google Cloud atau Google Cloud CLI.

gcloud

Variabel berikut digunakan dalam perintah di bagian ini:

  • CLUSTER_NAME: nama cluster node pool yang akan diupgrade.
  • NODE_POOL_NAME: nama node pool yang akan diupgrade.
  • VERSION: versi Kubernetes tempat node diupgrade. Misalnya, --cluster-version=1.7.2 atau cluster-version=latest.

Mengupgrade node pool:

gcloud container clusters upgrade CLUSTER_NAME \
  --node-pool=NODE_POOL_NAME

Untuk menentukan versi GKE yang berbeda pada node, gunakan flag --cluster-version yang bersifat opsional:

gcloud container clusters upgrade CLUSTER_NAME \
  --node-pool=NODE_POOL_NAME \
  --cluster-version VERSION

Untuk mengetahui informasi selengkapnya tentang cara menentukan versi, silakan melihat Pembuatan versi.

Untuk informasi selengkapnya, silakan melihat dokumentasi gcloud container clusters upgrade.

Konsol

Untuk mengupgrade node pool menggunakan Konsol Google Cloud, lakukan langkah-langkah berikut:

  1. Buka halaman Google Kubernetes Engine di Konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Di samping cluster yang ingin diedit, klik Actions, lalu klik Edit.

  3. Di halaman Cluster details, klik tab Nodes.

  4. Di bagian Node Pools, klik nama node pool yang ingin Anda upgrade.

  5. Klik Edit.

  6. Klik Change di bagian Node version.

  7. Pilih versi yang diinginkan dari menu drop-down Node version, lalu klik Change.

Men-deploy Pod ke node pool tertentu

Anda dapat secara eksplisit men-deploy Pod ke node pool tertentu menggunakan nodeSelector di manifes Pod. nodeSelector menjadwalkan Pod ke node dengan label yang cocok.

Semua node pool GKE memiliki label dengan format berikut: cloud.google.com/gke-nodepool: POOL_NAME. Tambahkan label ini ke kolom nodeSelector di Pod Anda seperti yang ditunjukkan pada contoh berikut:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: test
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  nodeSelector:
    cloud.google.com/gke-nodepool: POOL_NAME

Untuk informasi selengkapnya, baca bagian Menetapkan Pod ke Node.

Sebagai alternatif pemilih node, Anda dapat menggunakan afinitas node. Gunakan afinitas node jika Anda menginginkan aturan "lunak" ketika Pod mencoba memenuhi batasan, tetapi tetap dijadwalkan meskipun batasan tidak dapat dipenuhi. Untuk mengetahui informasi selengkapnya, lihat Afinitas node. Anda juga dapat menentukan permintaan resource untuk container.

Men-downgrade node pool

Anda dapat mendowngrade node pool, misalnya, untuk memitigasi upgrade node pool yang tidak berhasil. Tinjau batasan sebelum mendowngrade node pool.

  1. Tetapkan pengecualian pemeliharaan untuk cluster guna mencegah agar node pool tidak diupgrade secara otomatis oleh GKE setelah didowngrade.
  2. Untuk mendowngrade node pool, tentukan versi yang lebih lama sambil mengikuti petunjuk untuk Mengupgrade node pool secara manual.

Menghapus node pool

Menghapus kumpulan node akan menghapus node dan semua beban kerja yang berjalan, tanpa mematuhi setelan PodDisruptionBudget. Untuk mempelajari lebih lanjut pengaruhnya terhadap beban kerja Anda, termasuk interaksi dengan pemilih node, lihat Menghapus kumpulan node.

gcloud

Untuk menghapus node pool, jalankan perintah gcloud container node-pools delete:

gcloud container node-pools delete POOL_NAME \
    --cluster CLUSTER_NAME

Konsol

Untuk menghapus node pool, lakukan langkah-langkah berikut:

  1. Buka halaman Google Kubernetes Engine di Konsol Google Cloud.

    Buka Google Kubernetes Engine

  2. Di daftar cluster, klik nama cluster yang ingin diubah.

  3. Klik tab Nodes.

  4. Di bagian Node Pools, klik di samping node pool yang ingin Anda hapus.

  5. Saat diminta untuk mengonfirmasi, klik Delete.

Memecahkan masalah

Untuk mengetahui informasi pemecahan masalah, lihat Memecahkan masalah node pool Standar dan Memecahkan masalah pendaftaran node.

Langkah selanjutnya