設定外部直通式網路負載平衡器的容錯移轉功能

本指南使用範例說明如何為外部直通式網路負載平衡器設定容錯移轉功能,並搭配後端服務使用。在您依循這份指南操作之前,請先熟悉以下內容:

權限

如要按照本指南操作,您必須在專案中建立執行個體和修改網路,因此您必須是專案擁有者或編輯者,或是需要下列所有 Compute Engine 身分與存取權管理角色

工作 必要角色
建立負載平衡器元件 網路管理員
新增與移除防火牆規則 安全性管理員
建立執行個體 Compute 執行個體管理員

詳情請參閱下列指南:

設定

本指南說明如何設定及測試使用容錯移轉功能的外部直通式網路負載平衡器。本節中的步驟說明如何設定以下項目:

  1. 後端 VM:
    • 一個主要後端,位於 us-west1-a 區域的非代管執行個體群組中
    • 一個容錯移轉後端,位於 us-west1-c 區域的非代管執行個體群組中
  2. 允許連入連線到後端 VM 的防火牆規則
  3. 一個用戶端 VM,用於測試連線和觀察容錯移轉行為
  4. 下列外部直通式網路負載平衡器元件:
    • 一個用於後端服務的健康狀態檢查
    • 位於 us-west1 地區的後端服務,用於管理後端 VM 之間的連線分配
    • 負載平衡器前端的轉送規則和 IP 位址

這個範例的架構如下所示:

使用外部直通式網路負載平衡器進行容錯移轉。
使用外部直通式網路負載平衡器的容錯移轉功能 (按一下可放大)。

建立後端 VM 和執行個體群組

在這個步驟中,您將建立後端 VM 和非代管執行個體群組:

  • us-west1-a 中的執行個體群組 ig-a 是包含兩個 VM 的主要後端:
    • vm-a1
    • vm-a2
  • us-west1-c 中的執行個體群組 ig-c 是包含兩個 VM 的容錯移轉後端:
    • vm-c1
    • vm-c2

將主要和容錯移轉後端置於不同的區域中,除了讓說明清楚易懂,還可在一個區域停止運作時處理容錯移轉作業。

每個主要 VM 和備用 VM 都會設定為在 TCP 通訊埠 80 上執行 Apache 網路伺服器。根據預設,Apache 會設定為繫結至任何 IP 位址。網路負載平衡器會透過保留目的地 IP 來傳遞封包。

請確認在主要 VM 和備用 VM 上執行的伺服器軟體正在監聽負載平衡器轉送規則的 IP 位址。由外部直通式網路負載平衡器傳遞至後端 VM 的封包目的地 IP 位址是轉送規則的 IP 位址。

為方便說明,所有主要 VM 和備用 VM 都會執行 Debian GNU/Linux 9。

主控台

建立後端 VM

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面前往 VM 執行個體
  2. 使用下列的名稱和區域組合,重複以下步驟來建立四個 VM。
    • 名稱:vm-a1,區域:us-west1-a
    • 名稱:vm-a2,區域:us-west1-a
    • 名稱:vm-c1,區域:us-west1-c
    • 名稱:vm-c2,區域:us-west1-c
  3. 點選「建立執行個體」
  4. 按照步驟 2 指定的名稱設定「Name」(名稱)
  5. 在「Region」(區域) 中選擇 us-west1,然後選擇步驟 2 列出的「Zone」(可用區)
  6. 在「Boot disk」(開機磁碟) 專區中,確認所選映像檔為 Debian GNU/Linux 12 (bookworm)。如有需要,請按一下「選擇」,以變更圖片。
  7. 點選「進階選項」
  8. 按一下「網路」,然後設定下列欄位:
    1. 在「網路標記」中輸入 network-lb
  9. 按一下 [Management] (管理)。在「Startup script」(開機指令碼) 欄位中輸入下列指令碼。四個 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
    
  10. 按一下 [Create] (建立)

