Dengan perangkat air-gapped Google Distributed Cloud (GDC), Anda dapat mengelola cluster Kubernetes setelah dibuat sehingga Anda dapat beradaptasi dengan persyaratan workload container yang terus berubah.
Melakukan pemeliharaan node
Saat Anda perlu memperbaiki atau memelihara node, masukkan node ke mode pemeliharaan terlebih dahulu. Menempatkan node ke mode pemeliharaan akan menguras pod/workloadnya dengan aman dan mengecualikan node dari penjadwalan pod. Dalam mode pemeliharaan, Anda dapat mengerjakan node tanpa risiko mengganggu traffic pod.
Cara kerjanya
Mode pemeliharaan untuk GDC mirip dengan menjalankan kubectl
cordon dan kubectl drain untuk node tertentu. Berikut beberapa detail yang relevan dengan mode pemeliharaan:
- Node yang ditentukan ditandai sebagai tidak dapat dijadwalkan. Tindakan ini adalah yang dilakukan
kubectl cordon. - Taint node ditambahkan ke node yang ditentukan untuk menunjukkan bahwa tidak ada pod yang dapat dijadwalkan atau dieksekusi di node tersebut. Tindakan ini mirip dengan
kubectl drain. - Waktu tunggu 20 menit diterapkan untuk memastikan bahwa node tidak macet saat menunggu pod dihentikan. Pod mungkin tidak dihentikan jika dikonfigurasi untuk mentoleransi semua taint atau memiliki finalizer. Cluster GDC mencoba menghentikan semua pod, tetapi jika waktu tunggu habis, node akan dimasukkan ke mode pemeliharaan. Waktu tunggu ini mencegah pod yang sedang berjalan memblokir upgrade.
- Jika Anda memiliki workload berbasis VM yang berjalan di node, cluster GDC akan menerapkan
NodeSelectorke pod instance mesin virtual (VMI), lalu menghentikan pod.NodeSelectormemastikan bahwa pod VMI dimulai ulang pada node yang sama saat node dikeluarkan dari mode pemeliharaan.
Menempatkan node ke mode pemeliharaan
Pilih node yang ingin Anda masukkan ke mode pemeliharaan dengan menentukan rentang alamat IP untuk node yang dipilih di bagian maintenanceBlocks pada file konfigurasi cluster Anda. Node yang Anda pilih harus dalam status Ready, dan berfungsi di cluster.
Untuk mengaktifkan mode pemeliharaan pada node:
Edit file konfigurasi cluster untuk memilih node yang ingin Anda masukkan ke mode pemeliharaan.
Anda dapat mengedit file konfigurasi dengan editor pilihan Anda, atau Anda dapat mengedit resource kustom cluster secara langsung dengan menjalankan perintah berikut:
kubectl -n CLUSTER_NAMESPACE edit cluster CLUSTER_NAMEGanti kode berikut:
- CLUSTER_NAMESPACE: namespace cluster.
- CLUSTER_NAME: nama cluster.
Tambahkan bagian
maintenanceBlockske file konfigurasi cluster untuk menentukan satu alamat IP, atau rentang alamat, untuk node yang ingin Anda masukkan ke mode pemeliharaan.Contoh berikut menunjukkan cara memilih beberapa node dengan menentukan rentang alamat IP:
... metadata: name: my-cluster namespace: cluster-my-cluster spec: maintenanceBlocks: cidrBlocks: - 172.16.128.1-172.16.128.64 ...Simpan dan terapkan konfigurasi cluster yang telah diupdate:
kubectl apply -f my-cluster.yamlSetelah konfigurasi cluster diterapkan, cluster akan menempatkan node yang berlaku ke mode pemeliharaan.
Jalankan perintah berikut untuk mendapatkan status node di cluster Anda:
kubectl get nodes -n CLUSTER_NAMEResponsnya akan seperti berikut:
NAME STATUS ROLES AGE VERSION user-gdch-01 Ready master 2d22h v1.23.5-gke.1502 user-gdch-04 Ready none 2d22h v1.23.5-gke.1502 user-gdch-05 Ready,SchedulingDisabled none 2d22h v1.23.5-gke.1502 user-gdch-06 Ready none 2d22h v1.23.5-gke.1502Status
SchedulingDisabledmenunjukkan bahwa node dalam mode pemeliharaan.Jalankan perintah berikut untuk mendapatkan jumlah node dalam mode pemeliharaan:
kubectl get nodepoolsResponsnya akan terlihat mirip dengan output berikut:
NAME READY RECONCILING STALLED UNDERMAINTENANCE UNKNOWN np1 3 0 0 1 0Kolom
UNDERMAINTENANCEdalam contoh ini menunjukkan bahwa satu node dalam mode pemeliharaan.Cluster juga menambahkan taint berikut ke node saat dimasukkan ke dalam mode pemeliharaan:
baremetal.cluster.gke.io/maintenance:NoExecutebaremetal.cluster.gke.io/maintenance:NoSchedule
Mengubah ukuran node pool
Node pool di cluster pengguna mana pun di lingkungan GDC dapat diubah ukurannya untuk menyesuaikan perubahan beban kerja. Untuk mengelola kumpulan node di cluster pengguna, Anda harus memiliki peran Admin Cluster Pengguna (user-cluster-admin).
Untuk menskalakan node pool di cluster yang ada, selesaikan langkah-langkah berikut:
Konsol
- Di dasbor, pilih project tempat cluster yang ingin Anda edit berada.
- Di menu navigasi, pilih Clusters.
- Pilih nama cluster yang terkait dengan kumpulan node. Halaman Detail cluster akan ditampilkan.
- Klik tab Node pools.
- Pilih ikon edit Edit untuk node pool yang ingin Anda ubah ukurannya. Perintah Edit node pool ditampilkan.
Perbarui kolom Number of nodes untuk mencerminkan jumlah node baru yang diperlukan dalam node pool. Anda dapat menambah atau mengurangi jumlah node agar sesuai dengan persyaratan beban kerja Anda.
Klik Simpan.
Kembali ke tab Node pools untuk cluster Anda dan konfirmasi bahwa node pool yang diubah ukurannya memiliki status
Readydan jumlah node yang benar. Diperlukan waktu beberapa menit agar kumpulan node diskalakan sesuai spesifikasi Anda.
API
Buka spesifikasi resource kustom
ClusterdengankubectlCLI menggunakan editor interaktif:kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ --kubeconfig ORG_ADMIN_CLUSTER_KUBECONFIGPerbarui kolom
nodeCountuntuk node pool yang akan diubah ukurannya:nodePools: ... - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: NUMBER_OF_WORKER_NODESGanti
NUMBER_OF_WORKER_NODESdengan jumlah node pekerja yang diperbarui untuk disediakan di node pool.Simpan file dan keluar dari editor.
Verifikasi penskalaan node Anda telah selesai dengan memeriksa konfigurasi node pool:
kubectl get clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform -o json \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG | jq .status.workerNodePoolStatusesKonfirmasi bahwa jumlah
readyNodesmencerminkan jumlah node yang Anda tetapkan untuk node pool. Diperlukan waktu beberapa menit agar kumpulan node diskalakan sesuai spesifikasi Anda.
Melihat semua cluster dalam organisasi
Anda dapat melihat semua cluster pengguna yang tersedia dalam organisasi, termasuk status, versi Kubernetes, dan detail lainnya.
Konsol
Di menu navigasi, pilih Clusters.
Semua cluster yang tersedia di organisasi dengan status dan informasi lainnya ditampilkan:

