Memigrasikan Load Balancer Jaringan passthrough eksternal dari kumpulan target ke layanan backend

Panduan ini berisi petunjuk untuk memigrasikan Load Balancer Jaringan passthrough eksternal yang ada dari backend kumpulan target ke layanan backend regional.

Peralihan ke layanan backend regional memungkinkan Anda memanfaatkan fitur-fitur seperti health check non-lama (untuk TCP, SSL, HTTP, HTTPS, dan HTTP/2), grup instance terkelola, pengosongan koneksi, dan kebijakan failover.


Jika ingin mengikuti panduan langkah demi langkah untuk tugas ini langsung di Konsol Google Cloud, klik Pandu saya:

Pandu saya


Panduan ini akan menuntun Anda melakukan migrasi contoh Load Balancer Jaringan passthrough eksternal berbasis kumpulan target berikut untuk menggunakan layanan backend regional.

Sebelum: Load Balancer Jaringan passthrough eksternal dengan kumpulan target
Sebelum: Load Balancer Jaringan passthrough eksternal dengan kumpulan target

Deployment Load Balancer Jaringan passthrough eksternal berbasis layanan backend yang dihasilkan akan terlihat seperti ini.

Setelah: Load Balancer Jaringan passthrough eksternal dengan layanan backend regional
Sesudah: Load Balancer Jaringan passthrough eksternal dengan layanan backend regional

Contoh ini mengasumsikan bahwa Anda memiliki Load Balancer Jaringan passthrough eksternal berbasis kumpulan target tradisional dengan dua instance di zona us-central-1a dan dua instance di zona us-central-1c.

Langkah-langkah tingkat tinggi yang diperlukan untuk transisi tersebut adalah sebagai berikut:

  1. Kelompokkan instance kumpulan target Anda ke dalam grup instance.

    Layanan backend hanya berfungsi dengan grup instance terkelola atau tidak terkelola. Meskipun tidak ada batasan jumlah instance yang dapat ditempatkan ke dalam satu kumpulan target, grup instance memiliki ukuran maksimum. Jika kumpulan target Anda memiliki instance lebih dari jumlah maksimum ini, Anda perlu membagi backend-nya ke beberapa grup instance.

    Jika deployment yang ada mencakup kumpulan target cadangan, buat grup instance terpisah untuk instance tersebut. Grup instance ini dikonfigurasi sebagai grup failover.

  2. Buat layanan backend regional.

    Jika deployment Anda menyertakan kumpulan target cadangan, Anda harus menentukan rasio failover saat membuat layanan backend. Nilai ini harus cocok dengan rasio failover yang sebelumnya dikonfigurasi untuk deployment kumpulan target.

  3. Tambahkan grup instance (dibuat sebelumnya) ke layanan backend.

    Jika deployment Anda menyertakan kumpulan target cadangan, tandai grup instance failover yang sesuai dengan flag --failover saat menambahkannya ke layanan backend.

  4. Konfigurasikan aturan penerusan yang mengarah ke layanan backend baru.

    Anda dapat memilih salah satu opsi berikut:

    • Perbarui aturan penerusan yang ada agar mengarah ke layanan backend (direkomendasikan).

    • Buat aturan penerusan baru yang mengarah ke layanan backend. Hal ini mengharuskan Anda membuat alamat IP baru untuk frontend load balancer. Kemudian, Anda dapat mengubah setelan DNS agar dapat melakukan transisi dari alamat IP load balancer berbasis kumpulan target yang lama ke alamat IP baru.

Sebelum memulai

Instal Google Cloud CLI. Untuk ringkasan lengkap tentang alat ini, lihat Panduan Alat gcloud. Anda dapat menemukan perintah yang terkait dengan load balancing di grup perintah gcloud compute.

Jika Anda belum pernah menjalankan Google Cloud CLI, jalankan gcloud init terlebih dahulu untuk melakukan autentikasi.

Panduan ini mengasumsikan bahwa Anda sudah memahami bash.

Identifikasi backend dan aturan penerusan yang akan dimigrasikan

  1. Untuk menampilkan semua kumpulan target, jalankan perintah berikut di Cloud Shell:

    gcloud compute target-pools list
    

    Perhatikan nama kumpulan target tempat migrasi berasal. Nama ini nantinya disebut sebagai TARGET_POOL_NAME.

  2. Untuk menampilkan daftar semua instance VM dalam kumpulan target TARGET_POOL_NAME, jalankan perintah di Cloud Shell:

    gcloud compute target-pools describe TARGET_POOL_NAME \
      --region=us-central1
    

    Catat nama instance VM-nya. Nama-nama ini nantinya disebut sebagai BACKEND_INSTANCE1, BACKEND_INSTANCE2, BACKEND_INSTANCE3, dan BACKEND_INSTANCE4.

  3. Untuk mencantumkan aturan penerusan di Load Balancer Jaringan passthrough eksternal, jalankan perintah di Cloud Shell:

    gcloud compute forwarding-rules list
      --filter="target: ( TARGET_POOL_NAME )"
    

    Catat nama aturan penerusan. Nama ini nantinya disebut sebagai FORWARDING_RULE.