建立執行個體群組

  1. 前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組)

  2. 使用下列組合,重複以下的步驟來建立兩個非代管執行個體群組,每個非代管執行個體群組各包含兩個 VM。

    • 執行個體群組:ig-a,區域:us-west1-a,VM:vm-a1vm-a2
    • 執行個體群組:ig-c,區域:us-west1-c,VM:vm-c1vm-c2
  3. 點選「建立執行個體群組」

  4. 按一下「New unmanaged instance group」(新增非代管的執行個體群組)

  5. 按照步驟 2 指定的名稱設定「Name」(名稱)

  6. 在「Location」(位置) 區段,為「Region」(區域) 選擇 us-west1,然後選擇步驟 2 列出的「Zone」(可用區)

  7. 在「Network」中輸入 default

  8. 在「VM instances」(VM 執行個體) 區段中,按照步驟 2 指定的 VM 新增 VM。

  9. 按一下 [建立]。

gcloud

  1. 使用下列四個 VM-NAMEZONE 組合,透過執行以下指令四次來建立四個 VM。四個 VM 的指令碼內容完全相同。

    • vm-a1VM-NAMEus-west1-aZONE
    • vm-a2VM-NAMEus-west1-aZONE
    • vm-c1VM-NAMEus-west1-cZONE
    • vm-c2VM-NAMEus-west1-cZONE
    gcloud compute instances create VM-NAME \
        --zone=ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=network-lb \
        --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'
    
  2. 在每個區域中建立兩個非代管執行個體群組:

    gcloud compute instance-groups unmanaged create ig-a \
        --zone us-west1-a
    gcloud compute instance-groups unmanaged create ig-c \
        --zone us-west1-c
    
  3. 將 VM 新增至適當的執行個體群組:

    gcloud compute instance-groups unmanaged add-instances ig-a \
        --zone us-west1-a \
        --instances vm-a1,vm-a2
    gcloud compute instance-groups unmanaged add-instances ig-c \
        --zone us-west1-c \
        --instances vm-c1,vm-c2
    

設定防火牆規則

建立防火牆規則,允許外部流量傳送至後端執行個體。

主控台

  1. 在 Google Cloud 控制台中,前往「Firewall policies」(防火牆政策) 頁面。

    前往「防火牆政策」

  2. 按一下「建立防火牆規則」,建立允許來自任何來源的流量的規則。請使用下列值:

    1. 名稱allow-network-lb
    2. Network (網路):default
    3. Priority (優先順序):1000
    4. 「Direction of traffic」(流量方向):ingress
    5. 「Action on match」(相符時執行的動作):允許。
    6. 「Target」(目標):指定的目標標記
    7. 「Target tags」(目標標記)network-lb
    8. 來源篩選器IPv4 範圍
    9. 來源 IPv4 範圍0.0.0.0/0,允許來自任何來源的流量。這樣一來,外部流量和健康狀態檢查探針都能存取後端執行個體。
    10. Protocols and ports:選擇「Specified protocols and ports」。勾選「TCP」TCP核取方塊,然後輸入 80
  3. 按一下 [建立]。

  4. 再次按一下「Create firewall rule」(建立防火牆規則),建立允許連入 SSH 連線至執行個體的規則。請使用下列值:

    1. Name (名稱):allow-ssh
    2. Network (網路):default
    3. Priority (優先順序):1000
    4. 「Direction of traffic」(流量方向):ingress
    5. 「Action on match」(相符時執行的動作):允許
    6. 「Target」(目標):指定的目標標記
    7. 「Target tags」(目標標記)network-lb
    8. 來源篩選器IPv4 範圍
    9. Source IPv4 ranges (來源 IPv4 範圍):0.0.0.0/0
    10. Protocols and ports:選擇「Specified protocols and ports」。勾選「TCP」TCP核取方塊,然後輸入 22
  5. 按一下 [建立]。

gcloud

