Memigrasikan cluster admin ke ketersediaan tinggi (HA)

Dokumen ini menunjukkan cara bermigrasi ke cluster admin ketersediaan tinggi (HA) dari cluster admin non-HA.

1.29: Pratinjau
1.28: Tidak tersedia
1.16: Tidak tersedia

Cluster admin dengan ketersediaan tinggi (HA) memiliki tiga node bidang kontrol dan tanpa node add-on. Cluster admin non-HA memiliki satu node bidang kontrol dan dua node add-on.

Ringkasan prosedur

Berikut adalah langkah-langkah utama yang diperlukan dalam migrasi:

  1. Edit file konfigurasi cluster admin.

  2. Jalankan gkectl update admin. Perintah ini akan melakukan hal berikut:

    • Munculkan cluster eksternal (Kind) dan pastikan cluster admin non-HA saat ini dalam status yang responsif.

    • Buat bidang kontrol cluster admin baru menggunakan spesifikasi ketersediaan tinggi (HA) dan VIP bidang kontrol baru.

    • Nonaktifkan bidang kontrol cluster admin yang ada.

    • Mengambil snapshot etcd dari cluster admin yang ada.

    • Pulihkan data cluster admin lama di bidang kontrol ketersediaan tinggi (HA) baru.

    • Rekonsiliasi cluster admin yang dipulihkan untuk memenuhi status akhir cluster admin HA.

Notes

  • Selama migrasi, tidak ada periode nonaktif untuk beban kerja cluster pengguna.

  • Selama migrasi, ada periode nonaktif untuk bidang kontrol cluster admin. (Periode nonaktif adalah <18 menit berdasarkan pengujian kami, tetapi durasi sebenarnya bergantung pada lingkungan infrastruktur masing-masing).

  • Persyaratan untuk cluster admin dengan ketersediaan tinggi (HA) masih berlaku untuk migrasi non-HA ke ketersediaan tinggi (HA). Artinya, jika Anda menggunakan load balancer Seesaw untuk cluster admin non-HA, Anda harus bermigrasi ke MetalLB terlebih dahulu, lalu bermigrasi ke cluster admin dengan ketersediaan tinggi (HA). Hal ini karena cluster admin dengan ketersediaan tinggi (HA) tidak mendukung Seesaw.

  • Setelah migrasi berhasil dilakukan, akan ada resource tersisa (misalnya VM master admin non-HA) yang sengaja kami simpan untuk pemulihan kegagalan. Anda dapat membersihkannya secara manual jika perlu.

Sebelum dan sesudah migrasi

Berikut adalah perbedaan utama dalam cluster sebelum dan sesudah migrasi:

Sebelum migrasiSetelah migrasi
Replika node bidang kontrol13
Node add-on20
Replika Pod bidang kontrol
(kube-apiserver, kube-etcd, dll.)
13
Ukuran disk data100GB * 125GB * 3
Jalur disk data Tetapkan oleh vCenter.dataDisk dalam file konfigurasi cluster admin Dibuat otomatis pada direktori: /anthos/[ADMIN_CLUSTER_NAME]/default/[MACHINE_NAME]-data.vmdk
Load balancer untuk VIP bidang kontrol Ditetapkan oleh loadBalancer.kind di file konfigurasi cluster admin keepalived + haproxy
Alokasi alamat IP untuk node bidang kontrol cluster admin DHCP atau statis, bergantung pada network.ipMode.type 3 alamat IP statis
Alokasi alamat IP untuk node bidang kontrol cluster pengguna kubeception DHCP atau statis, bergantung pada network.ipMode.type DHCP atau statis, bergantung pada network.ipMode.type
File checkpointDiaktifkan secara defaultTidak digunakan

Mengedit file konfigurasi cluster admin

Anda perlu menentukan empat alamat IP tambahan:

  • Tiga alamat IP untuk node bidang kontrol dari cluster admin
  • VIP bidang kontrol baru untuk load balancer cluster admin

Anda juga perlu mengubah beberapa kolom lain di file konfigurasi cluster admin.

Tentukan alamat IP

  1. Di file konfigurasi cluster admin, isi bagian network.controlPlaneIPBlock. Contoh:

    controlPlaneIPBlock:
     netmask: "255.255.255.0"
     gateway: "172.16.20.1"
     ips:
     – ip: "172.16.20.50"
       hostname: "admin-cp-node-1"
     – ip: "172.16.20.51"
       hostname: "admin-cp-node-2"
     – ip: "172.16.20.52"
       hostname: "admin-cp-node-3"
    
  2. Isi bagian hostconfig. Jika cluster admin Anda menggunakan alamat IP statis, bagian ini sudah terisi. Contoh:

    hostConfig:
     dnsServers:
     – 203.0.113.1
     – 198.51.100.1
     ntpServers:
     – 216.239.35.12
    
  3. Ganti nilai loadBalancer.vips.controlPlaneVIP dengan VIP baru. Contoh:

    loadBalancer:
     vips:
       controlPlaneVIP: "172.16.20.59"
    

