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

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

Beralih ke layanan backend regional memungkinkan Anda memanfaatkan fitur seperti health check non-legacy (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 memandu Anda untuk memigrasikan contoh Load Balancer Jaringan passthrough eksternal berbasis kumpulan target berikut untuk menggunakan layanan backend regional.

Sebelumnya: Load Balancer Jaringan passthrough eksternal dengan kumpulan target
Sebelumnya: 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
Setelah: 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 lebih dari jumlah maksimum instance ini, Anda harus membagi backend-nya di beberapa grup instance.

    Jika deployment yang ada menyertakan 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 perlu 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 (yang dibuat sebelumnya) ke layanan backend.

    Jika deployment Anda menyertakan kumpulan target cadangan, tandai grup instance failover yang sesuai dengan tanda --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 mengubah setelan DNS untuk melakukan transisi secara lancar dari alamat IP load balancer berbasis kumpulan target lama ke alamat IP baru.

Sebelum memulai

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

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

Panduan ini mengasumsikan bahwa Anda sudah memahami bash.

Mengidentifikasi backend dan aturan penerusan yang akan dimigrasikan

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

    gcloud compute target-pools list
    

    Catat nama kumpulan target yang akan dimigrasikan. Nama ini nantinya akan disebut sebagai TARGET_POOL_NAME.

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

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

    Perhatikan nama instance VM. Nama ini kemudian 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 akan disebut sebagai FORWARDING_RULE.

Membuat grup instance tidak terkelola zonal

Buat grup instance tidak terkelola zonal untuk setiap zona tempat Anda memiliki backend. Bergantung pada penyiapan, Anda dapat membagi instance ke dalam grup instance sebanyak yang diperlukan. Untuk contoh ini, 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 lagi di zona us-central1-c.

Menyiapkan grup instance

Konsol

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

    Buka Instance groups

  2. Klik Create instance group.
  3. Di panel kiri, pilih Grup instance tidak terkelola baru.
  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 tempat instance Anda berada. Dalam contoh ini, instance kumpulan target yang ada berada di jaringan dan subjaringan default.
  8. Untuk menambahkan instance ke grup instance, di bagian VM instances, pilih dua instance BACKEND_INSTANCE1 dan BACKEND_INSTANCE2.
  9. Klik Create.
  10. Ulangi langkah-langkah ini untuk membuat grup instance kedua dengan spesifikasi berikut:

    • Nama: 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 untuk instance tersebut.

gcloud

  1. Buat grup instance tidak terkelola 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 tidak terkelola kedua 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 untuk instance tersebut.

Membuat health check

Buat health check untuk menentukan kondisi instance dalam grup instance Anda. Load Balancer Jaringan passthrough eksternal berbasis kumpulan target yang ada mungkin 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, kita membuat health check HTTP non-lama yang akan 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 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 perlu menetapkan grup instance failover dengan flag --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 tanda --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 sudah 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 dalam 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

Gunakan perintah nc untuk mengakses alamat IP eksternal

Dalam contoh ini, kita 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 terlebih dahulu di Linux dengan menjalankan perintah berikut:

    $ sudo apt install netcat
    
  2. Ulangi perintah berikut beberapa kali hingga 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 baru berfungsi seperti yang diharapkan, Anda dapat menghapus resource pool target lama.

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

    Buka Load balancing

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

Langkah selanjutnya