gcloud compute firewall-rules create allow-network-lb \
    --target-tags network-lb \
    --allow tcp:80
gcloud compute firewall-rules create allow-ssh \
    --target-tags network-lb \
    --allow tcp:22

設定負載平衡器元件

這些步驟會設定下列外部直通式網路負載平衡器元件:

  • 健康狀態檢查:這個範例使用只檢查 HTTP 200 (OK) 回應的 HTTP 健康狀態檢查。

  • 後端服務:由於這個範例是透過負載平衡器傳送 HTTP 流量,因此設定應指定 TCP,而非 UDP。為了說明容錯移轉,這項後端服務的容錯移轉比率為 0.75

  • 轉送規則:這個範例會建立一個轉送規則。

主控台

開始設定

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。

    前往「負載平衡」

  2. 點選「建立負載平衡器」
  3. 在「負載平衡器類型」部分,選取「網路負載平衡器 (TCP/UDP/SSL)」,然後點選「下一步」
  4. 在「直通或使用 Proxy」部分,選取「直通式負載平衡器」,然後點選「下一步」
  5. 在「公開或內部」部分,選取「公開 (外部)」,然後點選「下一步」
  6. 按一下 [設定]

後端設定

  1. 在「Create external passthrough Network Load Balancer」(建立外部直通式網路負載平衡器) 頁面上,輸入新負載平衡器的「Name」(名稱) tcp-network-lb
  2. 按一下「後端設定」。畫面上會顯示您之前輸入的負載平衡器名稱,但無法修改。
  3. 按一下「後端設定」,然後進行以下變更:
    1. 在「Region」(地區) 中選擇 us-west1
    2. 在「Backends」(後端) 下方,使用「Instance group」(執行個體群組) 下拉式選單選取 ig-a。接著,點選「Done」(完成)
    3. 按一下「Add backend」(新增後端),然後重複執行這項步驟來新增 ig-c。選取「Use this instance group as a failover group for backup」(將這個執行個體群組當做備份用容錯移轉群組) 核取方塊。
    4. 在「Health check」(健康狀態檢查) 下方,選擇「Create another health check」(建立另一個健康狀態檢查) 或「Create another health check」(建立另一個健康狀態檢查),然後輸入以下資訊:
      • Name (名稱):hc-http-80
      • Protocol (通訊協定):TCP
      • Port (通訊埠):80
    5. 按一下 [儲存並繼續]
    6. 按一下 [Advanced configurations] (進階設定)
    7. 在「容錯移轉率」中輸入 0.75
    8. 繼續操作之前,請先驗證「Backend configuration」(後端設定)旁是否有藍色勾號。

前端設定

  1. 按一下「前端設定」
  2. 輸入 network-lb-forwarding-rule 的「Name」
  3. 按一下「IP」下方的下拉式選單,然後選取「Create IP address」
    1. 在「預約新的靜態 IP 位址」畫面上,指派 network-lb-ip 的「名稱」
    2. 按一下「保留」
  4. 選擇「Single」(單一),然後輸入 80 做為「Port number」(通訊埠號碼)
  5. 按一下 [Done] (完成) 按鈕。

    如果「Frontend configuration」(前端設定) 左邊顯示具有勾號的藍色圓圈,即表示設定成功。

檢閱設定

  1. 按一下 [Review and finalize] (檢查並完成) 按鈕以檢查負載平衡器的所有配置設定。
  2. 如果設定正確無誤,請按一下 [Create] (建立)。負載平衡器會花費幾分鐘的時間建立。

    在「負載平衡」畫面的新負載平衡器的「後端」欄下方,您應該會看到綠色勾號,表示新負載平衡器健康狀態良好。