Memperbarui kolom konfigurasi tambahan

  1. Tetapkan adminMaster.replicas ke 3:

    adminMaster:
     replicas: 3
     cpus: 4
     memoryMB: 8192
    
  2. Hapus kolom vCenter.dataDisk. Hal ini karena untuk cluster admin HA, jalur untuk tiga disk data yang digunakan oleh node bidang kontrol otomatis dihasilkan pada direktori root anthos di datastore.

  3. Jika loadBalancer.manualLB.controlPlaneNodePort memiliki nilai bukan nol, tetapkan ke 0.

Menyesuaikan konfigurasi load balancer manual

Jika cluster admin Anda menggunakan load balancing manual, lakukan langkah-langkah di bagian ini. Jika tidak, lewati bagian ini.

Untuk masing-masing dari tiga alamat IP node bidang kontrol baru yang Anda tentukan di bagian network.controlPlaneIPBlock, konfigurasikan pemetaan ini di load balancer:

(controlPlaneVIP:443) -> (NEW_ ditemukan_IP_ADDRESS:lama controlPlaneNodePort)

Hal ini dilakukan agar VIP bidang kontrol lama akan berfungsi selama migrasi.

Mengupdate cluster admin

  1. Mulai migrasi:

    gkectl update admin --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config ADMIN_CLUSTER_CONFIG
    

    Ganti kode berikut:

    • ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig cluster admin.

    • ADMIN_CLUSTER_CONFIG: jalur file konfigurasi cluster admin

  2. Perintah tersebut menampilkan progres migrasi.

    Saat diminta, masukkan Y untuk melanjutkan.

  3. Setelah migrasi selesai, file kubeconfig cluster admin akan otomatis diperbarui untuk menggunakan VIP bidang kontrol baru. Sementara itu, VIP bidang kontrol lama masih berfungsi, dan juga dapat digunakan untuk mengakses cluster admin dengan ketersediaan tinggi (HA) yang baru.

Membersihkan secara manual sisa resource jika diperlukan

Selama migrasi, gkectl tidak menghapus VM bidang kontrol cluster admin. Sebagai gantinya, sistem hanya mematikan VM, bukan menghapusnya dari vSphere. Jika Anda ingin menghapus VM bidang kontrol lama setelah migrasi berhasil, Anda harus melakukan penghapusan secara manual.

Untuk menghapus VM bidang kontrol lama dan resource terkait secara manual:

  1. Pastikan VM master admin non-HA gke-admin-master-xxx sudah dimatikan.
  2. Hapus VM master admin non-HA gke-admin-master-xxx dari vSphere.
  3. Hapus template VM master admin non-HA gke-admin-master-xxx-tmpl dari vSphere.
  4. Hapus disk data admin non-HA dan file checkpoint admin.
  5. Bersihkan file sementara yang disimpan di /home/ubuntu/admin-ha-migration/[ADMIN_CLUSTER_NAME]/.

Berikut adalah perintah govc jika menggunakan cli lebih disukai:

  // Configure govc credentials
  export GOVC_INSECURE=1
  export GOVC_URL=VCENTER_URL
  export GOVC_DATACENTER=DATACENTER
  export GOVC_DATASTORE=DATASTORE
  export GOVC_USERNAME=USERNAME
  export GOVC_PASSWORD=PASSWORD

  // Configure admin master VM name (you can find the master VM name from the "[HA Migration]" logs)
  export ADMIN_MASTER_VM=ADMIN_MASTER_VM_NAME

  // Configure datadisk path (remove ".vmdk" suffix)
  export DATA_DISK_PATH=DATADISK_PATH_WITHOUT_VMDK

  // Check whether admin master is in "poweredOff" state:
  govc vm.info $ADMIN_MASTER_VM | grep Power

  // Delete admin master VM
  govc vm.destroy $ADMIN_MASTER_VM

  // Delete admin master VM template
  govc vm.destroy "$ADMIN_MASTER_VM"-tmpl

  // Delete data disk
  govc datastore.ls $DATA_DISK_PATH
  govc datastore.rm $DATA_DISK_PATH

  // Delete admin checkpoint file
  govc datastore.ls "$DATA_DISK_PATH"-checkpoint.yaml
  govc datastore.rm "$DATA_DISK_PATH"-checkpoint.yaml