Mengelola node pool

Node pool adalah sekelompok node dalam cluster Kubernetes yang semuanya memiliki konfigurasi yang sama. Node pool menggunakan spesifikasi NodePool. Setiap node dalam kumpulan memiliki label node Kubernetes, yang memiliki nama node pool sebagai nilainya. Secara default, semua node pool baru menjalankan versi Kubernetes yang sama dengan bidang kontrol.

Saat Anda membuat cluster Kubernetes, jumlah node dan jenis node yang Anda tentukan akan membuat node pool pertama dari cluster tersebut. Anda dapat menambahkan node pool tambahan dengan berbagai ukuran dan jenis ke cluster Anda. Semua node dalam node pool tertentu identik satu sama lain.

Kumpulan node kustom berguna saat menjadwalkan pod yang memerlukan lebih banyak resource daripada yang lain, seperti lebih banyak memori atau ruang disk lokal. Anda dapat menggunakan taint node jika memerlukan kontrol lebih besar terkait penjadwalan pod.

Anda dapat membuat dan menghapus node pool satu per satu tanpa memengaruhi seluruh cluster. Anda tidak dapat mengonfigurasi satu node di node pool. Setiap perubahan konfigurasi memengaruhi semua node di node pool.

Anda dapat mengubah ukuran node pool dalam cluster dengan menaikkan atau menurunkan skala pool. Pengecilan skala node pool adalah proses otomatis saat Anda mengurangi ukuran pool dan sistem GDC secara otomatis menguras dan mengeluarkan node arbitrer. Anda tidak dapat memilih node tertentu untuk dihapus saat mengecilkan skala kumpulan node.

Sebelum memulai

Untuk melihat dan mengelola node pool di cluster Kubernetes, Anda harus memiliki peran berikut:

  • User Cluster Admin (user-cluster-admin)
  • User Cluster Node Viewer (user-cluster-node-viewer)

Peran ini tidak terikat ke namespace.

Menambahkan node pool

Saat membuat cluster Kubernetes dari konsol GDC, Anda dapat menyesuaikan node pool default dan membuat node pool tambahan sebelum pembuatan cluster diinisialisasi. Jika Anda harus menambahkan node pool ke cluster Kubernetes yang ada, selesaikan langkah-langkah berikut:

Konsol

  1. Di menu navigasi, pilih Kubernetes Engine > Clusters.
  2. Klik cluster dari daftar cluster. Halaman Cluster details akan ditampilkan.
  3. Pilih Node pools > Add node pool.
  4. Tetapkan nama untuk kumpulan node. Anda tidak dapat mengubah nama setelah membuat node pool.
  5. Tentukan jumlah node pekerja yang akan dibuat di node pool.
  6. Pilih kelas mesin yang paling sesuai dengan persyaratan workload Anda. Class komputer ditampilkan di setelan berikut:
    • Jenis mesin
    • vCPU
    • Memori
  7. Klik Simpan.

API

  1. Buka spesifikasi resource kustom Cluster dengan kubectl CLI menggunakan editor interaktif:

    kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME -n platform \
        --kubeconfig MANAGEMENT_API_SERVER
    

    Ganti kode berikut:

    • KUBERNETES_CLUSTER_NAME: Nama cluster.
    • MANAGEMENT_API_SERVER: Jalur kubeconfig server API zonal tempat cluster Kubernetes dihosting. Jika Anda belum membuat file kubeconfig untuk server API di zona target, lihat Login untuk mengetahui detailnya.
  2. Tambahkan entri baru di bagian nodePools:

    nodePools:
    ...
    - machineTypeName: MACHINE_TYPE
      name: NODE_POOL_NAME
      nodeCount: NUMBER_OF_WORKER_NODES
      taints: TAINTS
      labels: LABELS
      acceleratorOptions:
        gpuPartitionScheme: GPU_PARTITION_SCHEME
    

    Ganti kode berikut:

    • MACHINE_TYPE: Jenis mesin untuk node pekerja node pool. Lihat jenis mesin yang tersedia untuk mengetahui konfigurasi yang tersedia.
    • NODE_POOL_NAME: Nama node pool.
    • NUMBER_OF_WORKER_NODES: Jumlah node pekerja yang akan disediakan di node pool.
    • TAINTS: Taint yang akan diterapkan ke node di node pool ini. Kolom ini bersifat opsional.
    • LABELS: Label yang akan diterapkan ke node node pool ini. Objek ini berisi daftar key-value pair. Kolom ini bersifat opsional.
    • GPU_PARTITION_SCHEME: Skema partisi GPU, jika Anda menjalankan beban kerja GPU. Contoh, mixed-2. GPU tidak dipartisi jika kolom ini tidak ditetapkan. Untuk mengetahui profil GPU Multi-Instance (MIG) yang tersedia, lihat Profil MIG yang didukung.
  3. Simpan file dan keluar dari editor.

