Dokumen ini menunjukkan cara melakukan migrasi dari load balancer Seesaw ke load balancer MetalLB.
Menggunakan MetalLB memiliki sejumlah manfaat dibandingkan dengan opsi load balancing lainnya.
Migrasi cluster pengguna
Di file konfigurasi cluster pengguna, pilih kumpulan node, lalu tetapkan enableLoadBalancer
ke true
:
nodePools: - name: pool-1 replicas: 3 enableLoadBalancer: true
Update cluster:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Ganti kode berikut:
ADMIN_CLUSTER_KUBECONFIG: jalur file kubeconfig cluster admin
USER_CLUSTER_CONFIG: jalur file konfigurasi cluster pengguna
Selanjutnya, hapus bagian Seesaw dari file, dan tambahkan bagian MetalLB.
Kemudian, update cluster lagi:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
Pastikan komponen metallb berjalan dengan sukses:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get pods \ --namespace kube-system --selector app=metallb
Output menampilkan Pod untuk pengontrol dan speaker MetalLB. Contoh:
metallb-controller-744884bf7b-rznr9 1/1 Running metallb-speaker-6n8ws 1/1 Running metallb-speaker-nb52z 1/1 Running metallb-speaker-rq4pp 1/1 Running
Setelah migrasi berhasil, hapus VM Seesaw secara manual, yang sudah dinonaktifkan, untuk cluster pengguna. Anda dapat menemukan nama VM Seesaw di bagian vmnames
dari file seesaw-for-[USERCLUSTERNAME].yaml
di direktori konfigurasi Anda.
Contoh: Cluster pengguna, alamat IP statis
Misalkan Anda memiliki cluster pengguna yang menggunakan alamat IP statis untuk node clusternya. Selain itu, anggap cluster tersebut memiliki dua Layanan dengan jenis LoadBalancer
, dan alamat eksternal untuk Layanan tersebut adalah 172.16.21.41 dan 172.16.21.45.
Sesuaikan file konfigurasi cluster pengguna sebagai berikut:
- Pertahankan bagian
network.hostConfig
. - Tetapkan
loadBalancer.kind
keMetalLB
. - Hapus bagian
loadBalancer.seesaw
. - Tambahkan bagian
loadBalancer.metalLB
.
Contoh:
network: hostConfig: dnsServers: - "172.16.255.1" - "172.16.255.2" ntpServers: - "216.239.35.0" loadBalancer: vips: controlPlaneVIP: "172.16.20.30" ingressVIP: "172.16.20.31" kind: MetalLBSeesawseesaw: ipBlockFilePath: "user-cluster-1-ipblock.yaml" vrid: 1 masterIP: "" cpus: 4 memoryMB: 3072metalLB: addressPools: - name: "address-pool-1" addresses: - "172.16.20.31/32" - "172.16.20.40 - 172.16.21.49"
Poin utama dari contoh sebelumnya:
Meskipun cluster tidak akan lagi menggunakan load balancer Seesaw, bagian
network.hostConfig
diperlukan karena node cluster menggunakan alamat IP statis.Nilai
ingressVIP
akan muncul dalam kumpulan alamat MetalLB.Alamat IP eksternal, 172.16.21.41 dan 172.16.21.45, untuk Layanan yang ada dengan jenis
LoadBalancer
disertakan dalam kumpulan alamat MetalLB.
Contoh: Cluster pengguna, DHCP
Misalkan Anda memiliki cluster pengguna yang menggunakan DHCP untuk node clusternya. Selain itu,
anggaplah cluster tersebut memiliki dua Layanan dengan jenis LoadBalancer
, dan alamat
eksternal untuk Layanan tersebut adalah 172.16.21.61 dan 172.16.21.65.
Sesuaikan file konfigurasi cluster pengguna sebagai berikut:
- Hapus bagian
network.hostConfig
. - Tetapkan
loadBalancer.kind
keMetalLB
. - Hapus bagian
loadBalancer.seesaw
. - Tambahkan bagian
loadBalancer.metalLB
.
Contoh:
network:hostConfig: dnsServers: - "172.16.255.1" - "172.16.255.2" ntpServers: - "216.239.35.0"loadBalancer: vips: controlPlaneVIP: "172.16.20.50" ingressVIP: "172.16.20.51" kind: MetalLBSeesawseesaw: ipBlockFilePath: "user-cluster-2-ipblock.yaml" vrid: 1 masterIP: "" cpus: 4 memoryMB: 3072metalLB: addressPools: - name: "address-pool-1" addresses: - "172.16.20.51/32" - "172.16.20.60 - 172.16.21.69"
Poin utama dari contoh sebelumnya:
Cluster tidak akan lagi menggunakan load balancer Seesaw, dan cluster tidak akan menggunakan alamat IP statis untuk node clusternya. Jadi, bagian
network.hostConfig
tidak diperlukan.Nilai
ingressVIP
akan muncul dalam kumpulan alamat MetalLB.Alamat IP eksternal, 172.16.21.61 dan 172.16.21.65, untuk Layanan yang ada dengan jenis
LoadBalancer
disertakan dalam kumpulan alamat MetalLB.
Migrasi cluster admin
Di file konfigurasi cluster admin, tetapkan loadBalancer.kind
ke MetalLB
,
lalu hapus bagian loadBalancer.seesaw
.
Update cluster:
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
Pastikan komponen metallb berjalan dengan sukses:
kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG get pods \ --namespace kube-system --selector app=metallb
Output menampilkan Pod untuk pengontrol dan speaker MetalLB. Contoh:
metallb-controller-744884bf7b-rznr9 1/1 Running metallb-speaker-6n8ws 1/1 Running metallb-speaker-nb52z 1/1 Running metallb-speaker-rq4pp 1/1 Running
Setelah migrasi berhasil, hapus VM Seesaw secara manual, yang sudah dinonaktifkan, untuk cluster admin. Anda dapat menemukan nama VM Seesaw di bagian vmnames
dari file seesaw-for-gke-admin.yaml
di direktori konfigurasi Anda.
Contoh: Cluster admin, alamat IP statis
Misalkan Anda memiliki cluster admin yang menggunakan alamat IP statis untuk node clusternya.
Sesuaikan file konfigurasi cluster admin sebagai berikut:
- Pertahankan bagian
network.hostConfig
. - Tetapkan
loadBalancer.kind
keMetalLB
. - Hapus bagian
loadBalancer.seesaw
.
Contoh:
network: hostConfig: dnsServers: - "172.16.255.1" - "172.16.255.2" ntpServers: - "216.239.35.0" loadBalancer: vips: controlPlaneVIP: "172.16.20.30" kind: MetalLBSeesawseesaw: ipBlockFilePath: "user-cluster-1-ipblock.yaml" vrid: 1 masterIP: "" cpus: 4 memoryMB: 3072
Poin penting dari contoh sebelumnya:
- Meskipun cluster tidak akan lagi menggunakan load balancer Seesaw, bagian
network.hostConfig
diperlukan karena node cluster menggunakan alamat IP statis.
Contoh: Cluster Admin, DHCP
Misalkan Anda memiliki cluster admin yang menggunakan DHCP untuk node clusternya.
Sesuaikan file konfigurasi cluster admin sebagai berikut:
- Hapus bagian
network.hostConfig
. - Tetapkan
loadBalancer.kind
keMetalLB
. - Hapus bagian
loadBalancer.seesaw
.
Contoh:
network:hostConfig: dnsServers: - "172.16.255.1" - "172.16.255.2" ntpServers: - "216.239.35.0"loadBalancer: vips: controlPlaneVIP: "172.16.20.30" kind: MetalLBSeesawseesaw: ipBlockFilePath: "user-cluster-1-ipblock.yaml" vrid: 1 masterIP: "" cpus: 4 memoryMB: 3072
Poin penting dari contoh sebelumnya:
- Cluster tidak akan lagi menggunakan load balancer Seesaw, dan cluster tidak akan menggunakan alamat IP statis untuk node clusternya. Jadi, bagian
network.hostConfig
tidak diperlukan.
Pemecahan masalah
Jika gkectl update
gagal selama migrasi cluster pengguna, dan Pod metallb tidak berjalan di cluster pengguna, nyalakan VM Seesaw cluster pengguna secara manual.
Tindakan ini akan membangun kembali traffic ke VIP yang saat ini digunakan. Namun, VIP yang baru dibuat mungkin tidak akan ditayangkan oleh VM Seesaw jika Pod load-balancer-seesaw
tidak berjalan. Jika demikian, buat tiket dukungan.
Jika gkectl update
gagal selama migrasi cluster admin, dan Pod metallb
tidak berjalan di cluster admin, aktifkan cluster admin Seesaw
VM secara manual. Hal ini dapat mengizinkan traffic ke VIP bidang kontrol yang saat ini digunakan agar cluster
pengguna berfungsi lagi. Tetapi VIP untuk bidang kontrol cluster admin
itu sendiri mungkin tidak berfungsi. Dalam hal ini, edit file kubeconfig dari cluster admin untuk langsung menggunakan alamat IP node kontrol cluster admin.
Selain itu, di namespace kube-system
, ubah jenis Layanan kube-apiserver
dari ClusterIP
menjadi LoadBalancer
. Jika perlu, buat tiket dukungan.