kubectl
Mencantumkan cluster pengguna yang tersedia di organisasi:
kubectl get clusters.cluster.gdc.goog -n platform \ --kubeconfig ADMIN_CLUSTER_KUBECONFIGOutputnya mirip dengan hal berikut ini:
NAME STATE K8S VERSION user-vm-1 Running 1.25.10-gke.2100 user-test Running 1.26.5-gke.2100
Melihat properti yang dapat diupdate
Untuk setiap cluster pengguna, serangkaian properti tersedia untuk diubah setelah cluster
dibuat. Anda hanya dapat mengubah properti yang dapat diubah yang ada di spec dari
resource kustom Cluster. Tidak semua properti di spec memenuhi syarat untuk diperbarui setelah cluster disediakan. Untuk melihat properti yang dapat diupdate ini,
selesaikan langkah-langkah berikut:
Konsol
Di menu navigasi, pilih Clusters.
Di daftar cluster pengguna, klik nama cluster untuk melihat propertinya.
Properti yang dapat diedit memiliki ikon edit Edit.
kubectl
Lihat daftar properti untuk spesifikasi
Clusterdan nilai valid yang sesuai dengan setiap properti:kubectl explain clusters.cluster.gdc.goog.spec \ --kubeconfig ORG_ADMIN_CLUSTER_KUBECONFIGOutputnya mirip dengan hal berikut ini:
KIND: Cluster VERSION: cluster.gdc.goog/v1 RESOURCE: spec <Object> DESCRIPTION: <empty> FIELDS: clusterNetwork <Object> The cluster network configuration. If unset, the default configurations with pod and service CIDR sizes are used. Optional. Mutable. initialVersion <Object> The GDCH version information of the user cluster during cluster creation. Optional. Default to use the latest applicable version. Immutable. loadBalancer <Object> The load balancer configuration. If unset, the default configuration with the ingress service IP address size is used. Optional. Mutable. nodePools <[]Object> The list of node pools for the cluster worker nodes. Optional. Mutable. releaseChannel <Object> The release channel a cluster is subscribed to. When a cluster is subscribed to a release channel, GDCH maintains the cluster versions for users. Optional. Mutable.Perbarui setelan ini menggunakan konsol GDC atau
kubectlCLI. Misalnya, Anda dapat mengubah ukuran node pool.
Menskalakan ukuran alamat IP layanan ingress
Anda dapat menskalakan ukuran alamat IP layanan ingress setelah membuat cluster pengguna.
Buka spesifikasi resource kustom
ClusterdengankubectlCLI menggunakan editor interaktif:kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ --kubeconfig ADMIN_CLUSTER_KUBECONFIGPerbarui kolom
ingressServiceIPSizeke ukuran alamat IP baru:... spec: ... loadBalancer: ingressServiceIPSize: INGRESS_SERVICE_IP_SIZE ...Ganti
INGRESS_SERVICE_IP_SIZEdengan ukuran alamat IP layanan ingress yang diperbarui.Simpan file dan keluar dari editor.
Tidak ada batas yang ditetapkan pada ukuran alamat IP layanan ingress. Jumlah alamat IP yang Anda minta akan dipenuhi berdasarkan organisasi Anda. Jika permintaan tidak dapat dipenuhi, cluster akan melaporkan error.