gcloud

  1. 為負載平衡器建立靜態外部 IP 位址。

    gcloud compute addresses create network-lb-ip \
        --region us-west1
    
  2. 建立新的 HTTP 健康狀態檢查,以測試通訊埠 80 上連至 VM 的 TCP 連線。

    gcloud compute health-checks create http hc-http-80 \
        --region us-west1 \
        --port 80
    
  3. 針對 HTTP 流量建立後端服務:

    gcloud compute backend-services create network-lb-backend-service \
        --protocol tcp \
        --region us-west1 \
        --health-checks hc-http-80 \
        --health-checks-region us-west1 \
        --failover-ratio 0.75
    
  4. 將主要後端新增至後端服務:

    gcloud compute backend-services add-backend network-lb-backend-service \
        --region us-west1 \
        --instance-group ig-a \
        --instance-group-zone us-west1-a
    
  5. 將容錯移轉後端新增至後端服務:

    gcloud compute backend-services add-backend network-lb-backend-service \
        --region us-west1 \
        --instance-group ig-c \
        --instance-group-zone us-west1-c \
        --failover
    
  6. 為後端服務建立轉送規則。使用步驟 1 中保留的 IP 位址,做為負載平衡器的靜態外部 IP 位址。

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

測試

以下測試示範如何驗證您的負載平衡器設定,並瞭解其預期行為。

將流量傳送至負載平衡器

這個程序會將外部流量傳送至負載平衡器。您將使用這個程序來完成其他測試。

  1. 連線至用戶端 VM 執行個體。

    gcloud compute forwarding-rules describe network-lb-forwarding-rule \
        --region us-west1
    
  2. 使用 curl 聯絡負載平衡器的 IP 位址,向負載平衡器發出網路要求。

    curl http://IP_ADDRESS
    
  3. 請注意 curl 指令傳回的文字。產生回應的後端 VM 的名稱會顯示在該文字中;例如:Page served from: vm-a1

測試初始狀態

設定範例負載平衡器後,四個後端 VM 的健康狀態都應良好:

  • 兩個主要 VM:vm-a1vm-a2
  • 兩個備用 VM:vm-c1vm-c2

請按照測試程序將流量傳送至負載平衡器。重複第二個步驟幾次。預期的行為是由兩個主要 VM (vm-a1vm-a2) 提供流量,因為這兩個 VM 的健康狀態都良好。由於尚未對這個負載平衡器設定工作階段相依性,因此每個主要 VM 提供回應的時間應大約只有一半。

測試容錯移轉

這項測試會模擬 vm-a1 的故障情形,以便您觀察容錯移轉行為。

  1. 連線至 vm-a1 VM。

    gcloud compute ssh vm-a1 --zone us-west1-a
    
  2. 停止 Apache 網路伺服器。10 秒後, Google Cloud會將這個 VM 判定為健康狀態不良 (您在設定程序中建立的 hc-http-80 健康狀態檢查會使用預設 5 秒的檢查時間間隔,以及兩次探測作業連續失敗的健康狀態不良門檻)。

    sudo apachectl stop
    
  3. 請按照測試程序將流量傳送至負載平衡器。重複第二個步驟幾次。預期的行為是由兩個備用 VM (vm-c1vm-c2) 提供流量。由於只有一個主要 VM (vm-a2) 的健康狀態良好,所以健康狀態良好的主要 VM 與主要 VM 總數的比例為 0.5。這個數字小於容錯移轉門檻 0.75,因此Google Cloud 會重新設定負載平衡器的使用中集區,以便使用備用 VM。只要尚未對這個負載平衡器設定工作階段相依性,每個備用 VM 提供回應的時間應大約只有一半。

測試容錯回復

這項測試會透過在 vm-a1 上重新啟動 Apache 伺服器來模擬容錯回復作業。

  1. 連線至 vm-a1 VM。

    gcloud compute ssh vm-a1 --zone us-west1-a
    
  2. 啟動 Apache 網路伺服器,然後等待 10 秒鐘。

    sudo apachectl start
    
  3. 依照用戶端測試程序進行操作。重複第二個步驟幾次。預期的行為是由兩個主要 VM (vm-a1vm-a2) 提供流量。由於兩個主要 VM 的健康狀態都良好,健康狀態良好的主要 VM 與主要 VM 總數的比例為 1.0,大於容錯移轉門檻 0.75,因此 Google Cloud 會再次將使用中集區設定為使用主要 VM。

