Menyiapkan Load Balancer Jaringan proxy internal lintas region dengan konektivitas hybrid

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:

Contoh Load Balancer Jaringan proxy internal lintas region untuk backend NEG konektivitas zona campuran dan hybrid.
Contoh Load Balancer Jaringan proxy internal lintas region untuk backend NEG konektivitas hybrid dan zona campuran (klik untuk memperbesar).

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.

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.

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

  1. Di Konsol Google Cloud, buka halaman jaringan VPC.

    Buka VPC networks

  2. Buka jaringan yang digunakan untuk mengonfigurasi konektivitas hybrid antar-lingkungan.

  3. 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.
  4. Klik Create.

  5. Untuk menambahkan lebih banyak subnet di region yang berbeda, klik Tambahkan subnet dan ulangi langkah sebelumnya untuk REGION_B

gcloud

  1. 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 dan SUBNET_B: nama subnet
  • LB_SUBNET_RANGE1 dan LB_SUBNET_RANGE2: rentang alamat IP untuk subnet
  • REGION_A dan REGION_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:

  1. Di Konsol Google Cloud, buka halaman jaringan VPC.

    Buka VPC networks

  2. Klik nama jaringan VPC.
  3. Pada tab Subnets, klik Add subnet.
  4. Berikan Nama untuk subnet khusus proxy.
  5. Dalam daftar Region, pilih REGION_A.
  6. Dalam daftar Destination, pilih Cross-region Managed Proxy.
  7. Di kolom Rentang alamat IP, masukkan 10.129.0.0/23.
  8. Klik Tambahkan.

Buat subnet khusus proxy di REGION_B

  1. Klik Tambahkan subnet.
  2. Berikan Nama untuk subnet khusus proxy.
  3. Dalam daftar Region, pilih REGION_B.
  4. Dalam daftar Destination, pilih Cross-region Managed Proxy.
  5. Di kolom Rentang alamat IP, masukkan 10.130.0.0/23.
  6. 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 dan PROXY_SN_B: nama subnet khusus proxy
  • PROXY_ONLY_SUBNET_RANGE1 dan PROXY_ONLY_SUBNET_RANGE2: rentang alamat IP untuk subnet khusus proxy
  • REGION_A dan REGION_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 dan 35.191.0.0/16). Contoh ini menggunakan tag target allow-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 target allow-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

  1. Di Konsol Google Cloud, buka halaman Firewall policies.

    Buka Kebijakan firewall

  2. Klik Create firewall rule untuk membuat aturan guna mengizinkan traffic dari pemeriksaan health check:

    1. Masukkan Nama fw-allow-health-check.
    2. Untuk Network, pilih NETWORK.
    3. Untuk Targets, pilih Specified target tags.
    4. Isi kolom Tag target dengan allow-health-check.
    5. Tetapkan Filter sumber ke rentang IPv4.
    6. Setel Rentang IPv4 sumber ke 130.211.0.0/22 dan 35.191.0.0/16.
    7. Untuk Protocols and ports, pilih Specified protocols and ports.
    8. Pilih TCP, lalu masukkan 80 untuk nomor port.
    9. Klik Create.
  3. Klik Create firewall rule lagi untuk membuat aturan guna mengizinkan koneksi SSH yang masuk:

    1. Name: fw-allow-ssh
    2. Jaringan: NETWORK
    3. Prioritas: 1000
    4. Arah traffic: masuk
    5. Tindakan terhadap kecocokan: izinkan
    6. Targets: Tag target yang ditentukan
    7. Tag target: allow-ssh
    8. Filter sumber: Rentang IPv4
    9. Rentang IPv4 sumber: 0.0.0.0/0
    10. Protocols and ports: Pilih Specified protocols and ports.
    11. Pilih TCP, lalu masukkan 22 untuk nomor port.
    12. Klik Create.
  4. Klik Create firewall rule lagi untuk membuat aturan guna mengizinkan koneksi masuk dari subnet khusus proxy:

    1. Name: fw-allow-proxy-only-subnet
    2. Jaringan: NETWORK
    3. Prioritas: 1000
    4. Arah traffic: masuk
    5. Tindakan terhadap kecocokan: izinkan
    6. Targets: Tag target yang ditentukan
    7. Tag target: allow-proxy-only-subnet
    8. Filter sumber: Rentang IPv4
    9. Rentang IPv4 sumber: PROXY_ONLY_SUBNET_RANGE1 dan PROXY_ONLY_SUBNET_RANGE2
    10. Protocols and ports: Pilih Specified protocols and ports
    11. Pilih TCP, lalu masukkan 80 untuk nomor port.
    12. Klik Create.

