Batas pemasangan volume persisten untuk node GKE


Dokumen ini membantu Anda memahami cara kerja batas pemasangan volume persisten untuk Persistent Disk dan Hyperdisk Compute Engine di node Google Kubernetes Engine (GKE). Untuk penjadwalan workload dan penentuan ukuran node pool yang tepat, Anda harus memahami jumlah maksimum volume persisten yang dapat dilampirkan ke node GKE. Jika Anda menginginkan kontrol yang lebih besar atas penjadwalan workload, terutama saat menggunakan beberapa jenis disk dengan batas pemasangan yang bervariasi pada satu instance, Anda dapat menggunakan label node untuk mengganti batas pemasangan default.

Dokumen ini ditujukan bagi spesialis Penyimpanan yang membuat dan mengalokasikan penyimpanan, serta administrator GKE yang mengelola penjadwalan workload dan penentuan ukuran kumpulan node. Untuk mempelajari lebih lanjut peran umum dan contoh tugas yang dirujuk dalam Google Cloud konten, lihat Peran dan tugas pengguna GKE Enterprise umum.

Ringkasan

Di GKE, saat Anda meminta PersistentVolume (PV) menggunakan driver CSI Persistent Disk Compute Engine (pd.csi.storage.gke.io), volume penyimpanan blok akan disediakan dari layanan Persistent Disk Google Cloud .

Saat Anda mengaktifkan driver CSI Persistent Disk Compute Engine (PDCSI) pada cluster GKE, driver PDCSI menghitung dan melaporkan batas pemasangan volume persisten per node ke kubelet. Berdasarkan informasi ini, penjadwal Kubernetes membuat keputusan penjadwalan untuk membantu memastikan bahwa penjadwal tidak menjadwalkan terlalu banyak Pod yang memerlukan volume persisten pada node yang telah mencapai kapasitas lampirannya. Jika driver PDCSI melaporkan batas lampiran yang tidak akurat, khususnya jumlah yang lebih tinggi dari batas sebenarnya, Pod akan gagal dijadwalkan dan terjebak dalam status Pending. Hal ini dapat terjadi pada jenis mesin generasi ketiga seperti C3, yang memiliki batas pemasangan yang berbeda untuk Hyperdisk dan Persistent Disk.

Memahami batas pemasangan volume persisten

Untuk generasi mesin yang lebih lama dari generasi keempat, driver PDCSI Compute Engine menetapkan batas pemasangan volume persisten gabungan sebanyak 128 disk (127 disk data ditambah satu disk boot) di semua jenis mesin. Batas pemasangan berlaku untuk gabungan volume Persistent Disk dan Hyperdisk. Untuk Hyperdisk, batas pemasangan ditentukan oleh jenis mesin Compute Engine yang mendasarinya, jumlah vCPU yang dimiliki mesin, dan jenis Hyperdisk tertentu.

Contoh:

  • Untuk jenis mesin generasi keempat seperti C4, driver PDCSI secara akurat melaporkan batas pemasangan default ke Kubernetes yang dihitung berdasarkan jumlah vCPU node. Batas lampiran yang dilaporkan biasanya berada dalam rentang 8-128 volume persisten.
  • Sebaliknya, untuk jenis mesin generasi ketiga seperti C3, driver PDCSI melaporkan batas pemasangan default ke Kubernetes sebagai batas tetap 128 disk, yang dapat menyebabkan kegagalan penjadwalan Pod karena batas sebenarnya dapat lebih rendah dari 128 berdasarkan jumlah vCPU.

Anda dapat mengganti batas lampiran default menggunakan label node.

Lihat referensi bermanfaat berikut dalam dokumentasi Compute Engine:

Mengganti batas pemasangan volume persisten default

Jika Anda memiliki persyaratan atau konfigurasi node tertentu yang mengharuskan Anda melampirkan sejumlah volume persisten tertentu ke node, Anda dapat mengganti batas lampiran volume persisten default untuk node pool menggunakan label node berikut: node-restriction.kubernetes.io/gke-volume-attach-limit-override: VALUE.

Anda dapat menggunakan label node ini di versi GKE berikut:

  • 1.32.4-gke.1698000 dan yang lebih baru.
  • 1.33.1-gke.1386000 dan yang lebih baru.

Kumpulan node baru

Untuk membuat node pool baru dengan batas lampiran volume persisten tertentu, jalankan perintah berikut:

gcloud container node-pools create NODE_POOL_NAME \
    --cluster=CLUSTER_NAME \
    --node-labels=node-restriction.kubernetes.io/gke-volume-attach-limit-override=VALUE

Node pool yang ada

Untuk mengubah batas pemasangan volume persisten saat ini dari node pool yang ada, ikuti langkah-langkah berikut:

  1. Perbarui batas lampiran pada node pool:

    gcloud container node-pools update NODE_POOL_NAME \
        --cluster=CLUSTER_NAME \
        --node-labels=node-restriction.kubernetes.io/gke-volume-attach-limit-override=VALUE
    
  2. Mulai ulang DaemonSet pdcsi-node:

    kubectl rollout restart ds pdcsi-node -n kube-system
    

    Batas lampiran baru berlaku setelah Pods pdcsi-node dalam status Running.

Ganti kode berikut:

  • NODE_POOL_NAME: nama node pool yang ingin Anda buat atau perbarui.
  • CLUSTER_NAME: nama cluster untuk node pool yang ingin Anda buat atau perbarui.
  • VALUE: bilangan bulat antara 0 dan 127 untuk menentukan jumlah volume persisten baru yang dapat dilampirkan. Jika Anda menentukan nilai yang lebih tinggi dari 127, label node akan diabaikan dan driver PDCSI akan menggunakan batas pemasangan volume persisten default. Batas default adalah 128 untuk mesin generasi ketiga dan nilai berbasis jumlah vCPU untuk mesin generasi keempat.

Memverifikasi penggantian

Untuk memverifikasi apakah penggantian diterapkan dengan benar, periksa label node dan kapasitas node.

Dalam perintah berikut, ganti NODE_NAME dengan nama node yang merupakan bagian dari node pool tertentu tempat Anda menerapkan label node penggantian.

  1. Periksa label node:

    kubectl get node NODE_NAME --show-labels
    

    Output harus menyertakan label node-restriction.kubernetes.io/gke-volume-attach-limit-override.

  2. Periksa kapasitas node:

    kubectl describe node NODE_NAME
    

    Output harus menyertakan kapasitas attachable-volumes-gce-pd, yang harus cocok dengan nilai penggantian yang Anda tetapkan untuk node pool. Untuk mengetahui informasi selengkapnya, lihat Memeriksa resource yang dapat dialokasikan pada node.

Langkah berikutnya