Membuat grup instance tidak terkelola menurut zona

Buat grup instance tidak terkelola menurut zona untuk setiap zona tempat Anda memiliki backend. Bergantung pada penyiapannya, Anda dapat membagi instance di sebanyak mungkin grup instance sesuai kebutuhan. Sebagai contoh, kita hanya menggunakan dua grup instance, satu untuk setiap zona, dan menempatkan semua VM backend di zona tertentu dalam grup instance terkait.

Untuk contoh ini, kita membuat dua grup instance: satu di zona uc-central1-a dan satu di zona us-central1-c.

Menyiapkan grup instance

Konsol

  1. Di Konsol Google Cloud, buka halaman Instance groups.

    Buka Instance groups

  2. Klik Create grup instance.
  3. Di panel kiri, pilih New managed instance group.
  4. Untuk Name, masukkan ig-us-1.
  5. Untuk Region, pilih us-central1.
  6. Untuk Zone, pilih us-central1-a.
  7. Pilih Network dan Subnetwork bergantung pada lokasi instance Anda. Dalam contoh ini, instance kumpulan target yang ada berada di jaringan dan subnetwork default.
  8. Untuk menambahkan instance ke grup instance, di bagian instance VM
    , pilih dua instance BACKEND_INSTANCE1 dan BACKEND_INSTANCE2.
  9. Klik Create.
  10. Ulangi langkah-langkah ini untuk membuat grup instance kedua dengan spesifikasi berikut:

    • Name: ig-us-2
    • Region: us-central1
    • Zona: us-central1-c

    Tambahkan dua instance BACKEND_INSTANCE3 dan BACKEND_INSTANCE4 di zona us-central1-c ke grup instance ini.

  11. Jika deployment load balancer yang ada juga memiliki kumpulan target cadangan, ulangi langkah-langkah ini untuk membuat grup instance failover terpisah bagi instance tersebut.

gcloud

  1. Buat grup instance yang tidak dikelola di zona us-central1-a dengan perintah gcloud compute instance-groups unmanaged create.

    gcloud compute instance-groups unmanaged create ig-us-1 \
        --zone us-central1-a
    
  2. Buat grup instance kedua yang tidak dikelola di zona us-central1-c.

    gcloud compute instance-groups unmanaged create ig-us-2 \
        --zone us-central1-c
    
  3. Tambahkan instance ke grup instance ig-us-1.

    gcloud compute instance-groups unmanaged add-instances ig-us-1 \
        --instances BACKEND_INSTANCE_1,BACKEND_INSTANCE_2 \
        --zone us-central1-a
    
  4. Tambahkan instance ke grup instance ig-us-2.

    gcloud compute instance-groups unmanaged add-instances ig-us-2 \
        --instances BACKEND_INSTANCE_3,BACKEND_INSTANCE_4 \
        --zone us-central1-c
    
  5. Jika deployment load balancer yang ada juga memiliki kumpulan target cadangan, ulangi langkah-langkah ini untuk membuat grup instance failover terpisah bagi instance tersebut.

Membuat health check

Buat health check untuk menentukan kondisi instance di grup instance Anda. Load Balancer Jaringan passthrough eksternal berbasis kumpulan target yang ada kemungkinan memiliki health check HTTP lama yang terkait dengannya.

Anda dapat membuat health check baru yang cocok dengan protokol traffic yang akan didistribusikan oleh load balancer. Load Balancer Jaringan passthrough eksternal berbasis layanan backend dapat menggunakan health check TCP, SSL, HTTP(S), dan HTTP/2.

Konsol

  1. Di konsol Google Cloud, buka halaman Health checks.

    Buka Health checks

  2. Klik Create health check.
  3. Di kolom Name, masukkan network-lb-health-check.
  4. Tetapkan Cakupan ke Regional.
  5. Untuk Region, pilih us-central1.
  6. Untuk Protocol, pilih HTTP.
  7. Untuk Port, masukkan 80.
  8. Klik Create.

gcloud

  1. Untuk contoh ini, kami membuat health check HTTP non-lama untuk digunakan dengan layanan backend.

    gcloud compute health-checks create http network-lb-health-check \
    --region us-central1 \
    --port 80
    

Mengonfigurasi layanan backend

Gunakan salah satu dari bagian berikut untuk membuat layanan backend. Jika Load Balancer Jaringan passthrough eksternal yang ada memiliki kumpulan target cadangan, Anda perlu mengonfigurasi rasio failover saat membuat layanan backend.

Anda juga harus menetapkan grup instance failover dengan tanda --failover saat menambahkan backend ke layanan backend.

