Sebaiknya konfigurasikan salah satu mode load balancing berikut:
Dengan mode gabungan, Google Distributed Cloud menyediakan dan mengelola load balancer. Anda tidak perlu mendapatkan lisensi untuk load balancer, dan jumlah penyiapan yang harus Anda lakukan sangat minimal.
Dengan mode manual, Google Distributed Cloud menggunakan load balancer pilihan Anda, seperti F5 BIG-IP atau Citrix. Mode load balancing manual mengharuskan Anda melakukan lebih banyak konfigurasi daripada dengan mode gabungan.
Load balancing manual didukung untuk jenis cluster berikut:
Cluster pengguna yang mengaktifkan Controlplane V2. Dengan Controlplane V2, node control plane untuk cluster pengguna berada di cluster pengguna itu sendiri.
Cluster pengguna yang menggunakan kubeception. Istilah kubeception mengacu pada kasus saat bidang kontrol untuk cluster pengguna berjalan di satu atau beberapa node di cluster admin. Jika Controlplane V2 tidak diaktifkan, cluster pengguna akan menggunakan kubeception.
Dokumen ini menjelaskan langkah-langkah yang perlu Anda lakukan jika memilih untuk menggunakan mode penyeimbangan beban manual.
Dalam dokumen ini, Anda akan menyisihkan alamat IP untuk node bidang kontrol dan node pekerja untuk digunakan nanti. Anda juga menyisihkan alamat IP untuk IP virtual (VIP) dan memutuskan nilai NodePort. Idenya adalah Anda memilih alamat IP dan nilai NodePort yang ingin digunakan, lalu mencatatnya dalam spreadsheet atau alat lainnya. Saat Anda siap membuat cluster, Anda akan memerlukan alamat IP dan nilai NodePort untuk mengisi file konfigurasi cluster admin dan cluster pengguna serta file blok IP untuk cluster Anda.
Anda juga akan memerlukan alamat IP dan nilai NodePort saat mengonfigurasi load balancer secara manual untuk cluster pengguna.
Mengonfigurasi jenis load balancer yang berbeda untuk bidang kontrol
Pada versi 1.32 dan yang lebih tinggi saat advanced cluster diaktifkan, Anda dapat mengonfigurasi jenis load balancer yang berbeda untuk bidang kontrol saat membuat cluster baru. Untuk informasi selengkapnya, lihat referensi berikut:
- Cluster admin:
adminMaster.controlPlaneLoadBalancer
- Cluster pengguna:
masterNode.controlPlaneLoadBalancer
Menyisihkan alamat IP node
Dengan mode load balancing manual, Anda tidak dapat menggunakan DHCP. Anda harus menentukan alamat IP statis untuk node cluster Anda. Anda harus menyisihkan alamat yang cukup untuk node di cluster admin dan node di semua cluster pengguna yang ingin Anda buat. Untuk mengetahui detail tentang jumlah alamat IP node yang harus dicadangkan, lihat Merencanakan alamat IP Anda (Controlplane V2) dan Merencanakan alamat IP Anda (kubeception).
Mengonfigurasi alamat IP
Tempat Anda mengonfigurasi alamat IP statis yang telah Anda sisihkan bergantung pada jenis cluster dan apakah Controlplane V2 diaktifkan di cluster pengguna Anda.
Cluster admin HA
Tabel berikut menjelaskan fungsi alamat IP dan tempat Anda mengonfigurasinya untuk cluster admin HA.
IP Statis | Konfigurasi |
---|---|
Node bidang kontrol | Jika
cluster menggunakan domain topologi, tambahkan alamat IP dalam
file blok IP untuk
cluster admin, dan tambahkan jalur di
kolom Jika cluster tidak menggunakan domain topologi, tambahkan alamat IP di
file konfigurasi cluster admin di bagian
|
1.16 dan yang lebih rendah: Node add-on | File blok IP cluster admin dan tambahkan jalur di kolom network.ipMode.ipBlockFilePath dalam file konfigurasi cluster admin |
Pada versi 1.28 dan yang lebih tinggi, cluster admin HA baru tidak memiliki node add-on, sehingga Anda tidak perlu menyisihkan alamat IP untuk node add-on seperti pada versi sebelumnya.
Cluster admin non-HA
Tabel berikut menjelaskan fungsi alamat IP dan tempat Anda mengonfigurasinya untuk cluster admin non-HA.
IP Statis | Konfigurasi |
---|---|
Node bidang kontrol | File blok IP cluster admin dan tambahkan jalur di kolom network.ipMode.ipBlockFilePath dalam file konfigurasi cluster admin |
Node add-on | File pemblokiran IP cluster admin |
Pada versi 1.28 dan yang lebih tinggi, semua cluster admin baru harus berupa cluster dengan ketersediaan tinggi (HA) dengan 3 node bidang kontrol.
Cluster pengguna CP V2
Tabel berikut menjelaskan fungsi alamat IP dan tempat Anda mengonfigurasinya untuk cluster pengguna dengan Controlplane V2 diaktifkan.
IP Statis | Konfigurasi |
---|---|
Node bidang kontrol | Jika
cluster menggunakan domain topologi, tambahkan alamat IP dalam
file blok IP untuk
cluster pengguna, dan tambahkan jalur di
kolom Jika cluster tidak menggunakan domain topologi, tambahkan alamat IP di
file konfigurasi cluster pengguna di bagian
|
Node pekerja | File blok IP cluster pengguna dan tambahkan jalur di kolom
network.ipMode.ipBlockFilePath dalam
file konfigurasi cluster pengguna |
Cluster pengguna Kubeception
Tabel berikut menjelaskan fungsi alamat IP dan tempat Anda mengonfigurasinya untuk cluster pengguna yang menggunakan kubeception.
IP Statis | Konfigurasi |
---|---|
Node bidang kontrol | File blok IP cluster admin dan tambahkan jalur di kolom network.ipMode.ipBlockFilePath dalam file konfigurasi cluster admin |
Node pekerja | File blok IP cluster pengguna dan tambahkan jalur di kolom
network.ipMode.ipBlockFilePath dalam
file konfigurasi cluster pengguna |
Di versi 1.30 dan yang lebih tinggi, Controlplane V2 diperlukan untuk cluster pengguna baru.
Menyisihkan alamat IP untuk VIP
Terlepas dari apakah Anda menggunakan mode load balancing terintegrasi, gabungan, atau manual, Anda harus menyisihkan beberapa alamat IP yang akan digunakan untuk IP virtual (VIP) untuk load balancing. VIP ini memungkinkan klien eksternal menjangkau server API Kubernetes dan layanan ingress Anda di cluster pengguna.
Mengonfigurasi VIP
Tempat Anda mengonfigurasi VIP bergantung pada jenis cluster.
Cluster admin HA
Tabel berikut menjelaskan fungsi VIP dan tempat Anda mengonfigurasinya untuk cluster admin HA.
VIP | Konfigurasi |
---|---|
VIP untuk server Kubernetes API cluster admin | File konfigurasi cluster admin di kolom
loadBalancer.vips.controlPlaneVIP |
1.15 dan yang lebih rendah: VIP add-on | File konfigurasi cluster admin di kolom
loadBalancer.vips.addonsVIP |
Perhatikan perbedaan versi berikut:
Di 1.16 dan yang lebih tinggi, Anda tidak perlu mengonfigurasi VIP add-on untuk cluster admin HA.
Di 1.28 dan yang lebih tinggi, cluster admin HA baru tidak memiliki node add-on.
Cluster admin non-HA
Tabel berikut menjelaskan fungsi VIP dan tempat Anda mengonfigurasinya untuk cluster admin non-HA.
VIP | Konfigurasi |
---|---|
VIP untuk server Kubernetes API cluster admin | File konfigurasi cluster admin di kolom
loadBalancer.vips.controlPlaneVIP |
1.15 dan yang lebih rendah: VIP add-on | File konfigurasi cluster admin di kolom
loadBalancer.vips.addonsVIP |
Perhatikan perbedaan versi berikut:
Di 1.16 dan yang lebih tinggi, Anda tidak perlu mengonfigurasi VIP add-on untuk cluster admin non-HA.
Cluster pengguna CP V2
Tabel berikut menjelaskan fungsi VIP dan tempat Anda mengonfigurasinya untuk cluster pengguna dengan Controlplane V2 diaktifkan.
VIP | Konfigurasi |
---|---|
VIP untuk server Kubernetes API cluster pengguna | File konfigurasi cluster pengguna di kolom
loadBalancer.vips.controlPlaneVIP |
VIP untuk layanan ingress di cluster pengguna | File konfigurasi cluster pengguna di kolom
loadBalancer.vips.ingressVIP |
Cluster pengguna Kubeception
Tabel berikut menjelaskan fungsi VIP dan tempat Anda mengonfigurasinya untuk cluster pengguna yang menggunakan kubeception.
VIP | Konfigurasi |
---|---|
VIP untuk server Kubernetes API cluster pengguna | File konfigurasi cluster pengguna di kolom
loadBalancer.vips.controlPlaneVIP |
VIP untuk layanan ingress di cluster pengguna | File konfigurasi cluster pengguna di kolom
loadBalancer.vips.ingressVIP |
Menyisihkan nilai NodePort
Di Google Distributed Cloud, server Kubernetes API dan layanan ingress diekspos oleh Kubernetes Services. Dengan mode penyeimbangan beban manual, Anda harus memilih nilai NodePort sendiri untuk Layanan ini. Pilih nilai dalam rentang 30000 - 32767.
Mengonfigurasi nilai NodePort
Tempat Anda mengonfigurasi nilai NodePort bergantung pada apakah cluster pengguna telah mengaktifkan ControlPlane V2.
Cluster admin HA
Tabel berikut menjelaskan fungsi NodePort dan tempat Anda mengonfigurasinya untuk cluster admin HA.
nodePort |
Konfigurasi |
---|---|
1.15 dan yang lebih rendah: nodePort untuk node add-on |
File konfigurasi cluster admin di kolom
loadBalancer.manualLB.addonsNodePort |
Di versi 1.16 dan yang lebih tinggi, Anda tidak perlu mengonfigurasi NodePort untuk node add-on bagi cluster admin HA.
Cluster admin non-HA
Tabel berikut menjelaskan fungsi nilai NodePort dan tempat Anda mengonfigurasinya untuk cluster admin non-HA.
nodePort |
Konfigurasi |
---|---|
1.16 dan yang lebih lama: nodePort untuk server API Kubernetes
dari cluster admin |
1.15 dan yang lebih lama: File konfigurasi cluster admin di kolom
loadBalancer.vips.controlPlaneNodePort |
1.15 dan yang lebih lama: nodePort untuk node add-on |
File konfigurasi cluster admin di kolom
loadBalancer.manualLB.addonsNodePort |
Di versi 1.16 dan yang lebih baru, Anda tidak perlu mengonfigurasi NodePort untuk node add-on untuk cluster admin non-HA.
Cluster pengguna CP V2
Tabel berikut menjelaskan fungsi NodePort dan tempat Anda mengonfigurasinya untuk cluster pengguna dengan Controlplane V2 diaktifkan. Pada versi 1.30 dan yang lebih baru, Anda tidak perlu mengonfigurasi nilai untuk NodePort ingress.
nodePorts |
Konfigurasi |
---|---|
HTTP nodePort untuk layanan ingress di cluster
pengguna |
File konfigurasi cluster pengguna di
loadBalancer.manualLB.ingressHTTPNodePort |
HTTPS nodePort untuk layanan ingress di cluster
pengguna |
File konfigurasi cluster pengguna di
loadBalancer.manualLB.ingressHTTPSNodePort |
Cluster pengguna Kubeception
Tabel berikut menjelaskan fungsi nilai NodePort dan tempat Anda mengonfigurasinya untuk cluster pengguna yang menggunakan kubeception.
nodePort |
Konfigurasi |
---|---|
nodePort untuk server Kubernetes API cluster
pengguna |
File konfigurasi cluster pengguna di kolom
loadBalancer.manualLB.controlPlaneNodePort |
nodePort untuk server Konnectivity cluster pengguna (server Konnectivity menggunakan VIP bidang kontrol) |
File konfigurasi cluster pengguna di kolom
loadBalancer.manualLB.konnectivityServerNodePort |
HTTP nodePort untuk layanan ingress di cluster
pengguna |
File konfigurasi cluster pengguna di
loadBalancer.manualLB.ingressHTTPNodePort |
HTTPS nodePort untuk layanan ingress di cluster
pengguna |
File konfigurasi cluster pengguna di
loadBalancer.manualLB.ingressHTTPSNodePort |
Contoh file konfigurasi cluster
Contoh berikut menunjukkan sebagian file konfigurasi cluster admin dan pengguna:
Cluster admin HA
Versi 1.16 dan yang lebih tinggi:
network: controlPlaneIPBlock: netmask: "255.255.248.0" gateway: "21.0.143.254" ips: - ip: "21.0.140.226" hostname: "admin-cp-vm-1" - ip: "21.0.141.48" hostname: "admin-cp-vm-2" - ip: "21.0.141.65" hostname: "admin-cp-vm-3" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" kind: ManualLB
Versi 1.15 dan yang lebih lama memerlukan VIP dan NodePort untuk node add-on.
network: controlPlaneIPBlock: netmask: "255.255.248.0" gateway: "21.0.143.254" ips: - ip: "21.0.140.226" hostname: "admin-cp-vm-1" - ip: "21.0.141.48" hostname: "admin-cp-vm-2" - ip: "21.0.141.65" hostname: "admin-cp-vm-3" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" addonsVIP: "203.0.113.4" kind: ManualLB manualLB: addonsNodePort: 31405
Cluster admin non-HA
Versi 1.16 dan yang lebih tinggi:
network: ipMode: type: static ipBlockFilePath: "ipblock-admin.yaml" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" kind: ManualLB manualLB: controlPlaneNodePort: 30562
Versi 1.15 dan yang lebih lama memerlukan VIP dan NodePort untuk node add-on.
network: ipMode: type: static ipBlockFilePath: "ipblock-admin.yaml" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" addonsVIP: "172.16.21.41" kind: ManualLB manualLB: controlPlaneNodePort: 30562 addonsNodePort: 30563
Cluster pengguna CP V2
network:
ipMode:
type: static
ipBlockFilePath: "ipblock1.yaml"
controlPlaneIPBlock:
netmask: "255.255.255.0"
gateway: "172.16.21.1"
ips:
- ip: "172.16.21.6"
hostname: "cp-vm-1"
- ip: "172.16.21.7"
hostname: "cp-vm-2"
- ip: "172.16.21.8"
hostname: "cp-vm-3"
loadBalancer:
vips:
controlPlaneVIP: "172.16.21.40"
ingressVIP: "172.16.21.30"
kind: ManualLB
manualLB:
ingressHTTPNodePort: 30243
ingressHTTPSNodePort: 30879
Cluster pengguna Kubeception
network:
ipMode:
type: static
ipBlockFilePath: "ipblock1.yaml"
loadBalancer:
vips:
controlPlaneVIP: "172.16.21.40"
ingressVIP: "172.16.21.30"
kind: ManualLB
manualLB:
ingressHTTPNodePort: 30243
ingressHTTPSNodePort: 30879
konnectivityServerNodePort: 30563
controlPlaneNodePort: 30562
Mengonfigurasi load balancer
Gunakan konsol atau alat pengelolaan load balancer Anda untuk mengonfigurasi pemetaan berikut di load balancer Anda. Cara melakukannya bergantung pada load balancer Anda.
Cluster admin HA
Traffic ke node bidang kontrol
Pemetaan yang perlu Anda konfigurasi bergantung pada apakah Anda akan mengaktifkan cluster lanjutan saat membuat cluster admin.
Jika cluster lanjutan tidak diaktifkan: Google Distributed Cloud secara otomatis menangani load balancing traffic panel kontrol untuk cluster admin HA. Meskipun Anda tidak perlu mengonfigurasi pemetaan di load balancer, Anda harus menentukan alamat IP di kolom
loadBalancer.vips.controlPlaneVIP
.Jika cluster lanjutan diaktifkan, Anda perlu mengonfigurasi load balancer sebagai berikut:
Tentukan alamat IP di kolom
loadBalancer.vips.controlPlaneVIP
.Konfigurasi pemetaan berikut:
- (
controlPlaneVIP
:443
) -> (CONTROL_PLANE_NODE_IP_ADDRESSES:6433
)
- (
Pastikan health check backend dikonfigurasi dengan benar. Health check harus menggunakan HTTPS dan memeriksa endpoint
/readyz
di port6443
. Health check harus memverifikasi bahwa endpoint ini menampilkan kode status200
agar node dianggap responsif.
Traffic ke layanan di node add-on
1.15 dan yang lebih lama: Berikut menunjukkan pemetaan ke alamat IP dan nilai NodePort untuk traffic ke layanan di node add-on:
- (
addonsVIP
:8443) -> (NODE_IP_ADDRESSES:addonsNodePort
)
Tambahkan pemetaan ini untuk semua node di cluster admin, baik node bidang kontrol maupun node add-on.
Di versi 1.16 dan yang lebih baru, Anda tidak perlu mengonfigurasi pemetaan ini untuk node add-on untuk cluster admin HA.
Cluster admin non-HA
Traffic bidang kontrol
Berikut ini menunjukkan pemetaan ke alamat IP dan nilai NodePort untuk node bidang kontrol:
- (
controlPlaneVIP
:443) -> (NODE_IP_ADDRESSES:controlPlaneNodePort
)
Tambahkan pemetaan ini untuk semua node di cluster admin, baik node bidang kontrol maupun node add-on.
Traffic ke layanan di node add-on
1.15 dan yang lebih lama: Berikut menunjukkan pemetaan ke alamat IP dan nilai NodePort untuk layanan yang berjalan di node add-on:
- (
addonsVIP
:8443) -> (NODE_IP_ADDRESSES:addonsNodePort
)
Tambahkan pemetaan ini untuk semua node di cluster admin, baik node bidang kontrol maupun node add-on.
Di versi 1.16 dan yang lebih tinggi, Anda tidak perlu mengonfigurasi pemetaan ini untuk node add-on untuk cluster admin non-HA.
Cluster pengguna CP V2
Traffic bidang kontrol
Pemetaan yang perlu Anda konfigurasi bergantung pada apakah Anda akan mengaktifkan cluster lanjutan saat membuat cluster pengguna.
Jika cluster lanjutan tidak diaktifkan: Google Distributed Cloud secara otomatis menangani load balancing traffic panel kontrol untuk cluster pengguna. Meskipun Anda tidak perlu mengonfigurasi pemetaan di load balancer, Anda harus menentukan alamat IP di kolom
loadBalancer.vips.controlPlaneVIP
.Jika cluster lanjutan diaktifkan, Anda perlu mengonfigurasi load balancer sebagai berikut:
Tentukan alamat IP di kolom
loadBalancer.vips.controlPlaneVIP
.Konfigurasi pemetaan berikut:
- (
controlPlaneVIP
:443
) -> (CONTROL_PLANE_NODE_IP_ADDRESSES:6433
)
- (
Pastikan health check backend dikonfigurasi dengan benar. Health check harus menggunakan HTTPS dan memeriksa endpoint
/readyz
di port6443
. Health check harus memverifikasi bahwa endpoint ini menampilkan kode status200
agar node dianggap responsif.
Traffic bidang data
Pemetaan yang perlu Anda konfigurasi bergantung pada apakah Anda akan mengaktifkan cluster lanjutan saat membuat cluster pengguna.
Jika cluster lanjutan tidak diaktifkan, lakukan langkah-langkah berikut sebelum cluster dibuat:
Di file konfigurasi cluster pengguna, konfigurasi
loadBalancer.vips.ingressVIP
,loadBalancer.manualLB.ingressHTTPNodePort
, danloadBalancer.manualLB.ingressHTTPSNodePort
.Di load balancer, konfigurasikan pemetaan alamat IP ke port untuk setiap NodePort ingress:
- (
ingressVIP
:80
) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort
) - (
ingressVIP
:443
) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort
)
- (
Jika cluster lanjutan diaktifkan, lakukan langkah-langkah berikut:
Sebelum cluster dibuat, konfigurasi
loadBalancer.vips.ingressVIP
dalam file konfigurasi cluster pengguna. Anda tidak perlu mengonfigurasi nilai untuk setiap NodePort ingress karena tidak berpengaruh saat cluster lanjutan diaktifkan.Setelah cluster dibuat, ambil nilai untuk setiap NodePort ingress:
kubectl --kubeconfig USER_CLUSTER_KUBECONFIG -n gke-system get service istio-ingress -oyaml
Cari HTTP dan HTTPS dari bagian port di spesifikasi Layanan dan catat nilai NodePort.
Di load balancer, konfigurasikan pemetaan alamat IP ke port untuk setiap NodePort ingress:
- (
ingressVIP
:80
) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort
) - (
ingressVIP
:443
) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort
)
- (
Dalam kedua kasus tersebut, tambahkan pemetaan ini untuk semua node bidang kontrol dan worker node di cluster pengguna. Karena Anda mengonfigurasi NodePort di cluster, Kubernetes akan membuka NodePort di semua node cluster. Konfigurasi ini memungkinkan node mana pun di cluster menangani traffic bidang data.
Setelah Anda mengonfigurasi pemetaan, load balancer akan memproses traffic di alamat IP yang Anda konfigurasi untuk VIP ingress cluster pengguna di port HTTP dan HTTPS standar. Load balancer merutekan permintaan ke node mana pun di cluster. Setelah permintaan dirutekan ke salah satu node cluster, jaringan Kubernetes internal akan mengambil alih dan merutekan permintaan ke Pod tujuan.
Cluster pengguna Kubeception
Traffic bidang kontrol
Berikut menunjukkan pemetaan ke alamat IP dan nilai NodePort untuk traffic bidang kontrol:
- (
controlPlaneVIP
:443
) -> (NODE_IP_ADDRESSES:controlPlaneNodePort
) - (
controlPlaneVIP
:8132
) -> (NODE_IP_ADDRESSES:konnectivityServerNodePort
)
Tambahkan pemetaan ini untuk semua node di cluster admin, baik cluster admin maupun node bidang kontrol cluster pengguna.
Traffic bidang data
Berikut ini menunjukkan pemetaan ke alamat IP dan nilai NodePort untuk traffic bidang data:
- (
ingressVIP
:80
) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort
) - (
ingressVIP
:443
) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort
)
Tambahkan pemetaan ini untuk semua node di cluster pengguna. Dengan cluster pengguna yang menggunakan kubeception, semua node dalam cluster adalah worker node.
Mereset koneksi ke node yang gagal (Direkomendasikan)
Selain persyaratan sebelumnya, sebaiknya konfigurasikan load balancer untuk mereset koneksi klien saat mendeteksi kegagalan node backend. Tanpa konfigurasi ini, klien server Kubernetes API dapat berhenti merespons selama beberapa menit saat instance server tidak berfungsi, yang dapat menyebabkan ketidakstabilan di bidang kontrol Kubernetes.
- Dengan F5 BIG-IP, setelan ini disebut Action On Service Down di halaman konfigurasi pool backend.
- Dengan HAProxy, setelan ini disebut on-marked-down shutdown-sessions dalam konfigurasi server backend.
- Jika Anda menggunakan load balancer yang berbeda, Anda harus melihat dokumentasi untuk menemukan setelan yang setara.
Mendapatkan dukungan untuk load balancing manual
Google tidak memberikan dukungan untuk load balancer yang dikonfigurasi menggunakan mode load balancing manual. Jika Anda mengalami masalah dengan load balancer, hubungi vendor load balancer.