新增更多後端 VM

本節會將更多主要 VM 和備用 VM 新增至負載平衡器,藉此擴大範例設定。做法是另外建立兩個後端執行個體群組來示範您可以在同一個地區的多個區域之間分配主要 VM 和備用 VM:

  • 第三個執行個體群組 (us-west1-c 中的 ig-d) 會做為包含兩個 VM 的主要後端:
    • vm-d1
    • vm-d2
  • 第四個執行個體群組 (us-west1-a 中的 ig-b) 會做為包含兩個 VM 的容錯移轉後端:
    • vm-b1
    • vm-b2

這個範例修改後的架構如下所示:

多區域外部直通式網路負載平衡器容錯移轉。
多區域外部直通式網路負載平衡器容錯移轉 (按一下可放大)。

建立其他 VM 和執行個體群組

如要建立其他主要 VM 和備用 VM 以及其對應的非代管執行個體群組,請按照以下步驟操作。

主控台

建立後端 VM

  1. 前往 Google Cloud 控制台的「VM instances」(VM 執行個體) 頁面

    前往 VM 執行個體

  2. 使用下列的名稱和區域組合,重複以下步驟來建立四個 VM。

    • 名稱:vm-b1,區域:us-west1-a
    • 名稱:vm-b2,區域:us-west1-a
    • 名稱:vm-d1,區域:us-west1-c
    • 名稱:vm-d2,區域:us-west1-c
  3. 點選「建立執行個體」

  4. 按照步驟 2 指定的名稱設定「Name」(名稱)

  5. 在「Region」(區域) 中選擇 us-west1,然後選擇步驟 2 列出的「Zone」(可用區)

  6. 在「Boot disk」(開機磁碟) 區段中,確認所選映像檔為 Debian GNU/Linux 9 Stretch。如有需要,請按一下「選擇」,以變更圖片。

  7. 點選「進階選項」

  8. 按一下「Networking」,然後設定下列欄位:

    1. 在「網路標記」中輸入 network-lb
  9. 按一下 [Management] (管理)。在「Startup script」(開機指令碼) 欄位中輸入下列指令碼。四個 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
    
  10. 按一下 [Create] (建立)

建立執行個體群組

  1. 前往 Google Cloud 控制台的「Instance groups」(執行個體群組) 頁面。

    前往「Instance groups」(執行個體群組)

  2. 使用下列組合,重複以下的步驟來建立兩個非代管執行個體群組,每個非代管執行個體群組各包含兩個 VM。

    • 執行個體群組:ig-b,區域:us-west1-a,VM:vm-b1vm-b2
    • 執行個體群組:ig-d,區域:us-west1-c,VM:vm-d1vm-d2
  3. 點選「建立執行個體群組」

  4. 按一下「New unmanaged instance group」(新增非代管的執行個體群組)

  5. 按照步驟 2 指定的名稱設定「Name」(名稱)

  6. 在「Location」(位置) 區段,為「Region」(區域) 選擇 us-west1,然後選擇步驟 2 列出的「Zone」(可用區)

  7. 在「Network」中輸入 default

  8. 在「VM instances」(VM 執行個體) 區段中,按照步驟 2 指定的 VM 新增 VM。

  9. 按一下 [建立]。

