Mengelola kapasitas node menggunakan Terraform
Halaman ini menjelaskan cara memperluas atau mengurangi kapasitas cluster di solusi VMware di Google Cloud dengan menambahkan node ESXi bare-metal ke, atau menghapus node ESXi bare-metal dari, cluster yang ada menggunakan modul otomatisasi Terraform end-to-end (E2E).
Memperluas kapasitas cluster
Untuk memperluas cluster yang ada dari node X ke node X + N, gunakan ruang kerja dan state file Terraform (terraform.tfstate) yang sama dengan yang Anda gunakan selama deployment awal cluster.
Langkah-langkah berikut menunjukkan cara menambahkan node kelima (vcf-mgmt-sample-node-5) ke
cluster pengelolaan empat node (berdasarkan contoh konfigurasi dalam
file e2e-terraform/sample_management_cluster.tfvars):
Perbarui file definisi variabel (
management_cluster.tfvars): Perbarui variabel konfigurasi dalam filemanagement_cluster.tfvarsAnda sebagai berikut:- Tetapkan variabel
deployment_modeke"node_addition". - Perbarui variabel
number_of_nodesdari4menjadi5. - Tambahkan
"vcf-mgmt-sample-node-5"ke daftarnode_namesjika Anda secara eksplisit menentukannode_namesselama pembuatan cluster. Biarkan daftarnode_nameskosong jika Anda tidak menentukannya di awal. - Tambahkan alamat IPv4 baru ke daftar
mgmt_nic_ip_values,vsan_ip_values,vmotion_ip_values,nsx_tep_ip_values, danadditional_dynamic_nicsjika Anda secara eksplisit menentukan variabel ini selama pembuatan cluster. Jika Anda mengosongkan daftar ini untuk alokasi otomatis, jangan perbarui daftar tersebut. - Perbarui daftar
availability_domains(misalnya,[1, 2, 3, 4, 5]) jika Anda secara eksplisit menentukan variabel ini selama pembuatan cluster. Jika Anda membiarkannya kosong, jangan perbarui.
deployment_mode = "node_addition" number_of_nodes = 5 node_names = [ "vcf-mgmt-sample-node-1", "vcf-mgmt-sample-node-2", "vcf-mgmt-sample-node-3", "vcf-mgmt-sample-node-4", "vcf-mgmt-sample-node-5" # New node ] mgmt_nic_ip_values = ["10.200.0.3", "10.200.0.4", "10.200.0.5", "10.200.0.6", "10.200.0.7"] vsan_ip_values = ["10.200.1.3", "10.200.1.4", "10.200.1.5", "10.200.1.6", "10.200.1.7"] vmotion_ip_values = ["10.200.2.3", "10.200.2.4", "10.200.2.5", "10.200.2.6", "10.200.2.7"] nsx_tep_ip_values = ["10.200.3.3", "10.200.3.4", "10.200.3.5", "10.200.3.6", "10.200.3.7"] additional_dynamic_nics = [ { name = "additional-nic-1" subnet_name = "vcf-mgmt-sample-additional-subnet-1" vlan_id = 210 ip_address_type = "reserved_custom" ip_values = ["10.200.4.3", "10.200.4.4", "10.200.4.5", "10.200.4.6", "10.200.4.7"] } ] availability_domains = [1, 2, 3, 4, 5]- Tetapkan variabel
Membuat dan menerapkan rencana eksekusi Terraform:
terraform plan -var-file='management_cluster.tfvars' -out=tfplan terraform apply tfplanLampirkan node baru ke grup endpoint jaringan (NEG): Ambil dan jalankan perintah
gcloud compute network-endpoint-groups updateyang dihasilkan dari output Terraformneg_attachment_commandsuntuk melampirkan instance baru ke NEG pengelolaan dan NSX:# View attachment commands from Terraform outputs terraform output neg_attachment_commands # Run the generated commands to attach the new instance to the Management and NSX NEGs gcloud compute network-endpoint-groups update vcf-mgmt-sample-neg \ --zone='ZONE' \ --project='PROJECT_ID' \ --add-endpoint='instance=vcf-mgmt-sample-node-5' gcloud compute network-endpoint-groups update vcf-mgmt-sample-nsx-neg \ --zone='ZONE' \ --project='PROJECT_ID' \ --add-endpoint='instance=vcf-mgmt-sample-node-5'
Sebelum menjalankan perintah, ganti variabel berikut:
ZONE: Zona Google Cloud tempat cluster berada.PROJECT_ID: ID project Google Cloud target Anda.
Perilaku yang diharapkan
Saat Anda menerapkan konfigurasi node_addition, Terraform akan melakukan operasi non-disruptif berikut:
- Hanya menyediakan instance ESXi bare-metal baru (
vcf-mgmt-sample-node-5) dan mencadangkan alamat IPv4 internal terkait. - Menghasilkan output
neg_attachment_commandssehingga Anda dapat melampirkan instance baru ke pengelolaan yang ada dan NEG zona NSX. - Mendaftarkan data Cloud DNS penerusan (
A) dan balik (PTR) untuk node baru. - Membiarkan semua node, load balancer, dan konfigurasi jaringan yang sedang berjalan tidak terganggu.
Langkah berikutnya
Setelah Anda memperluas kapasitas cluster, selesaikan langkah-langkah berikut:
- Jalankan skrip toolkit (
python3 -m vcf_deployer.main --config config.json) seperti yang dijelaskan dalam Menyiapkan node dan men-deploy VCF menggunakan toolkit untuk mereset sandirootESXi awal di setiap host baru dan menginisialisasi node ESXi baru untuk penambahan cluster. Hapus objekvcf_deployment_configdi fileconfig.json. - Aktifkan dan tambahkan node yang telah disiapkan ke cluster VMware Cloud Foundation (VCF) 9.x menggunakan UI atau API VMware.
Mengurangi kapasitas cluster
Untuk mengurangi cluster yang ada dari node X menjadi node X - N, gunakan ruang kerja dan state file Terraform (terraform.tfstate) yang sama dengan yang Anda gunakan selama deployment awal cluster.
Langkah-langkah berikut menunjukkan cara menghapus node ketiga (vcf-mgmt-sample-node-3)
dari cluster pengelolaan lima node yang dijelaskan dalam
Memperluas kapasitas cluster:
Hapus node dari cluster VCF: Hapus host ESXi target dari cluster VCF 9.x Anda dan hentikan penggunaannya menggunakan VMware SDDC Manager. Untuk mengetahui informasi selengkapnya, lihat Menonaktifkan host dalam dokumentasi VMware Cloud Foundation.
Jika berlaku, nonaktifkan proteksi dari penghapusan pada node: Terraform tidak dapat menghapus instance yang mengaktifkan proteksi dari penghapusan. Jika perlindungan penghapusan tidak diaktifkan pada node yang ingin Anda hapus, lewati langkah ini. Jika tidak, nonaktifkan proteksi dari penghapusan di setiap node yang ingin Anda hapus:
gcloud compute instances update vcf-mgmt-sample-node-3 \ --zone='ZONE' \ --project='PROJECT_ID' \ --no-deletion-protection
Sebelum menjalankan perintah, ganti variabel berikut:
ZONE: Zona Google Cloud tempat cluster berada.PROJECT_ID: ID project Google Cloud target Anda.
Untuk menonaktifkan proteksi dari penghapusan menggunakan konsol Google Cloud , lihat Menghentikan dan menghapus node.
Perbarui file definisi variabel (
management_cluster.tfvars): Perbarui variabel konfigurasi dalam filemanagement_cluster.tfvarsAnda sebagai berikut:- Tetapkan variabel
deployment_modeke"node_deletion". - Perbarui variabel
number_of_nodesdari5menjadi4. - Tentukan daftar
node_namesdengan nama node yang tersisa, dan hapus"vcf-mgmt-sample-node-3"dari daftar. - Hapus alamat IPv4 node yang dihapus dari daftar
mgmt_nic_ip_values,vsan_ip_values,vmotion_ip_values,nsx_tep_ip_values, danadditional_dynamic_nicsjika Anda secara eksplisit menentukan variabel ini selama pembuatan cluster. - Tentukan daftar
availability_domainsdengan domain ketersediaan setiap node yang tersisa (misalnya,[1, 2, 4, 5]).
Dalam mode
node_deletion, Anda harus selalu menentukan daftarnode_namesdanavailability_domainssecara eksplisit, meskipun Anda tidak menentukannya selama pembuatan cluster atau operasi Terraform sebelumnya pada cluster (misalnya, jika nama node dibuat secara otomatis). Menentukan daftar ini akan memastikan Terraform hanya menghapus node yang diinginkan. Pastikan setiap entri cocok dengan nama dan domain ketersediaan node yang tersisa.deployment_mode = "node_deletion" number_of_nodes = 4 # Always required in node_deletion mode node_names = [ "vcf-mgmt-sample-node-1", "vcf-mgmt-sample-node-2", # "vcf-mgmt-sample-node-3" removed "vcf-mgmt-sample-node-4", "vcf-mgmt-sample-node-5" ] mgmt_nic_ip_values = ["10.200.0.3", "10.200.0.4", "10.200.0.6", "10.200.0.7"] vsan_ip_values = ["10.200.1.3", "10.200.1.4", "10.200.1.6", "10.200.1.7"] vmotion_ip_values = ["10.200.2.3", "10.200.2.4", "10.200.2.6", "10.200.2.7"] nsx_tep_ip_values = ["10.200.3.3", "10.200.3.4", "10.200.3.6", "10.200.3.7"] additional_dynamic_nics = [ { name = "additional-nic-1" subnet_name = "vcf-mgmt-sample-additional-subnet-1" vlan_id = 210 ip_address_type = "reserved_custom" ip_values = ["10.200.4.3", "10.200.4.4", "10.200.4.6", "10.200.4.7"] } ] # Always required in node_deletion mode availability_domains = [1, 2, 4, 5]- Tetapkan variabel
Buat dan terapkan rencana eksekusi Terraform: Tinjau output rencana untuk memverifikasi bahwa Terraform hanya menghancurkan resource node yang ingin Anda hapus, lalu terapkan rencana tersebut:
terraform plan -var-file='management_cluster.tfvars' -out=tfplan terraform apply tfplan
Perilaku yang diharapkan
Saat Anda menerapkan konfigurasi node_deletion, Terraform akan melakukan operasi berikut:
- Hanya menghapus instance ESXi bare-metal yang ditargetkan
(
vcf-mgmt-sample-node-3) dan boot disk-nya. - Menghapus instance yang dihapus dari NEG zona pengelolaan dan NSX.
- Merilis alamat IPv4 internal yang dicadangkan dari node yang dihapus.
- Menghapus data Cloud DNS penerusan (
A) dan balik (PTR) dari node yang dihapus. - Membiarkan semua node, load balancer, dan konfigurasi jaringan yang tersisa tidak terganggu.