Setelah membuat cluster, Anda dapat mengubah beberapa aspek konfigurasi Anda. Misalnya, Anda dapat:
- Menambahkan, menghapus, atau mengganti node.
- Tambahkan atau hapus anotasi ke cluster.
- Ubah nilai kolom yang dapat berubah di resource cluster dan kumpulan node.
- Ubah resource kustom lainnya.
Anda dapat menggunakan bmctl
atau Google Cloud CLI untuk melakukan pembaruan pada cluster. Jika Anda
membuat admin atau cluster pengguna menggunakan Terraform, lalu Anda dapat menggunakan Terraform untuk
mengupdate cluster. Perhatikan hal berikut:
Banyak aspek konfigurasi cluster Anda yang tidak dapat diubah dan tidak dapat diperbarui setelah Anda membuat cluster. Untuk daftar lengkap tentang yang tidak dapat diubah, lihat Referensi kolom konfigurasi cluster. Referensi kolom adalah tabel yang dapat diurutkan. Klik judul kolom untuk mengubah tata urutan. Klik nama kolom untuk melihat deskripsinya.
gcloud CLI dan Terraform hanya mendukung update admin dan pengguna klaster. Anda harus menggunakan
bmctl
untuk memperbarui jenis cluster lainnya.gcloud CLI dan Terraform hanya mendukung perubahan pada resource cluster dan kumpulan node. Anda harus menggunakan
kubectl
ataubmctl
untuk mengupdate resource kustom lainnya yang memengaruhi cluster.
Cara mengupdate cluster
Biasanya, Anda dapat melakukan urutan tindakan berikut ini untuk mengupdate cluster:
bmctl
Ubah nilai kolom yang berlaku di konfigurasi cluster , yang secara default terletak di sini:
bmctl-workspace/CLUSTER-NAME/CLUSTER-NAME.yaml
Update cluster dengan menjalankan perintah
bmctl update
:bmctl update cluster -c CLUSTER_NAME --kubeconfig=KUBECONFIG
Ganti kode berikut:
CLUSTER_NAME
: nama cluster yang ingin Anda memperbarui.KUBECONFIG
: untuk admin, hybrid, atau mandiri ke cluster, masukkan jalur ke file kubeconfig cluster tersebut. Untuk pengguna cluster, masukkan jalur ke file kubeconfig cluster admin.
gcloud CLI
Tentukan hanya tanda untuk konfigurasi yang ingin Anda ubah.
Jalankan perintah update yang berlaku:
Cluster admin:
gcloud container bare-metal admin-clusters update
Cluster pengguna:
gcloud container bare-metal clusters update
Kumpulan node pada cluster pengguna:
gcloud container bare-metal node-pools update
Terraform
Ubah nilai kolom yang berlaku di Terraform konfigurasi file yang Anda gunakan untuk membuat cluster atau node pool. Lihat dokumentasi referensi Terraform untuk mengetahui deskripsi kolom yang mendetail:
Update konfigurasi dengan menjalankan perintah
terraform apply
.
Bagian berikut menguraikan beberapa contoh umum untuk memperbarui .
Menambahkan atau menghapus node dalam cluster
Kumpulan node adalah kumpulan node di dalam cluster yang memiliki konfigurasi yang sama. Ingatlah bahwa node selalu milik kumpulan node. Untuk menambahkan node baru ke cluster, Anda perlu untuk menambahkannya ke kumpulan node tertentu. Menghapus node dari kumpulan node menghapus node dari cluster sepenuhnya.
Ada tiga jenis kumpulan node di Google Distributed Cloud: bidang kontrol, beban load balancer, dan kumpulan node pekerja. Bagian berikut menjelaskan cara menambah atau menghapus node dari setiap jenis node pool.
bmctl
Anda dapat menambahkan atau menghapus node dari kumpulan node dengan menambah atau menghapus alamat IP dari node di bagian tertentu dari file konfigurasi cluster. Tujuan daftar berikut menampilkan bagian yang akan diedit untuk kumpulan node tertentu:
- Kumpulan node pekerja: tambahkan atau hapus alamat IP node di
Bagian
spec.nodes
dari spesifikasiNodePool
. - Kumpulan node bidang kontrol: tambahkan atau hapus alamat IP node di
Bagian
spec.controlPlane.nodePoolSpec.nodes
dari spesifikasiCluster
. - Kumpulan node load balancer: tambahkan atau hapus alamat IP node di
Bagian
spec.loadBalancer.nodePoolSpec.nodes
dari spesifikasiCluster
.
Contoh: menghapus node pekerja
Berikut contoh file konfigurasi cluster yang menunjukkan spesifikasi dari dua worker node:
---
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
name: nodepool1
namespace: cluster-cluster1
spec:
clusterName: cluster1
nodes:
- address: 192.0.2.1
- address: 192.0.2.2
Untuk menghapus node:
(Opsional) Jika node yang Anda hapus menjalankan pod penting, setel node terlebih dahulu ke dalam mode pemeliharaan.
Anda dapat memantau proses pengosongan node untuk worker node dengan melihat Kolom
status.nodesDrained
danstatus.nodesDraining
di ResourceNodePool
.Edit file konfigurasi cluster untuk menghapus entri alamat IP untuk {i>node<i}.
Update cluster:
bmctl update cluster1 \ --kubeconfig=ADMIN_KUBECONFIG
gcloud CLI
Anda menggunakan perintah update
untuk menambahkan atau menghapus node. Perintah update
yang
yang Anda gunakan dan penanda tempat Anda
menentukan alamat IP tergantung pada jenis
dari kumpulan node yang ingin Anda perbarui:
Kumpulan node pekerja: Jalankan
gcloud container bare-metal node-pools update
dan tentukan alamat IP dalam tanda--node-configs 'node-ip=IP_ADDRESS'
.Mengontrol kumpulan node bidang di cluster admin: Jalankan
gcloud container bare-metal admin-clusters update
dan tentukan IP alamat dalam bendera--control-plane-node-configs 'node-ip=IP_ADDRESS'
.Mengontrol kumpulan node bidang di cluster pengguna: Jalankan
gcloud container bare-metal clusters update
dan tentukan IP alamat dalam bendera--control-plane-node-configs 'node-ip=IP_ADDRESS'
.Kumpulan node load balancer: Jalankan
gcloud container bare-metal clusters update
dan tentukan IP alamat dalam bendera--metal-lb-load-balancer-node-configs 'node-ip=IP_ADDRESS'
atau
--bgp-load-balancer-node-configs 'node-ip=IP_ADDRESS'
Tanda tempat Anda menentukan alamat IP hanya menerima satu node-ip
. Anda
menyertakan penanda untuk setiap
alamat IP di {i>node pool<i}.
Perintah update
mengganti semua alamat IP dengan alamat IP yang
yang Anda tentukan. Untuk menambahkan node, sertakan alamat IP yang ada
node dan alamat IP node baru di perintah update
. Demikian pula,
Anda menghapus {i>node<i} dengan hanya
menyertakan alamat IP dari {i>node<i} yang Anda
Anda ingin pertahankan.
Contoh: menghapus node pekerja
Bagian ini menampilkan cara menghapus node pekerja dari kumpulan node menggunakan contoh data. Perintah gcloud CLI tambahan yang mungkin berguna juga tercakup dalam langkah-langkah berikut.
(Opsional) Jika node yang Anda hapus menjalankan pod penting, setel node terlebih dahulu ke dalam mode pemeliharaan.
Anda dapat memantau proses pengosongan node untuk worker node dengan melihat Kolom
status.nodesDrained
danstatus.nodesDraining
di ResourceNodePool
.Jalankan perintah
list
untuk menampilkan semua kumpulan node di cluster:gcloud container bare-metal node-pools list \ --cluster=abm-user-cluster1 \ --project=example-project-12345 \ --location=us-central1
Outputnya mirip dengan hal berikut ini:
NAME LOCATION STATE node-pool-1 us-central1 RUNNING node-pool-2 asia-east1 RUNNING
Jalankan perintah
describe
untuk menampilkan semua alamat IP di kumpulan node:gcloud container bare-metal node-pools describe node-pool-1 \ --cluster=abm-user-cluster1 \ --project=example-project-12345 \ --location=us-central1
Contoh output berikut terpotong agar mudah dibaca:
annotations: ... baremetal.cluster.gke.io/version: 1.30 ... name: projects/example-project-12345/locations/us-central1/bareMetalClusters/abm-user-cluster1/bareMetalNodePools/node-pool-1 nodePoolConfig: nodeConfigs: - nodeIp: 192.0.2.1 - nodeIp: 192.0.2.2 operatingSystem: LINUX state: RUNNING ...
Perhatikan hal berikut dalam contoh output:
Kolom
name
berisi nama kumpulan node yang sepenuhnya memenuhi syarat. Saat menentukan nama kumpulan node dalam perintah, Anda dapat menentukan nama yang sepenuhnya memenuhi syarat, atau nama kumpulan node, misalnya,node-pool-1
, beserta--cluster
,--project
, dan Tanda--location
.Bagian
nodeConfigs
berisi dua kolomnodeIp
dengan IP untuk setiap node.
Jalankan perintah berikut untuk menghapus node dengan alamat IP 192.0.2.1:
gcloud container bare-metal node-pools update node-pool-1 \ --cluster=abm-user-cluster1 \ --project=example-project-12345 \ --location=us-central1 \ --node-configs='node-ip=192.0.2.2'
Perintah
update
mengganti semua alamat IP dengan alamat IP yang yang Anda tentukan. Karena 192.0.2.1 tidak disertakan, node akan dihapus.Output perintah ini akan mirip dengan berikut ini:
Waiting for operation [projects/example-project-12345/locations/us-central1/operations/operation-1697154681749-6078d9def4030-76686d6e-9fcb1de9] to complete
Dalam contoh output, string
operation-1697154681749-6078d9def4030-76686d6e-9fcb1de9
adalahOPERATION_ID
dari operasi yang berjalan lama. Anda dapat mengetahui status operasi dengan menjalankan perintah berikut di jendela terminal lain:gcloud container bare-metal operations describe operation-1697154681749-6078d9def4030-76686d6e-9fcb1de9 \ --project= example-project-12345 \ --location=us-central1
Anda dapat menjalankan kembali perintah tersebut sesering mungkin untuk memeriksa statusnya.
Jika penghapusan node gagal, Anda dapat memaksa penghapusannya dari cluster. Untuk mengetahui detailnya, lihat Menghapus node rusak secara paksa.
Ganti node bidang kontrol HA
bmctl
Anda dapat menggunakan bmctl
untuk mengganti node bidang kontrol ketersediaan tinggi (HA) di
semua jenis cluster.
Anda mengganti node dalam cluster dengan melakukan langkah-langkah berikut:
- Hapus alamat IP node dari file konfigurasi cluster.
- Update cluster.
- Periksa status node di cluster.
- Tambahkan alamat IP node baru ke file konfigurasi cluster yang sama.
- Update cluster.
Contoh: mengganti node bidang kontrol HA
Berikut contoh file konfigurasi cluster yang menunjukkan tiga bidang kontrol node dalam cluster pengguna:
---
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: user-cluster
namespace: cluster-user-cluster
spec:
controlPlane:
nodePoolSpec:
nodes:
- address: 192.0.2.11
- address: 192.0.2.12
- address: 192.0.2.13
Untuk mengganti node terakhir yang tercantum di spec.controlPlane.nodePoolSpec.nodes
, lakukan langkah-langkah berikut:
Hapus node dengan menghapus entri alamat IP-nya di cluster file konfigurasi Anda. Setelah melakukan perubahan ini, file konfigurasi cluster akan terlihat seperti ini:
--- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: user-cluster namespace: cluster-user-cluster spec: controlPlane: nodePoolSpec: nodes: - address: 192.0.2.11 - address: 192.0.2.12
Perbarui cluster dengan menjalankan perintah berikut:
bmctl update cluster -c CLUSTER_NAME \ --kubeconfig=KUBECONFIG
Buat perubahan berikut:
- Ganti CLUSTER_NAME dengan nama cluster yang Anda ingin memperbarui.
- Jika cluster adalah cluster yang dikelola sendiri (seperti admin atau mandiri cluster), ganti KUBECONFIG dengan jalur ke cluster {i>kubeconfig<i}. Jika cluster tersebut adalah cluster pengguna, seperti dalam misalnya, ganti KUBECONFIG dengan jalur ke admin file kubeconfig cluster.
Setelah perintah
bmctl update
berhasil dieksekusi, diperlukan beberapa yang diperlukan untuk menyelesaikan tugasmachine-preflight
danmachine-init
. Anda dapat melihat status node dan kumpulan node masing-masing dengan menjalankan perintah yang dijelaskan di bagian Memverifikasi pembaruan dokumen ini. Setelah kumpulan node dan node dalam status siap, Anda dapat melanjutkan ke langkah berikutnya.Tambahkan node bidang kontrol baru ke kumpulan node dengan menambahkan alamat IP node bidang kontrol baru ke
spec.controlPlane.nodePoolSpec.nodes
dari file konfigurasi cluster. Setelah melakukan perubahan ini, file konfigurasi cluster akan terlihat seperti ini:--- apiVersion: baremetal.cluster.gke.io/v1 kind: Cluster metadata: name: user-cluster namespace: cluster-user-cluster spec: controlPlane: nodePoolSpec: nodes: - address: 192.0.2.11 - address: 192.0.2.12 - address: 192.0.2.14
Perbarui cluster dengan menjalankan perintah berikut:
bmctl update cluster -c CLUSTER_NAME \ --kubeconfig=KUBECONFIG
gcloud CLI
Anda dapat menggunakan gcloud CLI untuk menggantikan ketersediaan tinggi (HA) bidang kontrol di cluster admin dan pengguna.
Anda mengganti node dalam cluster dengan melakukan langkah-langkah berikut:
Hapus alamat IP node dengan menjalankan perintah
update
yang berlaku:- Cluster pengguna:
gcloud container bare-metal clusters update
- Cluster admin:
gcloud container bare-metal admin-clusters update
- Cluster pengguna:
Periksa status penghapusan node di cluster dengan menjalankan
gcloud container bare-metal operations describe OPERATION_ID
.Tambahkan alamat IP node baru dengan menjalankan perintah
update
yang berlaku.
Contoh: mengganti node bidang kontrol HA
Bagian ini menunjukkan cara mengganti bidang kontrol dari cluster menggunakan contoh data. Perintah gcloud CLI tambahan yang mungkin berguna juga tercakup dalam langkah-langkah berikut.
Jalankan perintah
list
untuk menampilkan semua cluster pengguna dalam Project Google Cloud:gcloud container bare-metal clusters list \ --project=example-project-12345 \ --location=-
Saat Anda menetapkan
--location=-
, itu berarti membuat daftar semua cluster dalam semua region. Jika Anda perlu mempersempit daftar, tetapkan--location
ke wilayah tertentu.Outputnya mirip dengan hal berikut ini:
NAME LOCATION VERSION ADMIN_CLUSTER STATE abm-user-cluster1a us-central1 1.30 abm-admin-cluster1 RUNNING abm-user-cluster1b europe-west1 1.30 abm-admin-cluster1 RUNNING
Jalankan perintah
describe
di cluster:gcloud container bare-metal clusters describe abm-user-cluster1 \ --project=example-project-12345 \ --location=us-central1
Contoh output terpotong agar mudah dibaca:
... controlPlane: controlPlaneNodePoolConfig: nodePoolConfig: nodeConfigs: - nodeIp: 192.0.2.11 - nodeIp: 192.0.2.12 - nodeIp: 192.0.2.13 operatingSystem: LINUX ... name: projects/example-project-1234567/locations/us-central1/bareMetalClusters/abm-user-cluster1a ...
Perhatikan hal berikut dalam contoh output:
Kolom
name
berisi nama cluster yang sepenuhnya memenuhi syarat. Saat menentukan nama cluster dalam perintah, Anda dapat menentukan nama yang sepenuhnya memenuhi syarat, atau nama cluster, misalnya,abm-user-cluster1a
, beserta--project
dan--location flags
.Bagian
nodeConfigs
berisi tiga kolomnodeIp
dengan IP alamat node bidang kontrol.
Hapus node dengan alamat IP
192.0.2.13
:gcloud container bare-metal cluster update abm-user-cluster1a \ --project=example-project-12345 \ --location=us-central1 \ --control-plane-node-configs 'node-ip=192.0.2.11' --control-plane-node-configs 'node-ip=192.0.2.12'
Output perintah ini akan mirip dengan berikut ini:
Waiting for operation [projects/example-project-12345/locations/us-central1/operations/operation-1956154681749-6078d9def4030-76686d6e-9fcb1d7] to complete
Dalam contoh output, string
operation-1956154681749-6078d9def4030-76686d6e-9fcb1de7
adalahOPERATION_ID
dari operasi yang berjalan lama. Anda dapat mengetahui status operasi dengan menjalankan perintah berikut di jendela terminal lain:gcloud container bare-metal operations describe operation-1956154681749-6078d9def4030-76686d6e-9fcb1de7 \ --project= example-project-12345 \ --location=us-central1
Anda dapat menjalankan kembali perintah tersebut sesering mungkin untuk memeriksa statusnya.
Tambahkan node baru dengan alamat IP
192.0.2.14
:gcloud container bare-metal cluster update abm-user-cluster1a \ --project=example-project-12345 \ --location=us-central1 \ --control-plane-node-configs 'node-ip=192.0.2.11' --control-plane-node-configs 'node-ip=192.0.2.12' --control-plane-node-configs 'node-ip=192.0.2.14'
Memverifikasi pembaruan Anda
kubectl
Anda dapat melihat status node dan kumpulan node masing-masing dengan
Perintah kubectl get
.
Misalnya, perintah berikut menampilkan status node pool pada
namespace cluster cluster-my-cluster
:
kubectl -n cluster-my-cluster get nodepools.baremetal.cluster.gke.io
Sistem menampilkan hasil yang mirip dengan berikut ini:
NAME READY RECONCILING STALLED UNDERMAINTENANCE UNKNOWN
cluster-my-cluster 3 0 0 0 0
cluster-my-cluster-lb 2 0 0 0 0
np1 3 0 0 0 0
Reconciling=1
berarti bahwa langkah rekonsiliasi masih dalam proses. Anda
harus menunggu hingga statusnya berubah menjadi Reconciling=0
.
Anda juga dapat memeriksa status node dalam cluster dengan menjalankan perintah berikut:
kubectl get nodes --kubeconfig=KUBECONFIG
gcloud CLI
Seperti yang dijelaskan sebelumnya, setelah menjalankan perintah update
, Anda dapat
periksa status operasinya menggunakan gcloud container bare-metal
operations describe OPERATIONS_ID
. Output dari
perintah tersebut akan memberikan status node, misalnya:
...
metrics:
- intValue: '1'
metric: NODES_RECONCILING
- intValue: '2'
metric: NODES_HEALTHY
- intValue: '0'
metric: NODES_FAILED
- intValue: '0'
metric: NODES_IN_MAINTENANCE
- intValue: '3'
metric: NODES_TOTAL
stage: HEALTH_CHECK
...
Apa pun alat yang Anda gunakan untuk mengupdate node pool, Anda dapat memperoleh
status kumpulan node dengan menjalankan perintah describe
yang berlaku seperti yang ditunjukkan
seperti yang telah dibahas sebelumnya.
Jika Anda memerlukan informasi lebih lanjut tentang cara mendiagnosis cluster, lihat Buat snapshot untuk mendiagnosis cluster.
Kumpulan alamat load balancer
Bmctl
addressPools
berisi kolom untuk menentukan kumpulan load balancing untuk MetalLB
dan paket load balancer yang dipaketkan untuk Border Gateway Protocol (BGP). Anda dapat menambahkan lebih banyak
kumpulan alamat load balancing kapan saja, tetapi Anda tidak dapat menghapus
pada kumpulan alamat IP. Dimulai dengan Google Distributed Cloud versi 1.16.0, Anda dapat
ubah nilai untuk addressPools.avoidBuggyIPs
dan
addressPools.manualAssign
kapan saja.
addressPools:
- name: pool1
addresses:
- 198.51.100.0-198.51.100.4
- 198.51.100.240/28
- name: pool2
addresses:
- 198.51.100.224/28
gcloud CLI
Anda dapat menambahkan lebih banyak kumpulan alamat load balancing kapan saja untuk paket
load balancer Google Cloud, tetapi Anda tidak dapat menghapus kumpulan alamat yang ada. Penanda yang
Anda tentukan di gcloud container bare-metal clusters update
untuk menambahkan alamat
gabungan project bergantung pada jenis load balancer yang dipaketkan:
- MetalLB (lapisan 2): Gunakan tanda
--metal-lb-address-pools
. - Border Gateway Protocol (BGP): Menggunakan tanda
--bgp-address-pools
.
Nilai untuk tanda memiliki format berikut:
'pool=NAME,avoid-buggy-ips=True|False,manual-assign=True|False,addresses=IP_ADDRESS_RANGE_1;IP_ADDRESS_RANGE_2;...' \
Nilai ini memiliki segmen yang dimulai dengan kata kunci pool
,
avoid-buggy-ip
, manual-assign
, dan addresses
. Pisahkan setiap segmen
dengan koma.
pool
: Nama pilihan Anda untuk kolam renang.avoid-buggy-ips
: Jika Anda menetapkannya keTrue
, pengelolaan alamat IP Pengontrol (IPAM) tidak akan menetapkan alamat IP yang diakhiri dengan.0
atau.255
untuk Layanan. Hal ini untuk menghindari masalah perangkat konsumen yang memiliki bug secara keliru mengurangi lalu lintas data yang dikirim ke alamat IP khusus itu. Jika tidak ditentukan, nilai defaultnya adalahFalse
. Dimulai dengan Google Distributed Cloud versi 1.16.0, Anda dapat mengubah nilai ini di kumpulan alamat yang sudah ada.manual-assign
: Jika Anda tidak ingin pengontrol IPAM otomatis menetapkan alamat IP dari kumpulan ini ke Layanan, setel ini untukTrue
. Kemudian pengembang dapat membuat {i>Service<i} jenisLoadBalancer
dan tentukan secara manual salah satu alamat dari kolam renang. Jika tidak ditentukan,manual-assign
akan ditetapkan keFalse
. Dimulai dengan Google Distributed Cloud versi 1.16.0, Anda dapat memodifikasi nilai ini dalam kumpulan alamat yang ada.Dalam daftar
addresses
: Setiap alamat harus berupa rentang dalam CIDR atau format rentang dengan tanda hubung. Untuk menentukan satu alamat IP dalam kumpulan (seperti untuk VIP masuk), gunakan/32
dalam notasi CIDR (misalnya, 192.0.2.1/32).
Perhatikan aturan sintaksis berikut:
- Mengapit seluruh nilai dalam tanda kutip tunggal.
- Spasi kosong tidak diizinkan.
- Pisahkan setiap rentang alamat IP dengan titik koma.
Anda dapat menentukan lebih dari satu instance flag, seperti yang ditunjukkan di contoh berikut:
--metal-lb-address-pools='pool=pool2,avoid-buggy-ips=False,manual-assign=True,addresses=198.51.100.0/30;198.51.100.64-198.51.100.72' --metal-lb-address-pools='pool=pool3,avoid-buggy-ips=True,manual-assign=True,addresses=203.0.113.0/28'
Untuk mengetahui informasi selengkapnya tentang kumpulan alamat load balancer, lihat loadBalancer.addressPools di Mengonfigurasi load balancing yang dipaketkan.
Mencegah penghapusan cluster yang tidak disengaja
bmctl
Jika Anda menambahkan anotasi baremetal.cluster.gke.io/prevent-deletion: "true"
ke file konfigurasi cluster Anda, Anda tidak akan bisa menghapus
. Misalnya, menjalankan kubectl delete cluster
atau bmctl reset
cluster
akan menghasilkan error.
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: ci-10c3c6f4d9c698e
namespace: cluster-ci-10c3c6f4d9c698e
annotations:
baremetal.cluster.gke.io/prevent-deletion: "true"
spec:
clusterNetwork:
gcloud CLI
Jika Anda menentukan flag --add-annotations
dengan nilai ini
baremetal.cluster.gke.io/prevent-deletion="true"
, Anda dicegah
menghapus cluster. Contoh:
Tambahkan anotasi untuk mencegah penghapusan cluster secara tidak sengaja:
gcloud container bare-metal clusters update abm-user-cluster1a \ --project=example-project-12345 \ --location=us-central1 \ --add-annotations=baremetal.cluster.gke.io/prevent-deletion="true"
Upaya untuk menghapus cluster pengguna:
gcloud container bare-metal clusters delete abm-user-cluster1a \ --project=example-project-12345 \ --location=us-central1 \ --force \ --allow-missing
Respons dari perintah mirip dengan berikut ini:
ERROR: (gcloud.container.bare-metal.clusters.delete) INVALID_ARGUMENT: invalid request: admission webhook "vcluster.kb.io" denied the request: annotations[baremetal.cluster.gke.io/prevent-deletion]: Invalid value: "true": Annotation "baremetal.cluster.gke.io/prevent-deletion" should be removed in order to delete this cluster
Untuk menghapus anotasi, tentukan
--remove-annotations=baremetal.cluster.gke.io/prevent-deletion="true"
di perintahupdate
.
Abaikan pemeriksaan preflight
Fitur ini hanya tersedia dengan bmctl update
.
Nilai default atribut
bypassPreflightCheck
adalah false
. Jika Anda menetapkan kolom ini ke true
dalam konfigurasi cluster
pemeriksaan preflight internal akan diabaikan saat Anda menerapkan resource
beberapa cluster yang ada.
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
annotations:
baremetal.cluster.gke.io/private-mode: "true"
spec:
bypassPreflightCheck: true
Menambahkan atau menghapus administrator cluster
bmctl
Anda dapat menambahkan atau menghapus pengguna atau akun layanan sebagai administrator cluster
untuk cluster pengguna dengan menentukan alamat email di clusterSecurity.authorization.clusterAdmin.gcpAccounts
dari file konfigurasi cluster. Akun tersebut diberi
peran admin cluster di cluster, yang memberikan akses penuh ke cluster.
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
clusterSecurity:
authorization:
clusterAdmin:
gcpAccounts:
- alex@example.com
- hao@example.com
- my-sa@example-project-12345.iam.gserviceaccount.com
Saat memperbarui cluster pengguna untuk menambahkan akun, pastikan untuk menyertakan semua
akun dalam daftar (akun yang sudah ada dan baru) karena bmctl update
menimpa daftar dengan apa
yang Anda tentukan di file konfigurasi. Kepada
menghapus akun, menghapusnya dari file konfigurasi cluster, dan menjalankan
bmctl update
.
gcloud CLI
Anda dapat menambahkan atau menghapus pengguna atau akun layanan sebagai administrator cluster
dengan menentukan alamat email di tanda --admin-users
. Bendera
hanya menerima satu alamat email. Untuk menambahkan beberapa pengguna, tentukan satu akun
dalam setiap tanda, misalnya:
gcloud container bare-metal clusters update abm-user-cluster1a \
--project=example-project-12345 \
--location=us-central1 \
--admin-users=alex@example.com \
--admin-users=hao@example.com
--admin-users=my-sa@example-project-12345.iam.gserviceaccount.com
Perintah update
menimpa seluruh daftar pemberian izin. Tentukan semua data yang ada dan
pengguna baru yang ingin Anda
jadikan administrator cluster.
Menetapkan pengguna yang login
Anda dapat menentukan nama pengguna non-root yang ingin Anda gunakan untuk sudo
tanpa sandi
akses kapabilitas ke mesin node di cluster Anda. Kunci SSH Anda,
sshPrivateKeyPath
,
harus berfungsi untuk pengguna yang ditentukan. Pemeriksaan operasi pembuatan dan update cluster
komputer {i>node<i} itu dapat diakses
dengan pengguna dan kunci SSH yang ditentukan.
bmctl
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
annotations:
baremetal.cluster.gke.io/private-mode: "true"
spec:
nodeAccess:
loginUser: abm
gcloud CLI
Anda menentukan pengguna yang akan digunakan untuk mengakses mesin node di
--login-user
, misalnya:
gcloud container bare-metal clusters update abm-user-cluster1a \
--project=example-project-12345 \
--location=us-central1 \
--login-user=abm
Untuk mengaktifkan akses sudo
tanpa sandi bagi pengguna, ikuti langkah-langkah berikut di masing-masing
mesin node cluster:
Gunakan
sudo visudo
untuk membuka file sudoers untuk pengeditan:sudo visudo -f /etc/sudoers
Perintah
visudo
mengunci file sudoers untuk mencegah pengeditan secara bersamaan dan memvalidasi sintaks file saat disimpan.Untuk pengguna yang login, tambahkan entri ke file sudoers seperti berikut:
USERNAME ALL=(ALL) NOPASSWD: ALL
Tutup dan simpan file.
Untuk menjalankan perintah dengan hak istimewa pengguna login, jalankan perintah berikut berikut:
su - USERNAME
Untuk memverifikasi bahwa sandi tidak diperlukan bagi pengguna yang login untuk menjalankan
sudo
ini, jalankan perintahsudo
berikut:sudo ip a
Jaringan lanjutan
Anda mengonfigurasi fitur jaringan lanjutan dalam berbagai resource kustom setelah cluster dibuat. Untuk menggunakan resource kustom dan jaringan terkait fitur baru, Anda harus mengaktifkan jaringan lanjutan saat membuat cluster.
bmctl
Setel clusterNetwork.advancedNetworking
true
di konfigurasi cluster saat Anda membuat cluster:
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
clusterNetwork:
...
advancedNetworking: true
...
gcloud CLI
Sertakan flag --enable-advanced-networking
di
perintah gcloud container bare-metal clusters create
saat Anda membuat cluster.
Setelah cluster dibuat dengan jaringan lanjutan yang diaktifkan, Anda dapat
mengonfigurasi resource kustom yang dijelaskan di bagian ini menggunakan kubectl apply
.
NetworkGatewayGroup
Resource kustom NetworkGatewayGroup
digunakan untuk menyediakan IP mengambang
untuk fitur jaringan lanjutan, seperti
gateway NAT keluar atau
paket load balancing dengan BGP.
apiVersion: networking.gke.io/v1
kind: NetworkGatewayGroup
name: default
namespace: cluster-bm
spec:
floatingIPs:
- 10.0.1.100
- 10.0.2.100
Load balancing BGP
Anda mengonfigurasi load balancing Border Gateway Protocol (BGP) di cluster
resource dan resource kustom lainnya. Perintah gcloud container bare-metal clusters
create
dan update
mendukung konfigurasi BGP di cluster
tetapi bukan resource kustom.
Saat Anda mengonfigurasi load balancer yang dipaketkan dengan BGP, bidang data akan melakukan beban
menyeimbangkan penggunaan, secara {i>default<i}, rekan eksternal yang sama yang ditentukan untuk
peering bidang kontrol. Atau, Anda dapat mengonfigurasi pemuatan bidang data
menyeimbangkannya secara terpisah, menggunakan resource kustom BGPLoadBalancer
dan
Resource kustom BGPPeer
. Untuk informasi selengkapnya, lihat
Konfigurasikan load balancer yang dipaketkan dengan BGP.
BGPLoadBalancer
apiVersion: networking.gke.io/v1
kind: BGPLoadBalancer
metadata:
name: default
namespace: cluster-bm
spec:
peerSelector:
cluster.baremetal.gke.io/default-peer: "true"
BGPPeer
apiVersion: networking.gke.io/v1
kind: BGPPeer
metadata:
name: bgppeer1
namespace: cluster-bm
labels:
cluster.baremetal.gke.io/default-peer: "true"
spec:
localASN: 65001
peerASN: 65002
peerIP: 10.0.3.254
sessions: 2
Meningkatkan rentang jaringan layanan
Untuk membuat lebih banyak layanan dari batas awal, Anda dapat mengurangi layanan IPv4 Masker CIDR untuk meningkatkan jaringan layanan cluster Anda. Mengurangi penyamaran (nilai setelah "/") menghasilkan rentang jaringan yang lebih besar. Anda hanya dapat meningkatkan rentang CIDR layanan IPv4. Rentang jaringan tidak dapat dikurangi, yang berarti mask (nilai setelah "/") tidak dapat ditingkatkan.
bmctl
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
spec:
...
clusterNetwork:
services:
cidrBlocks:
- 192.0.2.0/14
...
gcloud CLI
Untuk meningkatkan rentang CIDR layanan IPv4 di cluster pengguna, tentukan
rentang baru dalam flag --island-mode-service-address-cidr-blocks
.
gcloud container bare-metal clusters update cluster1 \
--project=example-project-12345 \
--location=us-central1 \
--island-mode-service-address-cidr-blocks=192.0.2.0/14
Mengonfigurasi setelan pull gambar kubelet
Kubelet dijalankan pada setiap node cluster Anda. Kubelet bertanggung jawab untuk memantau container pada node dan memastikan container tersebut responsif. Saat diperlukan, kueri kubelet dan mengambil image dari Container Registry.
Memperbarui konfigurasi kubelet secara manual dan menjaganya tetap sinkron di semua node cluster dapat menjadi tantangan tersendiri. Untuk memperburuk keadaan, perubahan konfigurasi kubelet manual pada node akan hilang saat Anda mengupgrade cluster Anda.
Untuk membantu membuat pembaruan yang disinkronkan lebih mudah dan persisten, Google Distributed Cloud memungkinkan Anda menentukan beberapa setelan kubelet untuk setiap kumpulan node cluster: node bidang kontrol, node load balancer, dan node pekerja. Setelan berlaku untuk semua node dalam kumpulan tertentu dan bertahan selama upgrade cluster. Kolom karena setelan ini dapat diubah, jadi Anda dapat memperbaruinya kapan saja, tidak hanya selama pembuatan cluster.
bmctl
Kolom yang didukung berikut mengontrol operasi pull Container Registry untuk kubelet:
registryBurst
(default: 10)registryPullQPS
(default: 5)serializeImagePulls
(default: benar)
Untuk informasi lebih lanjut tentang masing-masing isian konfigurasi kubelet, lihat Referensi kolom konfigurasi cluster.
Anda dapat menentukan kolom ini di bagian kubeletConfig
spesifikasi Cluster dan
spesifikasi NodePool untuk kumpulan node berikut:
- Spesifikasi cluster:
- Node bidang kontrol
spec.controlPlane.nodePoolSpec.kubeletConfig
- Node load balancer
spec.loadBalancer.nodePoolSpec.kubeletConfig
- Spesifikasi NodePool:
- Node pekerja
spec.kubeletConfig
Contoh berikut menunjukkan kolom yang ditambahkan dengan nilai defaultnya di
file konfigurasi cluster. Perhatikan bahwa anotasi preview.baremetal.cluster.gke.io/custom-kubelet: "enable"
diperlukan.
apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
name: cluster1
namespace: cluster-cluster1
annotations:
preview.baremetal.cluster.gke.io/custom-kubelet: "enable"
spec:
...
controlPlane:
nodePoolSpec:
kubeletConfig:
registryBurst: 10
registryPullQPS: 5
serializeImagePulls: true
...
loadBalancer:
nodePoolSpec:
kubeletConfig:
registryBurst: 10
registryPullQPS: 5
serializeImagePulls: true
...
apiVersion: baremetal.cluster.gke.io/v1
kind: NodePool
metadata:
name: node-pool-new
namespace: cluster-cluster1
spec:
clusterName: cluster1
...
kubeletConfig:
registryBurst: 10
registryPullQPS: 5
serializeImagePulls: true
Dalam setiap kasus, setelan berlaku untuk semua node di kumpulan.
gcloud CLI
Flag berikut mengontrol operasi pull Container Registry untuk kubelet:
Node bidang kontrol
Node load balancer
- --bgp-load-balancer-registry-burst
- --bgp-load-balancer-registry-pull-qps
- --disable-bgp-load-balancer-serialize-image-pulls
- --enable-bgp-load-balancer-serialize-image-pulls
- --metal-lb-load-balancer-registry-burst
- --metal-lb-load-balancer-registry-pull-qps
- --disable-metal-lb-load-balancer-serialize-image-pull
- --enable-metal-lb-load-balancer-serialize-image-pulls
Node pekerja
Cara menggunakan
Berikut adalah beberapa pertimbangan untuk menyesuaikan pengambilan gambar:
Karena gambar ditarik secara seri secara default, penarikan gambar yang membutuhkan waktu dapat menunda semua pengambilan gambar lainnya yang dijadwalkan pada sebuah node. Penarikan gambar tertunda dapat memblokir proses upgrade (terutama saat Google Distributed Cloud baru image yang perlu di-deploy di node). Jika Anda terpengaruh oleh pull gambar penundaan, Anda dapat menonaktifkan penarikan gambar serial untuk memungkinkan gambar paralel yang ditarik.
Jika mengalami error throttling pull gambar, seperti
pull QPS exceeded
, Anda mungkin perlu meningkatkan*-registry-pull-qps
dan*-registry-burst
untuk meningkatkan throughput pull image. Kedua isian ini menyesuaikan tingkat pull (pull rate) dan ukuran antrean (antrean) serta dapat membantu mengatasi throttling lainnya masalah performa. Nilai negatif tidak diizinkan.