gcloud

  1. 使用下列四個 VM-NAMEZONE 組合,透過執行以下指令四次來建立四個 VM。四個 VM 的指令碼內容完全相同。

    • vm-b1VM-NAMEus-west1-aZONE
    • vm-b2VM-NAMEus-west1-aZONE
    • vm-d1VM-NAMEus-west1-cZONE
    • vm-d2VM-NAMEus-west1-cZONE
    gcloud compute instances create VM-NAME \
        --zone=ZONE \
        --image-family=debian-12 \
        --image-project=debian-cloud \
        --tags=network-lb \
        --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'
    
  2. 在每個區域中建立兩個非代管執行個體群組:

    gcloud compute instance-groups unmanaged create ig-b \
        --zone us-west1-a
    gcloud compute instance-groups unmanaged create ig-d \
        --zone us-west1-c
    
  3. 將 VM 新增至適當的執行個體群組:

    gcloud compute instance-groups unmanaged add-instances ig-b \
        --zone us-west1-a \
        --instances vm-b1,vm-b2
    gcloud compute instance-groups unmanaged add-instances ig-d \
        --zone us-west1-c \
        --instances vm-d1,vm-d2
    

新增主要後端

您可以將這個程序做為範本,以瞭解如何將非代管執行個體群組新增至現有外部直通式網路負載平衡器的後端服務來做為主要後端。這個程序會針對範例設定說明如何將執行個體群組 ig-d 新增至 network-lb 負載平衡器來做為主要後端。

主控台

編輯負載平衡器設定,新增主要後端。

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。

    前往「負載平衡」

  2. 按一下要修改的負載平衡器。

  3. 按一下 [編輯]

  4. 按一下「後端設定」,然後進行以下變更:

    1. 在「後端」下方,按一下「新增後端」
    2. 在下拉式選單中,選取要新增做為主要後端的執行個體群組。在這種情況下:ig-d
    3. 按一下 [完成]
    4. 繼續操作之前,請先驗證「Backend configuration」(後端設定)旁是否有藍色勾號。

檢閱設定

  1. 按一下「Review and finalize」按鈕,確認「Backend」下方顯示新的主後端。
  2. 如果設定正確無誤,請按一下 [Create] (建立)。負載平衡器會花費幾分鐘的時間建立。

    在「負載平衡」畫面的新負載平衡器的「後端」欄下方,您應該會看到綠色勾號,表示新負載平衡器健康狀態良好。

gcloud

使用以下 gcloud 指令將主要後端新增至現有外部直通式網路負載平衡器的後端服務。

gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION

其中:

  • BACKEND_SERVICE_NAME 是負載平衡器的後端服務名稱。在這個範例中請使用 network-lb-backend-service
  • INSTANCE_GROUP_NAME 是要新增做為主要後端的執行個體群組名稱。在這個範例中請使用 ig-d
  • INSTANCE_GROUP_ZONE 是定義執行個體群組的區域。在這個範例中請使用 us-west1-c
  • REGION 是負載平衡器的地區。在這個範例中請使用 us-west1

新增容錯移轉後端

您可以將這個程序做為範本,以瞭解如何將非代管執行個體群組新增至現有外部直通式網路負載平衡器的後端服務,做為容錯移轉後端。這個程序會針對範例設定說明如何將執行個體群組 ig-b 新增至 network-lb 負載平衡器來做為容錯移轉後端。

主控台

編輯負載平衡器設定,新增主要後端。

  1. 前往 Google Cloud 控制台的「Load balancing」(負載平衡)頁面。

    前往「負載平衡」

  2. 按一下要修改的負載平衡器。

  3. 按一下 [編輯]

  4. 按一下「後端設定」,然後進行以下變更:

    1. 在「後端」下方,按一下「新增後端」
    2. 在下拉式選單中,選取要新增做為容錯移轉後端的執行個體群組。在這種情況下:ig-b
    3. 選取「Use this instance group as a failover group for backup」(將這個執行個體群組當做備份用容錯移轉群組) 核取方塊。
    4. 按一下 [完成]
    5. 繼續操作之前,請先驗證「Backend configuration」(後端設定)旁是否有藍色勾號。

