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 pengguna, 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 mengelola kumpulan node di cluster pengguna, Anda harus memiliki peran Admin Cluster Pengguna (peran user-cluster-admin).

Menambahkan node pool

Saat membuat cluster pengguna 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 pengguna yang sudah ada, selesaikan langkah-langkah berikut:

Konsol

  1. Di menu navigasi, pilih Clusters.
  2. Klik cluster dari daftar cluster. Halaman Cluster details akan ditampilkan.
  3. Pilih Node pool > Tambahkan 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. Opsional: Tambahkan label key-value pair Kubernetes untuk mengatur resource node pool Anda.
  8. Klik Simpan.

API

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

    kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    Ganti kode berikut:

    • USER_CLUSTER_NAME: Nama cluster pengguna.
    • ADMIN_CLUSTER_KUBECONFIG: Jalur file kubeconfig cluster admin.
  2. Tambahkan entri baru di bagian nodePools:

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

    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.
  3. Simpan file dan keluar dari editor.

Melihat node pool

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

Konsol

  1. Di menu navigasi, pilih 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 kumpulan node cluster dari halaman ini.

API

  • Melihat node pool cluster pengguna tertentu:

    kubectl get clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \
        -o json --kubeconfig ADMIN_CLUSTER_KUBECONFIG | \
        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 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/USER_CLUSTER_NAME -n platform \
          --kubeconfig ADMIN_CLUSTER_KUBECONFIG
    

    Ganti kode berikut:

    • USER_CLUSTER_NAME: Nama cluster pengguna.
    • ADMIN_CLUSTER_KUBECONFIG: Jalur file kubeconfig cluster admin.
  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.

Jenis mesin node pekerja

Saat membuat cluster pengguna di perangkat air gap Google Distributed Cloud (GDC), Anda membuat pool node yang bertanggung jawab untuk menjalankan beban kerja container di cluster. Anda menyediakan node berdasarkan persyaratan workload container, dan dapat memperbaruinya seiring berkembangnya persyaratan Anda.

GDC menyediakan jenis mesin yang telah ditentukan untuk node worker yang dapat dipilih saat Anda menambahkan node pool.

Jenis mesin yang tersedia

GDC menentukan jenis mesin dengan beberapa parameter untuk node cluster pengguna, yang mencakup CPU, memori, dan GPU. GDC memiliki berbagai jenis mesin untuk berbagai tujuan. Misalnya, cluster pengguna menggunakan n2-standard-2-gdc untuk beban kerja container tujuan umum. Anda juga dapat menemukan jenis mesin untuk tujuan yang dioptimalkan untuk memori, seperti n2-highcpu-8-gdc. Jika berencana menjalankan container deep learning, Anda harus menyediakan mesin GPU, seperti a2-highgpu-1g-gdc.

Berikut adalah daftar semua jenis mesin bawaan GDC yang tersedia untuk worker node cluster pengguna:

Nama vCPU Memori Jumlah GPU
n2-standard-2-gdc 2 8G T/A
n2-standard-4-gdc 4 16G T/A
n2-highmem-4-gdc 4 32G T/A
n2-highcpu-8-gdc 8 8G T/A
n2-standard-8-gdc 8 32G T/A
n2-highmem-8-gdc 8 64G T/A
a2-highgpu-1g-gdc 12 85G 1
a2-ultragpu-1g-gdc 12 170G 1