Deployment tanpa kumpulan target cadangan

gcloud

  1. Buat layanan backend regional di region us-central1.

    gcloud compute backend-services create network-lb-backend-service \
       --region us-central1 \
       --health-checks network-lb-health-check \
       --health-checks-region us-central1 \
       --protocol TCP
    
  2. Tambahkan dua grup instance (ig-us-1 dan ig-us-2) sebagai backend ke layanan backend.

    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group ig-us-1 \
       --instance-group-zone us-central1-a \
       --region us-central1
    
    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group ig-us-2 \
       --instance-group-zone us-central1-c \
       --region us-central1
    

Deployment dengan kumpulan target cadangan

gcloud

  1. Buat layanan backend regional di region us-central1. Konfigurasikan rasio failover layanan backend agar cocok dengan rasio failover yang sebelumnya dikonfigurasi untuk kumpulan target.

    gcloud compute backend-services create network-lb-backend-service \
       --region us-central1 \
       --health-check network-lb-health-check \
       --failover-ratio 0.5
    
  2. Tambahkan dua grup instance (ig-us-1 dan ig-us-2) sebagai backend ke layanan backend.

    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group ig-us-1 \
       --instance-group-zone us-central1-a \
       --region us-central1
    
    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group ig-us-2 \
       --instance-group-zone us-central1-c \
       --region us-central1
    
  3. Jika Anda membuat grup instance failover, tambahkan ke layanan backend. Tandai backend ini dengan flag --failover saat Anda menambahkannya ke layanan backend.

    gcloud compute backend-services add-backend network-lb-backend-service \
       --instance-group FAILOVER_INSTANCE_GROUP \
       --instance-group-zone ZONE \
       --region us-central1 \
       --failover
    

Mengonfigurasi aturan penerusan

Anda memiliki dua opsi untuk mengonfigurasi aturan penerusan guna mengarahkan traffic ke layanan backend baru. Anda dapat memperbarui aturan penerusan yang ada atau membuat aturan penerusan baru dengan alamat IP baru.

Gunakan flag set-target untuk memperbarui aturan penerusan yang ada agar mengarah ke layanan backend baru.

gcloud compute forwarding-rules set-target FORWARDING_RULE  \
    --backend-service network-lb-backend-service \
    --region us-central1

Ganti FORWARDING_RULE dengan nama aturan penerusan yang ada.

Membuat aturan penerusan baru

Jika tidak ingin memperbarui aturan penerusan yang ada, Anda dapat membuat aturan penerusan baru dengan alamat IP baru. Karena alamat IP tertentu hanya dapat dikaitkan dengan satu aturan penerusan pada satu waktu, Anda perlu mengubah setelan DNS secara manual untuk mentransisikan traffic masuk dari alamat IP lama ke alamat baru.

Gunakan perintah berikut untuk membuat aturan penerusan baru dengan alamat IP baru. Anda dapat menggunakan flag --address jika ingin menentukan alamat IP yang sudah dicadangkan di region us-central1.

gcloud compute forwarding-rules create network-lb-forwarding-rule \
    --load-balancing-scheme external \
    --region us-central1 \
    --ports 80 \
    --backend-service network-lb-backend-service

Menguji load balancer

Uji load balancer untuk mengonfirmasi bahwa aturan penerusan mengarahkan traffic masuk seperti yang diharapkan.

Mencari alamat IP eksternal load balancer

gcloud

Masukkan perintah berikut untuk melihat alamat IP eksternal dari aturan penerusan network-lb-forwarding-rule yang digunakan oleh load balancer.

gcloud compute forwarding-rules describe network-lb-forwarding-rule
    --region us-central1

Menggunakan perintah nc untuk mengakses alamat IP eksternal

Dalam contoh ini, kami menggunakan metode hashing default untuk afinitas sesi, sehingga permintaan dari perintah nc didistribusikan secara acak ke VM backend berdasarkan port sumber yang ditetapkan oleh sistem operasi Anda.

  1. Untuk menguji konektivitas, instal Netcat di Linux terlebih dahulu dengan menjalankan perintah berikut:

    $ sudo apt install netcat
    
  2. Ulangi perintah berikut beberapa kali sampai Anda melihat semua VM backend merespons:

    $ nc IP_ADDRESS 80
    

Menghapus resource yang terkait dengan load balancer lama

Setelah mengonfirmasi bahwa Load Balancer Jaringan passthrough eksternal yang baru berfungsi seperti yang diharapkan, Anda dapat menghapus resource kumpulan target lama.

  1. Di Konsol Google Cloud, buka halaman Load balancing.

    Buka Load balancing

  2. Pilih load balancer lama yang terkait dengan kumpulan target, lalu klik Delete.
  3. Pilih health check yang Anda buat, lalu klik Delete load balancer and the selected resources.

Langkah selanjutnya