檢閱設定

  1. 按一下「Review and finalize」按鈕,確認「Backend」下方顯示新的主後端。
  2. 如果設定正確無誤,請按一下 [Create] (建立)。負載平衡器會花費幾分鐘的時間建立。

    在「負載平衡」畫面的新負載平衡器的「後端」欄下方,您應該會看到綠色勾號,表示新負載平衡器健康狀態良好。

gcloud

使用以下 gcloud 指令將容錯移轉後端新增至現有外部直通式網路負載平衡器的後端服務。

gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION \
   --failover

其中:

  • BACKEND_SERVICE_NAME 是負載平衡器的後端服務名稱。在這個範例中請使用 network-lb-backend-service
  • INSTANCE_GROUP_NAME 是要新增做為容錯移轉後端的執行個體群組名稱。在這個範例中請使用 ig-b
  • INSTANCE_GROUP_ZONE 是定義執行個體群組的區域。在這個範例中請使用 us-west1-a
  • REGION 是負載平衡器的地區。在這個範例中請使用 us-west1

轉換主要或容錯移轉後端

您可以將主要後端轉換為容錯移轉後端,或進行反向操作,而不必從外部直通式網路負載平衡器的後端服務中移除執行個體群組。

gcloud

使用以下 gcloud 指令將現有的主要後端轉換為容錯移轉後端:

gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION \
   --failover

使用以下 gcloud 指令將現有的容錯移轉後端轉換為主要後端:

gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \
   --instance-group INSTANCE_GROUP_NAME \
   --instance-group-zone INSTANCE_GROUP_ZONE \
   --region REGION \
   --no-failover

其中:

  • BACKEND_SERVICE_NAME 是負載平衡器的後端服務名稱。
  • INSTANCE_GROUP_NAME 是執行個體群組的名稱。
  • INSTANCE_GROUP_ZONE 是定義執行個體群組的區域。
  • REGION 是負載平衡器的地區。

設定容錯移轉政策

本節說明如何管理外部直通式網路負載平衡器的後端服務容錯移轉政策。容錯移轉政策包括:

  • 容錯移轉率
  • 在所有後端 VM 的健康狀態都不良時捨棄流量
  • 在容錯移轉時排除連線

如要進一步瞭解容錯移轉政策的參數,請參閱以下說明:

定義容錯移轉政策

以下操作說明描述如何為現有的外部直通式網路負載平衡器定義容錯移轉政策。

gcloud

如要使用 gcloud CLI 定義容錯移轉政策,請更新負載平衡器的後端服務:

gcloud compute backend-services update BACKEND_SERVICE_NAME \
   --region REGION \
   --failover-ratio FAILOVER_RATIO \
   --connection-drain-on-failover \
   --connection-draining-timeout=CONNECTION_DRAINING_TIMEOUT \
   --drop-traffic-if-unhealthy

其中:

  • BACKEND_SERVICE_NAME 是負載平衡器的後端服務名稱。在這個範例中請使用 network-lb
  • REGION 是負載平衡器的地區。在這個範例中請使用 us-west1
  • FAILOVER_RATIO 是容錯移轉率。可能的值介於 0.01.0 之間 (含頭尾)。在這個範例中請使用 0.75
  • CONNECTION_DRAINING_TIMEOUT 可讓 TCP 連線持續存在,即使在不再位於現用集區的 VM 上,也能持續存在,最長可達連線排除逾時時間。

查看容錯移轉政策

以下操作說明描述如何查看外部直通式網路負載平衡器的現有容錯移轉政策。

gcloud

如要使用 gcloud CLI 列出容錯移轉政策設定,請使用下列指令。容錯移轉政策中未定義的設定會使用預設的容錯移轉政策值

gcloud compute backend-services describe BACKEND_SERVICE_NAME \
   --region REGION \
   --format="get(failoverPolicy)"

其中:

  • BACKEND_SERVICE_NAME 是負載平衡器的後端服務名稱。在這個範例中請使用 network-lb-backend-service
  • REGION 是負載平衡器的地區。在這個範例中請使用 us-west1

後續步驟