Dengan air gap Google Distributed Cloud (GDC), Anda dapat mengelola cluster Kubernetes setelah dibuat menggunakan GKE di GDC. Layanan ini memungkinkan Anda beradaptasi dengan persyaratan workload container yang terus berubah.
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.
Untuk menjalankan perintah terhadap cluster Kubernetes, pastikan Anda memiliki resource berikut:
Temukan nama cluster Kubernetes, atau tanyakan kepada Administrator Platform Anda nama cluster tersebut.
Login dan buat file kubeconfig untuk cluster Kubernetes jika Anda belum memilikinya.
Gunakan jalur kubeconfig cluster Kubernetes untuk mengganti
KUBERNETES_CLUSTER_KUBECONFIG
dalam petunjuk ini.
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 dan workloadnya dengan aman, serta 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 edit cluster KUBERNETES_CLUSTER_NAME \ -n KUBERNETES_CLUSTER_NAMESPACE \ --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG
Ganti yang berikut untuk cluster Kubernetes:
KUBERNETES_CLUSTER_NAME
: nama cluster.KUBERNETES_CLUSTER_NAMESPACE
: namespace cluster.KUBERNETES_CLUSTER_KUBECONFIG
: Jalur file kubeconfig.
Setelah konfigurasi cluster diterapkan, cluster akan menempatkan node yang berlaku ke mode pemeliharaan.
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 ...
Dapatkan status node di cluster Anda:
kubectl get nodes -n KUBERNETES_CLUSTER_NAME \ --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG
Responsnya akan seperti berikut:
NAME STATUS ROLES AGE VERSION user-gdc-01 Ready master 2d22h v1.23.5-gke.1502 user-gdc-04 Ready none 2d22h v1.23.5-gke.1502 user-gdc-05 Ready,SchedulingDisabled none 2d22h v1.23.5-gke.1502 user-gdc-06 Ready none 2d22h v1.23.5-gke.1502
Status
SchedulingDisabled
menunjukkan bahwa node dalam mode pemeliharaan.Dapatkan jumlah node dalam mode pemeliharaan:
kubectl get nodepools --kubeconfig KUBERNETES_CLUSTER_KUBECONFIG
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
Setiap cluster KUBERNETES di lingkungan GDC dapat mengubah ukuran node pool-nya agar dapat diskalakan dengan perubahan workload. Untuk mengelola kumpulan node di cluster Kubernetes, Anda harus memiliki peran Admin Cluster Pengguna (user-cluster-admin
).
Peran ini tidak terikat ke namespace.
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 Kubernetes Engine > 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/KUBERNETES_CLUSTER_NAME -n platform \ --kubeconfig MANAGEMENT_API_SERVER
Ganti kode berikut:
KUBERNETES_CLUSTER_NAME
: Nama cluster yang menghosting node pool.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.
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/KUBERNETES_CLUSTER_NAME -n platform -o json \ --kubeconfig MANAGEMENT_API_SERVER | 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.
Memindahkan cluster dalam hierarki project
Project menyediakan pengelompokan logis instance layanan. Anda dapat menambahkan dan menghapus cluster Kubernetes dari hierarki project GDC untuk mengelompokkan layanan dengan tepat.
Menambahkan project ke cluster
Saat membuat cluster dari konsol GDC, Anda harus melampirkan setidaknya satu project sebelum dapat berhasil men-deploy beban kerja container ke cluster tersebut. Jika Anda harus menambahkan project tambahan ke cluster yang ada, selesaikan langkah-langkah berikut:
- Di menu navigasi, pilih Kubernetes Engine > Clusters.
- Klik cluster dari daftar cluster untuk membuka halaman Cluster details.
- Pilih Lampirkan Project.
- Pilih project yang tersedia untuk ditambahkan dari daftar project. Klik Simpan.
Melepaskan project dari cluster
Untuk melepaskan project dari cluster Kubernetes yang ada, selesaikan langkah-langkah berikut:
- Di menu navigasi, pilih Kubernetes Engine > Clusters.
- Klik cluster dari daftar cluster untuk membuka halaman Cluster details.
Klik delete Lepaskan untuk melepaskan project dari cluster.
Melihat semua cluster dalam organisasi
Anda dapat melihat semua cluster Kubernetes yang tersedia dalam organisasi, termasuk status, versi Kubernetes, dan detail lainnya. Karena cluster Kubernetes adalah resource zonal, Anda hanya dapat mencantumkan cluster per zona.
Konsol
Di menu navigasi, pilih Kubernetes Engine > Clusters.
Semua cluster yang tersedia di organisasi dengan status dan informasi lainnya ditampilkan:
kubectl
Mencantumkan cluster Kubernetes yang tersedia di zona dalam organisasi:
kubectl get clusters.cluster.gdc.goog -n platform \ --kubeconfig MANAGEMENT_API_SERVER
Ganti
MANAGEMENT_API_SERVER
dengan jalur kubeconfig server API zonal. Jika Anda belum membuat file kubeconfig untuk server API di zona target, lihat Login untuk mengetahui detailnya.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 Kubernetes, 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 Kubernetes Engine > Clusters.
Dalam daftar cluster Kubernetes, 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 MANAGEMENT_API_SERVER
Ganti
MANAGEMENT_API_SERVER
dengan jalur kubeconfig server API zonal. Jika Anda belum membuat file kubeconfig untuk server API di zona target, lihat Login untuk mengetahui detailnya.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 GDC air-gapped 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, GDC 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 Kubernetes.
Buka spesifikasi resource kustom
Cluster
dengankubectl
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 yang menyediakan alamat IP.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.
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.
Mengupgrade cluster Kubernetes
Anda dapat melakukan upgrade otomatis atau manual pada cluster Kubernetes. Untuk mengetahui petunjuk selengkapnya tentang cara mengupgrade cluster, lihat bagian Upgrade cluster.