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
NodeSelector
ke pod instance mesin virtual (VMI), lalu menghentikan pod.NodeSelector
memastikan 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_NAME
Ganti kode berikut:
- CLUSTER_NAMESPACE: namespace cluster.
- CLUSTER_NAME: nama cluster.
Tambahkan bagian
maintenanceBlocks
ke 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.yaml
Setelah 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_NAME
Responsnya 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.1502
Status
SchedulingDisabled
menunjukkan bahwa node dalam mode pemeliharaan.Jalankan perintah berikut untuk mendapatkan jumlah node dalam mode pemeliharaan:
kubectl get nodepools
Responsnya akan terlihat mirip dengan output berikut:
NAME READY RECONCILING STALLED UNDERMAINTENANCE UNKNOWN np1 3 0 0 1 0
Kolom
UNDERMAINTENANCE
dalam 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:NoExecute
baremetal.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
Ready
dan jumlah node yang benar. Diperlukan waktu beberapa menit agar kumpulan node diskalakan sesuai spesifikasi Anda.
API
Buka spesifikasi resource kustom
Cluster
dengankubectl
CLI menggunakan editor interaktif:kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ --kubeconfig ORG_ADMIN_CLUSTER_KUBECONFIG
Perbarui kolom
nodeCount
untuk node pool yang akan diubah ukurannya:nodePools: ... - machineTypeName: n2-standard-2-gdc name: nodepool-1 nodeCount: NUMBER_OF_WORKER_NODES
Ganti
NUMBER_OF_WORKER_NODES
dengan 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.workerNodePoolStatuses
Konfirmasi bahwa jumlah
readyNodes
mencerminkan 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_KUBECONFIG
Outputnya 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
Cluster
dan nilai valid yang sesuai dengan setiap properti:kubectl explain clusters.cluster.gdc.goog.spec \ --kubeconfig ORG_ADMIN_CLUSTER_KUBECONFIG
Outputnya 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
kubectl
CLI. 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
Cluster
dengankubectl
CLI menggunakan editor interaktif:kubectl edit clusters.cluster.gdc.goog/USER_CLUSTER_NAME -n platform \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG
Perbarui kolom
ingressServiceIPSize
ke ukuran alamat IP baru:... spec: ... loadBalancer: ingressServiceIPSize: INGRESS_SERVICE_IP_SIZE ...
Ganti
INGRESS_SERVICE_IP_SIZE
dengan 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.