gcloud

  1. Buat aturan fw-allow-health-check-and-proxy untuk memungkinkan health check Google Cloud mencapai instance backend pada port TCP 80:

    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
    
  2. Buat aturan firewall fw-allow-ssh untuk mengizinkan konektivitas SSH ke VM dengan tag jaringan allow-ssh. Saat Anda menghapus source-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
    
  3. 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

  1. Di konsol Google Cloud, buka halaman Instance VM.

    Buka instance VM

  2. 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
  3. Klik Create instance.

  4. Tetapkan nama seperti yang ditunjukkan pada langkah sebelumnya.

  5. Untuk Region, pilih seperti yang ditunjukkan pada langkah sebelumnya.

  6. Untuk Zone, pilih seperti yang ditunjukkan pada langkah sebelumnya.

  7. Di bagian Boot disk, pastikan sistem operasi Debian dan versi 10 (buster) dipilih untuk opsi boot disk. Klik Choose untuk mengubah gambar jika perlu.

  8. Di bagian Advanced options, luaskan Networking, lalu lakukan hal berikut:

    • Tambahkan Tag jaringan berikut: allow-ssh,allow-health-check, dan allow-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
      
  9. 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 dari vm-a1
    • Zona GCP_NEG_ZONE sebagai NEG_ZONE1 di region REGION_A
    • Subnet LB_SUBNET_NAME sebagai SUBNET_A
  • VM_NAME dari vm-b1

    • Zona GCP_NEG_ZONE sebagai NEG_ZONE2 di region REGION_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'
    

Membuat NEG zona

Konsol

Untuk membuat grup endpoint jaringan zona:

  1. Di konsol Google Cloud, buka halaman Network Endpoint Groups.

    Buka Grup Endpoint Jaringan

  2. 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
    • Nama: neg-2
      • Zona: NEG_ZONE2 di region REGION_B
      • Subnet: SUBNET_B
  3. Klik Create network endpoint group.

  4. Tetapkan nama seperti yang ditunjukkan pada langkah sebelumnya.

  5. Pilih Network endpoint group type: Network endpoint group (Zonal).

  6. Pilih Jaringan: NETWORK

  7. Pilih Subnetwork seperti yang ditunjukkan pada langkah sebelumnya.

  8. Pilih Zone seperti yang ditunjukkan pada langkah sebelumnya.

  9. Masukkan Port default: 80.

  10. Klik Create.

Tambahkan endpoint ke NEG zona:

  1. Di konsol Google Cloud, buka halaman Network Endpoint Groups.

    Buka Grup endpoint jaringan

  2. Klik Nama grup endpoint jaringan yang dibuat pada langkah sebelumnya. Anda akan melihat halaman Detail grup endpoint jaringan.

  3. Di bagian Network endpoint in this group, klik Add network endpoint. Anda akan melihat halaman Add network endpoint.

  4. Pilih instance VM untuk menambahkan alamat IP internalnya sebagai endpoint jaringan. Di bagian Network interface, nama, zona, dan subnet VM ditampilkan.

  5. Masukkan Alamat IP endpoint jaringan baru.

  6. Pilih Port type.

    1. 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 port 80.
    2. Jika Anda memilih Custom, masukkan Nomor port untuk endpoint yang akan digunakan.
  7. Untuk menambahkan endpoint lainnya, klik Tambahkan endpoint jaringan dan ulangi langkah sebelumnya.

  8. Setelah Anda menambahkan semua endpoint, klik Buat.

