Halaman ini menunjukkan cara men-deploy Load Balancer Jaringan proxy internal lintas region untuk melakukan load balancing pada traffic ke endpoint jaringan yang ada di infrastruktur lokal atau di cloud publik lain, dan yang dapat dijangkau menggunakan konektivitas hybrid.
Jika Anda belum melakukannya, tinjau ringkasan NEG konektivitas hybrid untuk memahami persyaratan jaringan guna menyiapkan load balancing hybrid.
Ringkasan penyiapan
Contoh ini menyiapkan Load Balancer Jaringan proxy internal lintas region untuk backend NEG konektivitas hybrid dan zona campuran, seperti ditunjukkan dalam gambar berikut:
Anda harus mengonfigurasi konektivitas hybrid sebelum menyiapkan deployment load balancing hybrid. Gunakan Cloud VPN atau Cloud Interconnect (Dedicated atau Partner), bergantung pada pilihan produk konektivitas hybrid Anda.
Izin
Untuk menyiapkan load balancing hybrid, Anda harus memiliki izin berikut:
Di Google Cloud
- Izin untuk membuat konektivitas hybrid antara Google Cloud dan lingkungan lokal Anda atau lingkungan cloud lainnya. Untuk daftar izin yang diperlukan, lihat dokumentasi produk Konektivitas Jaringan yang relevan.
- Izin untuk membuat NEG konektivitas hybrid dan load balancer.
Peran Admin Load Balancer Compute
(
roles/compute.loadBalancerAdmin
) berisi izin yang diperlukan untuk melakukan tugas-tugas yang dijelaskan dalam panduan ini.
Di lingkungan lokal Anda atau lingkungan cloud non-Google Cloud lainnya
- Izin untuk mengonfigurasi endpoint jaringan yang memungkinkan layanan di lingkungan lokal Anda atau lingkungan cloud lainnya dapat dijangkau dari Google Cloud menggunakan kombinasi
IP:Port
. Untuk mengetahui informasi selengkapnya, hubungi administrator jaringan lingkungan Anda. - Izin untuk membuat aturan firewall di lingkungan lokal Anda atau lingkungan cloud lainnya agar pemeriksaan health check Google dapat mencapai endpoint.
- Izin untuk mengonfigurasi endpoint jaringan yang memungkinkan layanan di lingkungan lokal Anda atau lingkungan cloud lainnya dapat dijangkau dari Google Cloud menggunakan kombinasi
Selain itu, untuk menyelesaikan petunjuk di halaman ini, Anda perlu membuat NEG konektivitas hybrid, load balancer, dan NEG zona (serta endpoint-nya) untuk berfungsi sebagai backend berbasis Google Cloud untuk load balancer.
Anda harus merupakan Pemilik atau Editor project, atau Anda harus memiliki peran IAM Compute Engine berikut.
Tugas | Peran yang diperlukan |
---|---|
Membuat jaringan, subnet, dan komponen load balancer | Admin Jaringan Compute (roles/compute.networkAdmin ) |
Menambahkan dan menghapus aturan firewall | Admin Keamanan Compute
(roles/compute.securityAdmin ) |
Membuat instance | Admin Instance Compute
(roles/compute.instanceAdmin ) |
Membangun konektivitas hybrid
Lingkungan Google Cloud dan lingkungan lokal Anda atau lingkungan cloud lainnya harus terhubung melalui konektivitas hybrid menggunakan lampiran VLAN Cloud Interconnect atau tunnel Cloud VPN dengan Cloud Router. Sebaiknya gunakan koneksi ketersediaan tinggi.
Cloud Router yang diaktifkan dengan perutean dinamis global mempelajari endpoint tertentu melalui Border Gateway Protocol (BGP) dan memprogramnya ke jaringan VPC Google Cloud Anda. Perutean dinamis regional tidak didukung. Rute statis juga tidak didukung.
Jaringan VPC yang digunakan untuk mengonfigurasi Cloud Interconnect atau Cloud VPN adalah jaringan yang sama dengan yang Anda gunakan untuk mengonfigurasi deployment load balancing hybrid. Pastikan rentang CIDR subnet jaringan VPC Anda tidak bertentangan dengan rentang CIDR jarak jauh Anda. Ketika alamat IP tumpang-tindih, rute subnet akan diprioritaskan daripada konektivitas jarak jauh.
Untuk mengetahui petunjuknya, lihat dokumentasi berikut:
Menyiapkan lingkungan Anda yang berada di luar Google Cloud
Lakukan langkah-langkah berikut untuk menyiapkan lingkungan lokal atau lingkungan cloud lainnya untuk load balancing hybrid:
- Konfigurasi endpoint jaringan untuk mengekspos layanan lokal ke Google Cloud (
IP:Port
). - Konfigurasikan aturan firewall di lingkungan lokal Anda atau lingkungan cloud lainnya.
- Konfigurasi Cloud Router untuk memberitahukan rute tertentu yang diperlukan ke lingkungan pribadi Anda.
Menyiapkan endpoint jaringan
Setelah menyiapkan konektivitas hybrid, Anda akan mengonfigurasi satu atau beberapa endpoint jaringan dalam lingkungan lokal Anda atau lingkungan cloud lain yang dapat dijangkau melalui Cloud Interconnect atau Cloud VPN menggunakan kombinasi IP:port
. Kombinasi IP:port
ini dikonfigurasi sebagai satu atau beberapa endpoint untuk NEG konektivitas hybrid yang dibuat di Google Cloud nanti dalam proses ini.
Jika ada beberapa jalur ke endpoint IP, perutean akan mengikuti perilaku yang dijelaskan dalam ringkasan Cloud Router.
Menyiapkan aturan firewall
Aturan firewall berikut harus dibuat di lingkungan lokal Anda atau lingkungan cloud lainnya:
- Buat aturan firewall izinkan masuk di lingkungan lokal atau lingkungan cloud lainnya untuk mengizinkan traffic dari subnet khusus proxy di region tersebut untuk mencapai endpoint.
Mengizinkan rentang pemeriksaan health check Google tidak diperlukan untuk NEG campuran. Namun, jika menggunakan kombinasi NEG campuran dan zona dalam satu layanan backend, Anda harus mengizinkan rentang pemeriksaan health check Google untuk NEG zona.
Iklankan rute
Konfigurasikan Cloud Router untuk mengiklankan rentang IP kustom berikut ke lingkungan lokal atau lingkungan cloud lainnya:
- Rentang subnet khusus proxy region.
Menyiapkan lingkungan Google Cloud
Untuk langkah berikut, pastikan Anda menggunakan jaringan VPC yang sama (disebut NETWORK
dalam prosedur ini) yang digunakan untuk mengonfigurasi konektivitas hybrid antar-lingkungan.
Selain itu, pastikan region yang digunakan (disebut REGION_A
dan REGION_B
dalam prosedur ini) sama dengan yang digunakan untuk membuat tunnel Cloud VPN atau lampiran VLAN Cloud Interconnect.
Mengonfigurasi subnet backend
Gunakan subnet ini untuk membuat backend NEG zona load balancer:
Konsol
Di Konsol Google Cloud, buka halaman jaringan VPC.
Buka jaringan yang digunakan untuk mengonfigurasi konektivitas hybrid antar-lingkungan.
Di bagian Subnet:
- Setel Subnet creation mode ke Custom.
- Di bagian Subnet baru, masukkan informasi berikut:
- Berikan Name untuk subnet.
- Pilih Wilayah: REGION_A
- Masukkan rentang alamat IP.
- Klik Done.
Klik Create.
Untuk menambahkan lebih banyak subnet di region yang berbeda, klik Tambahkan subnet dan ulangi langkah sebelumnya untuk REGION_B
gcloud
Buat subnet di jaringan yang digunakan untuk mengonfigurasi konektivitas hybrid antar-lingkungan.
gcloud compute networks subnets create SUBNET_A \ --network=NETWORK \ --range=LB_SUBNET_RANGE1 \ --region=REGION_A
gcloud compute networks subnets create SUBNET_B \ --network=NETWORK \ --range=LB_SUBNET_RANGE2 \ --region=REGION_B
API
Buat permintaan POST
ke metode subnetworks.insert
.
Ganti PROJECT_ID
dengan project ID Anda.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/subnetworks { "name": "SUBNET_A", "network": "projects/PROJECT_ID/global/networks/NETWORK", "ipCidrRange": "LB_SUBNET_RANGE1", "region": "projects/PROJECT_ID/regions/REGION_A", }
Buat permintaan POST
ke metode subnetworks.insert
.
Ganti PROJECT_ID
dengan project ID Anda.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_B/subnetworks { "name": "SUBNET_B", "network": "projects/PROJECT_ID/global/networks/NETWORK", "ipCidrRange": "LB_SUBNET_RANGE2", "region": "projects/PROJECT_ID/regions/REGION_B", }
Ganti kode berikut:
SUBNET_A
danSUBNET_B
: nama subnetLB_SUBNET_RANGE1
danLB_SUBNET_RANGE2
: rentang alamat IP untuk subnetREGION_A
danREGION_B
: region tempat Anda mengonfigurasi load balancer
Mengonfigurasi subnet khusus proxy
Subnet khusus proxy memberikan sekumpulan alamat IP yang digunakan Google untuk menjalankan proxy Envoy atas nama Anda. Proxy tersebut menghentikan koneksi dari klien dan membuat koneksi baru ke backend.
Subnet khusus proxy ini digunakan oleh semua load balancer regional berbasis Envoy di region yang sama pada jaringan VPC. Hanya boleh ada satu subnet khusus proxy yang aktif untuk tujuan tertentu, per region, per jaringan.
Konsol
Jika menggunakan konsol Google Cloud, Anda dapat menunggu dan membuat subnet khusus proxy nanti di halaman Load balancing.
Jika Anda ingin membuat subnet khusus proxy sekarang, gunakan langkah-langkah berikut:
Di Konsol Google Cloud, buka halaman jaringan VPC.
- Klik nama jaringan VPC.
- Pada tab Subnets, klik Add subnet.
- Berikan Nama untuk subnet khusus proxy.
- Dalam daftar Region, pilih REGION_A.
- Dalam daftar Destination, pilih Cross-region Managed Proxy.
- Di kolom Rentang alamat IP, masukkan
10.129.0.0/23
. - Klik Tambahkan.
Buat subnet khusus proxy di REGION_B
- Klik Tambahkan subnet.
- Berikan Nama untuk subnet khusus proxy.
- Dalam daftar Region, pilih REGION_B.
- Dalam daftar Destination, pilih Cross-region Managed Proxy.
- Di kolom Rentang alamat IP, masukkan
10.130.0.0/23
. - Klik Tambahkan.
gcloud
Buat subnet khusus proxy dengan
perintah gcloud compute networks subnets create
.
gcloud compute networks subnets create PROXY_SN_A \ --purpose=GLOBAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION_A \ --network=NETWORK \ --range=PROXY_ONLY_SUBNET_RANGE1
gcloud compute networks subnets create PROXY_SN_B \ --purpose=GLOBAL_MANAGED_PROXY \ --role=ACTIVE \ --region=REGION_B \ --network=NETWORK \ --range=PROXY_ONLY_SUBNET_RANGE2
Ganti kode berikut:
PROXY_SN_A
danPROXY_SN_B
: nama subnet khusus proxyPROXY_ONLY_SUBNET_RANGE1
danPROXY_ONLY_SUBNET_RANGE2
: rentang alamat IP untuk subnet khusus proxyREGION_A
danREGION_B
: region tempat Anda mengonfigurasi load balancer
API
Buat subnet khusus proxy dengan
metode subnetworks.insert
, yang menggantikan
PROJECT_ID
dengan project ID Anda.
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_A/subnetworks { "name": "PROXY_SN_A", "ipCidrRange": "PROXY_ONLY_SUBNET_RANGE1", "network": "projects/PROJECT_ID/global/networks/NETWORK", "region": "projects/PROJECT_ID/regions/REGION_A", "purpose": "GLOBAL_MANAGED_PROXY", "role": "ACTIVE" }
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION_B/subnetworks { "name": " PROXY_SN_B", "ipCidrRange": "PROXY_ONLY_SUBNET_RANGE2", "network": "projects/PROJECT_ID/global/networks/NETWORK", "region": "projects/PROJECT_ID/regions/REGION_B", "purpose": "GLOBAL_MANAGED_PROXY", "role": "ACTIVE" }
Membuat aturan firewall
Dalam contoh ini, Anda membuat aturan firewall berikut untuk backend NEG zona di Google Cloud:
fw-allow-health-check
: Aturan masuk, yang berlaku untuk instance yang di-load balanced, yang mengizinkan traffic dari sistem health check Google Cloud (130.211.0.0/22
dan35.191.0.0/16
). Contoh ini menggunakan tag targetallow-health-check
untuk mengidentifikasi NEG zona yang harus diterapkan.fw-allow-ssh
: Aturan masuk yang mengizinkan konektivitas SSH yang masuk di TCP port 22 dari alamat mana pun. Anda dapat memilih rentang IP sumber yang lebih ketat untuk aturan ini. Misalnya, Anda dapat menentukan hanya rentang IP sistem tempat Anda akan memulai sesi SSH. Contoh ini menggunakan tag targetallow-ssh
untuk mengidentifikasi VM yang harus diterapkan.fw-allow-proxy-only-subnet
: Aturan ingress yang memungkinkan koneksi dari subnet khusus proxy untuk menjangkau backend NEG zona.
Konsol
Di Konsol Google Cloud, buka halaman Firewall policies.
Klik Create firewall rule untuk membuat aturan guna mengizinkan traffic dari pemeriksaan health check:
- Masukkan Nama
fw-allow-health-check
. - Untuk Network, pilih NETWORK.
- Untuk Targets, pilih Specified target tags.
- Isi kolom Tag target dengan
allow-health-check
. - Tetapkan Filter sumber ke rentang IPv4.
- Setel Rentang IPv4 sumber ke
130.211.0.0/22
dan35.191.0.0/16
. - Untuk Protocols and ports, pilih Specified protocols and ports.
- Pilih TCP, lalu masukkan
80
untuk nomor port. - Klik Create.
- Masukkan Nama
Klik Create firewall rule lagi untuk membuat aturan guna mengizinkan koneksi SSH yang masuk:
- Name:
fw-allow-ssh
- Jaringan: NETWORK
- Prioritas:
1000
- Arah traffic: masuk
- Tindakan terhadap kecocokan: izinkan
- Targets: Tag target yang ditentukan
- Tag target:
allow-ssh
- Filter sumber: Rentang IPv4
- Rentang IPv4 sumber:
0.0.0.0/0
- Protocols and ports: Pilih Specified protocols and ports.
- Pilih TCP, lalu masukkan
22
untuk nomor port. - Klik Create.
- Name:
Klik Create firewall rule lagi untuk membuat aturan guna mengizinkan koneksi masuk dari subnet khusus proxy:
- Name:
fw-allow-proxy-only-subnet
- Jaringan: NETWORK
- Prioritas:
1000
- Arah traffic: masuk
- Tindakan terhadap kecocokan: izinkan
- Targets: Tag target yang ditentukan
- Tag target:
allow-proxy-only-subnet
- Filter sumber: Rentang IPv4
- Rentang IPv4 sumber: PROXY_ONLY_SUBNET_RANGE1 dan PROXY_ONLY_SUBNET_RANGE2
- Protocols and ports: Pilih Specified protocols and ports
- Pilih TCP, lalu masukkan
80
untuk nomor port. - Klik Create.
- Name:
gcloud
Buat aturan
fw-allow-health-check-and-proxy
untuk memungkinkan health check Google Cloud mencapai instance backend pada port TCP80
:gcloud compute firewall-rules create fw-allow-health-check \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-health-check \ --source-ranges=130.211.0.0/22,35.191.0.0/16 \ --rules=tcp:80
Buat aturan firewall
fw-allow-ssh
untuk mengizinkan konektivitas SSH ke VM dengan tag jaringanallow-ssh
. Saat Anda menghapussource-ranges
, Google Cloud akan menafsirkan aturan sebagai sumber apa pun.gcloud compute firewall-rules create fw-allow-ssh \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-ssh \ --rules=tcp:22
Buat aturan firewall izinkan masuk untuk subnet khusus proxy agar load balancer dapat berkomunikasi dengan instance backend pada port TCP
80
:gcloud compute firewall-rules create fw-allow-proxy-only-subnet \ --network=NETWORK \ --action=allow \ --direction=ingress \ --target-tags=allow-proxy-only-subnet \ --source-ranges=PROXY_ONLY_SUBNET_RANGE1,PROXY_ONLY_SUBNET_RANGE2 \ --rules=tcp:80
Menyiapkan NEG zona
Untuk backend berbasis Google Cloud, sebaiknya konfigurasikan beberapa NEG zona di region yang sama tempat Anda mengonfigurasi konektivitas hybrid.
Untuk contoh ini, kami menyiapkan NEG zona (dengan endpoint jenis GCE_VM_IP_PORT
)
di REGION1
. Pertama, buat VM di zona NEG_ZONE1
. Kemudian, buat NEG zona di NEG_ZONE2
dan tambahkan endpoint jaringan VM ke NEG.
Untuk mendukung ketersediaan tinggi, kami menyiapkan NEG zona serupa di region REGION2. Jika backend di satu region mengalami gangguan, traffic akan gagal ke region lain.
Membuat VM
Konsol
Di konsol Google Cloud, buka halaman Instance VM.
Ulangi langkah 3 hingga 8 untuk setiap VM, dengan menggunakan kombinasi nama dan zona berikut.
- Nama: dari
vm-a1
- Zona: NEG_ZONE1 di region REGION_A
- Subnet: SUBNET_A
- Nama: dari
vm-b1
- Zona: NEG_ZONE2 di region REGION_B
- Subnet: SUBNET_B
- Nama: dari
Klik Create instance.
Tetapkan nama seperti yang ditunjukkan pada langkah sebelumnya.
Untuk Region, pilih seperti yang ditunjukkan pada langkah sebelumnya.
Untuk Zone, pilih seperti yang ditunjukkan pada langkah sebelumnya.
Di bagian Boot disk, pastikan sistem operasi Debian dan versi 10 (buster) dipilih untuk opsi boot disk. Klik Choose untuk mengubah gambar jika perlu.
Di bagian Advanced options, luaskan Networking, lalu lakukan hal berikut:
- Tambahkan Tag jaringan berikut:
allow-ssh
,allow-health-check
, danallow-proxy-only-subnet
. - Di bagian Network interfaces, klik Add a network interface,
buat perubahan berikut, lalu klik Done:
- Jaringan: NETWORK
- Subnetwork: seperti yang ditunjukkan pada langkah sebelumnya.
- IP internal utama: Ephemeral (otomatis)
- IP Eksternal: Efemeral
Luaskan Pengelolaan. Di kolom Automation, salin dan tempel konten skrip berikut. Konten skrip identik untuk semua VM:
#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2
- Tambahkan Tag jaringan berikut:
Klik Create.
gcloud
Buat VM dengan menjalankan perintah berikut, menggunakan kombinasi ini untuk nama VM dan zonanya. Konten skrip serupa untuk kedua VM.
VM_NAME
darivm-a1
- Zona
GCP_NEG_ZONE
sebagai NEG_ZONE1 di regionREGION_A
- Subnet
LB_SUBNET_NAME
sebagai SUBNET_A
- Zona
VM_NAME
darivm-b1
- Zona
GCP_NEG_ZONE
sebagai NEG_ZONE2 di regionREGION_B
- Subnet
LB_SUBNET_NAME
sebagai SUBNET_B
gcloud compute instances create VM_NAME \ --zone=GCP_NEG_ZONE \ --image-family=debian-10 \ --image-project=debian-cloud \ --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \ --subnet=LB_SUBNET_NAME \ --metadata=startup-script='#! /bin/bash apt-get update apt-get install apache2 -y a2ensite default-ssl a2enmod ssl vm_hostname="$(curl -H "Metadata-Flavor:Google" \ http://metadata.google.internal/computeMetadata/v1/instance/name)" echo "Page served from: $vm_hostname" | \ tee /var/www/html/index.html systemctl restart apache2'
- Zona
Membuat NEG zona
Konsol
Untuk membuat grup endpoint jaringan zona:
Di konsol Google Cloud, buka halaman Network Endpoint Groups.
Ulangi langkah 3 hingga 8 untuk setiap NEG zona, menggunakan kombinasi nama dan zona berikut:
- Nama:
neg-1
- Zona: NEG_ZONE1 di
region
REGION_A
- Subnet: SUBNET_A
- Zona: NEG_ZONE1 di
region
- Nama:
neg-2
- Zona: NEG_ZONE2 di
region
REGION_B
- Subnet: SUBNET_B
- Zona: NEG_ZONE2 di
region
- Nama:
Klik Create network endpoint group.
Tetapkan nama seperti yang ditunjukkan pada langkah sebelumnya.
Pilih Network endpoint group type: Network endpoint group (Zonal).
Pilih Jaringan: NETWORK
Pilih Subnetwork seperti yang ditunjukkan pada langkah sebelumnya.
Pilih Zone seperti yang ditunjukkan pada langkah sebelumnya.
Masukkan Port default:
80
.Klik Create.
Tambahkan endpoint ke NEG zona:
Di konsol Google Cloud, buka halaman Network Endpoint Groups.
Klik Nama grup endpoint jaringan yang dibuat pada langkah sebelumnya. Anda akan melihat halaman Detail grup endpoint jaringan.
Di bagian Network endpoint in this group, klik Add network endpoint. Anda akan melihat halaman Add network endpoint.
Pilih instance VM untuk menambahkan alamat IP internalnya sebagai endpoint jaringan. Di bagian Network interface, nama, zona, dan subnet VM ditampilkan.
Masukkan Alamat IP endpoint jaringan baru.
Pilih Port type.
- Jika Anda memilih Default, endpoint akan menggunakan port default
80
untuk semua endpoint dalam grup endpoint jaringan. Ini sudah memadai untuk contoh kita karena server Apache menayangkan permintaan pada port80
. - Jika Anda memilih Custom, masukkan Nomor port untuk endpoint yang akan digunakan.
- Jika Anda memilih Default, endpoint akan menggunakan port default
Untuk menambahkan endpoint lainnya, klik Tambahkan endpoint jaringan dan ulangi langkah sebelumnya.
Setelah Anda menambahkan semua endpoint, klik Buat.
gcloud
Buat NEG zona (dengan endpoint
GCE_VM_IP_PORT
) menggunakan kombinasi nama, zona, dan subnet. Gunakan perintahgcloud compute network-endpoint-groups create
.- Nama:
neg-1
- Zona
GCP_NEG_ZONE
: NEG_ZONE1 di regionREGION_A
- Subnet
LB_SUBNET_NAME
: SUBNET_A
- Zona
- Nama:
neg-2
- Zona
GCP_NEG_ZONE
: NEG_ZONE2 di regionREGION_B
- Subnet
LB_SUBNET_NAME
: SUBNET_B
- Zona
gcloud compute network-endpoint-groups create GCP_NEG_NAME \ --network-endpoint-type=GCE_VM_IP_PORT \ --zone=GCP_NEG_ZONE \ --network=NETWORK \ --subnet=LB_SUBNET_NAME
Anda dapat menentukan port menggunakan opsi
--default-port
saat membuat NEG, atau menentukan nomor port untuk setiap endpoint seperti yang ditunjukkan pada langkah berikutnya.- Nama:
Tambahkan endpoint ke
neg1
danneg2
.gcloud compute network-endpoint-groups update neg1 \ --zone=NEG_ZONE1 \ --add-endpoint='instance=vm-a1,port=80'
gcloud compute network-endpoint-groups update neg2 \ --zone=NEG_ZONE2 \ --add-endpoint='instance=vm-b1,port=80'
Menyiapkan NEG konektivitas hybrid
Saat membuat NEG, gunakan zona yang meminimalkan jarak geografis antara Google Cloud dan lingkungan lokal Anda atau lingkungan cloud lainnya.
Dan, jika Anda menggunakan Cloud Interconnect, zona yang digunakan untuk membuat NEG berada di region yang sama dengan tempat lampiran Cloud Interconnect dikonfigurasi.
NEG campuran hanya mendukung pemeriksaan kondisi Envoy terdistribusi.
Konsol
Untuk membuat grup endpoint jaringan konektivitas hybrid:
Di konsol Google Cloud, buka halaman Network Endpoint Groups.
Klik Create network endpoint group.
Ulangi langkah 4 hingga 9 untuk setiap NEG hibrida, menggunakan kombinasi nama dan zona berikut.
- Nama ON_PREM_NEG_NAME:
hybrid-1
- Zona: ON_PREM_NEG_ZONE1
- Subnet: SUBNET_A
- Nama ON_PREM_NEG_NAME:
hybrid-2
- Zona: ON_PREM_NEG_ZONE2
- Subnet: SUBNET_B
- Nama ON_PREM_NEG_NAME:
Tetapkan nama seperti yang ditunjukkan pada langkah sebelumnya.
Pilih Network endpoint group type: Hybrid connection network endpoint group (Zonal).
Pilih Jaringan: NETWORK
Untuk Subnet, pilih seperti yang ditunjukkan pada langkah sebelumnya.
Untuk Zone, pilih seperti yang ditunjukkan pada langkah sebelumnya.
Masukkan Port default.
Klik Buat
Tambahkan endpoint ke NEG konektivitas campuran:
Di konsol Google Cloud, buka halaman Network Endpoint Groups.
Klik Nama grup endpoint jaringan yang dibuat pada langkah sebelumnya. Anda akan melihat halaman Detail grup endpoint jaringan.
Di bagian Network endpoint in this group, klik Add network endpoint. Anda akan melihat halaman Add network endpoint.
Masukkan Alamat IP endpoint jaringan baru.
Pilih Port type.
- Jika Anda memilih Default, endpoint akan menggunakan port default untuk semua endpoint dalam grup endpoint jaringan.
- Jika memilih Custom, Anda dapat memasukkan Nomor port yang berbeda untuk digunakan oleh endpoint.
Untuk menambahkan endpoint lainnya, klik Tambahkan endpoint jaringan dan ulangi langkah sebelumnya.
Setelah menambahkan semua endpoint non-Google Cloud, klik Create.
gcloud
Buat NEG konektivitas campuran yang menggunakan kombinasi nama berikut. Gunakan perintah
gcloud compute network-endpoint-groups create
.- Nama
ON_PREM_NEG_NAME
:hybrid-1
- Zona
ON_PREM_NEG_ZONE
: ON_PREM_NEG_ZONE1
- Zona
- Nama
ON_PREM_NEG_NAME
:hybrid-2
- Zona
GCP_NEG_ZONE
: ON_PREM_NEG_ZONE2
- Zona
gcloud compute network-endpoint-groups create ON_PREM_NEG_NAME \ --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \ --zone=ON_PREM_NEG_ZONE \ --network=NETWORK
- Nama
Tambahkan endpoint VM backend lokal ke ON_PREM_NEG_NAME:
gcloud compute network-endpoint-groups update ON_PREM_NEG_NAME \ --zone=ON_PREM_NEG_ZONE \ --add-endpoint="ip=ON_PREM_IP_ADDRESS_1,port=PORT_1" \ --add-endpoint="ip=ON_PREM_IP_ADDRESS_2,port=PORT_2"
Anda dapat menggunakan perintah ini untuk menambahkan endpoint jaringan yang sebelumnya Anda konfigurasi secara lokal atau di lingkungan cloud Anda.
Ulangi --add-endpoint
sebanyak yang diperlukan.
Mengonfigurasi load balancer
Konsol
gcloud
Tentukan health check TCP dengan perintah
gcloud compute health-checks create tcp
.gcloud compute health-checks create tcp gil4-basic-check \ --use-serving-port \ --global
Buat layanan backend dan aktifkan logging dengan perintah
gcloud compute backend-services create
.gcloud compute backend-services create BACKEND_SERVICE \ --load-balancing-scheme=INTERNAL_MANAGED \ --protocol=TCP \ --enable-logging \ --logging-sample-rate=1.0 \ --health-checks=gil4-basic-check \ --global-health-checks \ --global
Tambahkan backend ke layanan backend dengan perintah
gcloud compute backend-services add-backend
.gcloud compute backend-services add-backend BACKEND_SERVICE \ --global \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=MAX_CONNECTIONS \ --network-endpoint-group=neg1 \ --network-endpoint-group-zone=NEG_ZONE1 \ --network-endpoint-group=neg2 \ --network-endpoint-group-zone=NEG_ZONE2
Untuk mengetahui detail tentang cara mengonfigurasi mode balancing, baca dokumentasi gcloud CLI untuk flag
--max-connections-per-endpoint
. Untuk MAX_CONNECTIONS, masukkan koneksi serentak maksimum untuk ditangani backend.Tambahkan NEG hybrid sebagai backend ke layanan backend.
gcloud compute backend-services add-backend BACKEND_SERVICE \ --global \ --balancing-mode=CONNECTION \ --max-connections-per-endpoint=MAX_CONNECTIONS \ --network-endpoint-group=hybrid1 \ --network-endpoint-group-zone=ON_PREM_NEG_ZONE1 \ --network-endpoint-group=hybrid2 \ --network-endpoint-group-zone=ON_PREM_NEG_ZONE2 \
Untuk mengetahui detail cara mengonfigurasi mode balancing, lihat dokumentasi gcloud CLI untuk parameter
--max-connections-per-endpoint
. UntukMAX_CONNECTIONS
, masukkan koneksi serentak maksimum untuk ditangani backend.Buat proxy target.
Buat proxy target dengan perintah
gcloud compute target-tcp-proxies create
.gcloud compute target-tcp-proxies create gil4-tcp-proxy \ --url-map=gil4-map \ --global
Buat dua aturan penerusan, satu dengan IP_ADDRESS1 VIP di REGION_A dan satu lagi dengan IP_ADDRESS2 VIP di
REGION_B
. Untuk alamat IP aturan penerusan, gunakan rentang alamat IP LB_SUBNET_RANGE1 atau LB_SUBNET_RANGE2. Jika Anda mencoba menggunakan subnet khusus proxy, pembuatan aturan penerusan akan gagal.Untuk jaringan kustom, Anda harus mereferensikan subnet dalam aturan penerusan. Perhatikan bahwa ini adalah subnet VM, bukan subnet proxy.
Gunakan perintah
gcloud compute forwarding-rules create
dengan tanda yang benar.gcloud compute forwarding-rules create gil4-forwarding-rule-a \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK \ --subnet=SUBNET_A \ --subnet-region=REGION_A \ --address=IP_ADDRESS1 \ --ports=80 \ --target-tcp-proxy=gil4-tcp-proxy \ --global
gcloud compute forwarding-rules create gil4-forwarding-rule-b \ --load-balancing-scheme=INTERNAL_MANAGED \ --network=NETWORK \ --subnet=SUBNET_B \ --subnet-region=REGION_B \ --address=IP_ADDRESS2 \ --ports=80 \ --target-tcp-proxy=gil4-tcp-proxy \ --global
Menguji load balancer
Buat instance VM untuk menguji konektivitas
Buat VM klien di
REGION_A
danREGION_B
serta region:gcloud compute instances create l4-ilb-client-a \ --image-family=debian-10 \ --image-project=debian-cloud \ --network=NETWORK \ --subnet=SUBNET_A \ --zone=NEG_ZONE1 \ --tags=allow-ssh
gcloud compute instances create l4-ilb-client-b \ --image-family=debian-10 \ --image-project=debian-cloud \ --network=NETWORK \ --subnet=SUBNET_B \ --zone=NEG_ZONE2 \ --tags=allow-ssh
Gunakan SSH untuk terhubung ke setiap instance klien.
gcloud compute ssh l4-ilb-client-a \ --zone=NEG_ZONE1
gcloud compute ssh l4-ilb-client-b \ --zone=NEG_ZONE2
Pastikan alamat IP menampilkan nama host.
Pastikan bahwa VM klien dapat menjangkau kedua alamat IP. Perintah akan berhasil dan menampilkan nama VM backend yang menyalurkan permintaan:
curl IP_ADDRESS1
curl IP_ADDRESS2
Menjalankan 100 permintaan
Jalankan 100 permintaan curl dan konfirmasi dari respons bahwa bebannya seimbang.
Pastikan bahwa VM klien dapat menjangkau kedua alamat IP. Perintah akan berhasil dan menampilkan nama VM backend yang menayangkan permintaan:
{ RESULTS= for i in {1..100} do RESULTS="$RESULTS:$(curl --silent IP_ADDRESS1)" done echo "***" echo "*** Results of load-balancing to IP_ADDRESS1: " echo "***" echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c echo }
{ RESULTS= for i in {1..100} do RESULTS="$RESULTS:$(curl --silent IP_ADDRESS2)" done echo "***" echo "*** Results of load-balancing to IP_ADDRESS2: " echo "***" echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c echo }
Menguji failover
Verifikasi failover ke backend di region
REGION_A
saat backend diREGION_B
tidak responsif atau tidak dapat dijangkau. Kami menyimulasikan hal ini dengan menghapus semua backend dariREGION_B
:gcloud compute backend-services remove-backend BACKEND_SERVICE \ --balancing-mode=CONNECTION \ --network-endpoint-group=neg2 \ --network-endpoint-group-zone=NEG_ZONE2
Gunakan SSH untuk terhubung ke VM klien di
REGION_B
.gcloud compute ssh l4-ilb-client-b \ --zone=NEG_ZONE2
Kirim permintaan ke alamat IP yang di-load balanced di region
REGION_B
. Output perintah akan menampilkan respons dari VM backend diREGION_A
:{ RESULTS= for i in {1..100} do RESULTS="$RESULTS:$(curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:IP_ADDRESS2:443)" done echo "***" echo "*** Results of load-balancing to IP_ADDRESS2: " echo "***" echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c echo }
Langkah selanjutnya
- Ringkasan Load Balancer Jaringan proxy internal
- Subnet khusus proxy untuk load balancer berbasis Envoy
- Membersihkan penyiapan load balancing