Melihat node pool

Untuk melihat node pool yang ada di cluster Kubernetes, selesaikan langkah-langkah berikut:

Konsol

  1. Di menu navigasi, pilih Kubernetes Engine > Clusters.
  2. Klik cluster dari daftar cluster. Halaman Cluster details akan ditampilkan.
  3. Pilih Node pools.

Daftar node pool yang berjalan di cluster akan ditampilkan. Anda dapat mengelola node pool cluster dari halaman ini.

API

  • Melihat kumpulan node dari cluster Kubernetes tertentu:

    kubectl get clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME -n platform \
        -o json --kubeconfig MANAGEMENT_API_SERVER | \
        jq .status.workerNodePoolStatuses
    

    Outputnya mirip dengan hal berikut ini:

    [
      {
        "conditions": [
          {
            "lastTransitionTime": "2023-08-31T22:16:17Z",
            "message": "",
            "observedGeneration": 2,
            "reason": "NodepoolReady",
            "status": "True",
            "type": "Ready"
          },
          {
            "lastTransitionTime": "2023-08-31T22:16:17Z",
            "message": "",
            "observedGeneration": 2,
            "reason": "ReconciliationCompleted",
            "status": "False",
            "type": "Reconciling"
          }
        ],
        "name": "worker-node-pool",
        "readyNodes": 3,
        "readyTimestamp": "2023-08-31T18:59:46Z",
        "reconcilingNodes": 0,
        "stalledNodes": 0,
        "unknownNodes": 0
      }
    ]
    

Menghapus node pool

Menghapus node pool akan menghapus node dan rute ke node tersebut. Node ini mengeluarkan dan menjadwalkan ulang semua pod yang berjalan di node tersebut. Jika pod memiliki pemilih node tertentu, pod mungkin tetap berada dalam kondisi yang tidak dapat dijadwalkan jika tidak ada node lain dalam cluster yang memenuhi kriteria.

Pastikan Anda memiliki setidaknya tiga node pekerja sebelum menghapus node pool untuk memastikan cluster Anda memiliki ruang komputasi yang cukup untuk berjalan secara efektif.

Untuk menghapus node pool, selesaikan langkah-langkah berikut:

Konsol

  1. Di menu navigasi, pilih Kubernetes Engine > Clusters.

  2. Klik cluster yang menghosting kumpulan node yang ingin Anda hapus.

  3. Pilih Node pools.

  4. Klik Hapus di samping node pool yang akan dihapus.

API

  1. Buka spesifikasi resource kustom Cluster dengan kubectl CLI menggunakan editor interaktif:

    kubectl edit clusters.cluster.gdc.goog/KUBERNETES_CLUSTER_NAME -n platform \
          --kubeconfig MANAGEMENT_API_SERVER
    

    Ganti kode berikut:

    • KUBERNETES_CLUSTER_NAME: Nama cluster.
    • MANAGEMENT_API_SERVER: Jalur kubeconfig server API zonal tempat cluster Kubernetes dihosting. Jika Anda belum membuat file kubeconfig untuk server API di zona target, lihat Login untuk mengetahui detailnya.
  2. Hapus entri kumpulan node dari bagian nodePools. Misalnya, dalam cuplikan berikut, Anda harus menghapus kolom machineTypeName, name, dan nodeCount:

    nodePools:
    ...
    - machineTypeName: n2-standard-2-gdc
      name: nodepool-1
      nodeCount: 3
    

    Pastikan untuk menghapus semua kolom untuk node pool yang Anda hapus.

  3. Simpan file dan keluar dari editor.