gcloud

  1. Buat NEG zona (dengan endpoint GCE_VM_IP_PORT) menggunakan kombinasi nama, zona, dan subnet. Gunakan perintah gcloud compute network-endpoint-groups create.

    • Nama: neg-1
      • Zona GCP_NEG_ZONE: NEG_ZONE1 di region REGION_A
      • Subnet LB_SUBNET_NAME: SUBNET_A
    • Nama: neg-2
      • Zona GCP_NEG_ZONE: NEG_ZONE2 di region REGION_B
      • Subnet LB_SUBNET_NAME: SUBNET_B
    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.

  2. Tambahkan endpoint ke neg1 dan neg2.

    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:

  1. Di konsol Google Cloud, buka halaman Network Endpoint Groups.

    Buka Network endpoint groups

  2. Klik Create network endpoint group.

  3. 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
  4. Tetapkan nama seperti yang ditunjukkan pada langkah sebelumnya.

  5. Pilih Network endpoint group type: Hybrid connection network endpoint group (Zonal).

  6. Pilih Jaringan: NETWORK

  7. Untuk Subnet, pilih seperti yang ditunjukkan pada langkah sebelumnya.

  8. Untuk Zone, pilih seperti yang ditunjukkan pada langkah sebelumnya.

  9. Masukkan Port default.

  10. Klik Buat

Tambahkan endpoint ke NEG konektivitas campuran:

  1. Di konsol Google Cloud, buka halaman Network Endpoint Groups.

    Buka Network endpoint groups

  2. Klik Nama grup endpoint jaringan yang dibuat pada langkah sebelumnya. Anda akan melihat halaman Detail grup endpoint jaringan.

  3. Di bagian Network endpoint in this group, klik Add network endpoint. Anda akan melihat halaman Add network endpoint.

  4. Masukkan Alamat IP endpoint jaringan baru.

  5. Pilih Port type.

    1. Jika Anda memilih Default, endpoint akan menggunakan port default untuk semua endpoint dalam grup endpoint jaringan.
    2. Jika memilih Custom, Anda dapat memasukkan Nomor port yang berbeda untuk digunakan oleh endpoint.
  6. Untuk menambahkan endpoint lainnya, klik Tambahkan endpoint jaringan dan ulangi langkah sebelumnya.

  7. Setelah menambahkan semua endpoint non-Google Cloud, klik Create.

gcloud

  1. 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
    • Nama ON_PREM_NEG_NAME: hybrid-2
      • Zona GCP_NEG_ZONE: ON_PREM_NEG_ZONE2
    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
    
  2. 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

  1. 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
    
  2. 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
    
  3. 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.

  4. 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. Untuk MAX_CONNECTIONS, masukkan koneksi serentak maksimum untuk ditangani backend.

  5. 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
    
  6. 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

  1. Buat VM klien di REGION_A dan REGION_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
    
  2. 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
    
  3. 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

  1. Verifikasi failover ke backend di region REGION_A saat backend di REGION_B tidak responsif atau tidak dapat dijangkau. Kami menyimulasikan hal ini dengan menghapus semua backend dari REGION_B:

    gcloud compute backend-services remove-backend BACKEND_SERVICE \
       --balancing-mode=CONNECTION \
       --network-endpoint-group=neg2 \
       --network-endpoint-group-zone=NEG_ZONE2
    
  2. Gunakan SSH untuk terhubung ke VM klien di REGION_B.

    gcloud compute ssh l4-ilb-client-b \
       --zone=NEG_ZONE2
    
  3. Kirim permintaan ke alamat IP yang di-load balanced di region REGION_B. Output perintah akan menampilkan respons dari VM backend di REGION_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