使用健康狀態檢查

Trusted Cloud by S3NS 提供健康狀態檢查機制,可判斷後端執行個體是否對流量做出適當的回應。本文說明如何為負載平衡器和 Cloud Service Mesh 建立及使用健康狀態檢查。

本頁面假設您熟悉下列概念:

建立健康狀態檢查

Trusted Cloud 當您在 Trusted Cloud 控制台中完成負載平衡器的後端設定時,系統會讓您建立或選取健康狀態檢查。

您也可以在 Trusted Cloud 控制台中,單獨建立負載平衡器設定的健康狀態檢查。當您需要先建立健康狀態檢查時,或是在您需要讓多個負載平衡器使用同一個健康狀態檢查時,這方法就很實用了。您可以使用 Trusted Cloud 控制台、Google Cloud CLI 或 REST API 建立健康狀態檢查。

主控台

  1. 前往 Trusted Cloud 控制台的「健康狀態檢查」頁面。
    前往「Health checks」(健康狀態檢查) 頁面
  2. 按一下 [Create a health check] (建立健康狀態檢查)
  3. 在「建立健康狀態檢查」頁面中,提供下列資訊:

    • 「Name」(名稱):提供健康狀態檢查的名稱。
    • 「Description」(說明):(選用) 提供說明。
    • 範圍:選取範圍,可以是「全域」或「區域」取決於負載平衡器的類型
      • 如果選取「區域」,請從下拉式選單中選擇「區域」
    • 「Protocol」(通訊協定):選擇健康狀態檢查的通訊協定

      Trusted Cloud
    • 「Port」(通訊埠):提供通訊埠編號。在 Trusted Cloud 控制台中建立健康狀態檢查時,必須使用通訊埠號碼指定通訊埠

    • 「Proxy protocol」(Proxy 通訊協定):(選用) 您可以將 Proxy 標頭附加到健康狀態檢查探測系統所發出的要求上。

    • 「Request path and Response」(要求路徑和回應):(選用) 針對 HTTP、HTTPS 和 HTTP2 通訊協定,您可以提供能讓健康狀態檢查探測系統用來聯絡的網址路徑。詳情請參閱「HTTP、HTTPS 和 HTTP/2 健康狀態檢查的其他標記」。

    • 「Request」(要求) 和「Response」(回應):針對 TCP 和 SSL 通訊協定,您可以指定要傳送的 ASCII 文字字串,以及預期的文字回應字串。詳情請參閱 SSL 和 TCP 健康狀態檢查的其他標記

    • 「Check interval」(檢查時間間隔):定義從某次探測作業開始到下一次探測作業開始之間的時間長度。

    • 「Timeout」(逾時時間):定義 Trusted Cloud等待探測回應的時間長度,這個值必須小於或等於檢查時間間隔。

    • 「Healthy threshold」(良好健康狀態判定門檻):定義探測作業必須要連續成功多少次,才能讓系統判定 VM 執行個體的健康狀態良好。

    • 「Unhealthy threshold」(不良健康狀態判定門檻):定義探測作業必須要連續失敗多少次,才能讓系統判定該 VM 執行個體的健康狀態不良。

  4. 點選「建立」

gcloud

  • 如要建立全域健康狀態檢查,請使用適當的 compute health-checks create 指令:

    gcloud compute health-checks create PROTOCOL NAME \
        --global \
        --description=DESCRIPTION \
        --check-interval=CHECK_INTERVAL \
        --timeout=TIMEOUT \
        --healthy-threshold=HEALTHY_THRESHOLD \
        --unhealthy-threshold=UNHEALTHY_THRESHOLD \
        PORT_SPECIFICATION \
        ADDITIONAL_FLAGS
    
  • 如要建立地區健康狀態檢查,請使用適當的 compute health-checks create 指令:

    gcloud compute health-checks create PROTOCOL NAME \
        --region=REGION \
        --description=DESCRIPTION \
        --check-interval=CHECK_INTERVAL \
        --timeout=TIMEOUT \
        --healthy-threshold=HEALTHY_THRESHOLD \
        --unhealthy-threshold=UNHEALTHY_THRESHOLD \
        PORT_SPECIFICATION \
        ADDITIONAL_FLAGS
    

更改下列內容:

  • PROTOCOL:定義健康狀態檢查所使用的通訊協定,有效選項為 GRPCGRPC_WITH_TLSHTTPHTTPSHTTP2SSLTCP

  • NAME:健康狀態檢查的名稱。在單一專案中:每個全域健康狀態檢查的名稱都必須是唯一的,且區域健康狀態檢查的名稱在指定區域內不得重複。

  • REGION:健康狀態檢查的區域。如果是地區負載平衡器,健康狀態檢查的地區必須與後端服務的地區相符。

  • DESCRIPTION:(選用) 提供說明。

  • CHECK_INTERVAL:從某個健康狀態檢查探測系統的連線開始時,到下一個健康狀態檢查探測系統的連線開始時的時間間隔。單位為秒。如果省略這個標記, Trusted Cloud 會採用 5s (5 秒) 的值。

  • TIMEOUT: Trusted Cloud等待探測回應的時間長度。TIMEOUT 的值必須小於或等於 CHECK_INTERVAL。單位為秒。如果省略這個標記,Trusted Cloud 會採用 5s (5 秒) 的值。

  • HEALTHY_THRESHOLDUNHEALTHY_THRESHOLD:指定探測作業必須要連續成功或失敗多少次,才會讓系統認定該 VM 執行個體的健康狀態良好或不良。只要您省略其中一個標記,Trusted Cloud 就會採用 2 的預設判定門檻值。

  • PORT_SPECIFICATION:使用其中一個通訊埠規格標記定義通訊埠規格。

  • ADDITIONAL_FLAGS 是用於指定通訊埠及 PROTOCOL 專用選項的其他標記。請參閱 HTTP、HTTPS 和 HTTP/2 健康狀態檢查的其他標記SSL 和 TCP 健康狀態檢查的其他標記,或 gRPC 健康狀態檢查的其他標記

Terraform

如要建立全域健康狀態檢查,請使用 google_compute_health_check 資源。

resource "google_compute_health_check" "health_check_tcp_with_logging" {
  provider = google-beta

  name = "health-check-tcp"

  timeout_sec        = 1
  check_interval_sec = 1

  tcp_health_check {
    port = "22"
  }

  log_config {
    enable = true
  }
}

如要建立區域健康狀態檢查,請使用 google_compute_region_health_check 資源。

resource "google_compute_region_health_check" "default" {
  name               = "tcp-health-check-region-west"
  timeout_sec        = 5
  check_interval_sec = 5
  tcp_health_check {
    port = "80"
  }
  region = "us-west1"
}

如要瞭解如何套用或移除 Terraform 設定,請參閱「基本 Terraform 指令」。

API

修改健康狀態檢查

您無法透過修改健康狀態檢查,將健康狀態檢查轉換為舊版健康狀態檢查 (反之亦然)。您也無法變更健康狀態檢查的名稱或範圍 (例如從全域變更為區域)。

主控台

  1. 前往 Trusted Cloud 控制台的「健康狀態檢查」頁面。
    前往「Health checks」(健康狀態檢查) 頁面
  2. 按一下健康狀態檢查即可查看詳細資料。
  3. 如要修改健康狀態檢查,請按一下「編輯」,然後:
    • 視需要修改參數。
    • 按一下 [儲存]

gcloud

  1. 找出健康狀態檢查的名稱和範圍。如需操作說明,請參閱列出健康狀態檢查

  2. 除了健康狀態檢查的名稱、通訊協定和範圍之外,您可以修改任何常用標記通訊埠規格標記,以及其他額外標記。如要修改現有的健康狀態檢查,請使用適當的 compute health-checks update 指令。如果省略旗標,系統會保留預先設定的設定。

    • 修改全域健康狀態檢查的範例:以下指令會修改名為 hc-http-port-80 的全域 HTTP 健康狀態檢查,方法是變更檢查間隔、逾時時間和要求路徑:

      gcloud compute health-checks update http hc-http-port-80 \
          --global \
          --check-interval=20s \
          --timeout=15s \
          --request-path="/health"
      
    • 修改區域健康狀態檢查的範例:下列指令會修改 us-west1 中名為 hc-west1-tcp-ldap 的區域 TCP 健康狀態檢查,變更其通訊埠規格:

      gcloud compute health-checks update tcp hc-west1-tcp-ldap \
          --region=us-west1 \
          --port=631
      

API

  1. 找出健康狀態檢查的名稱和範圍。如需操作說明,請參閱列出健康狀態檢查

  2. 除了健康狀態檢查的名稱、通訊協定和範圍之外,您可以使用這些 API 呼叫,修改任何常用標記通訊埠規格標記,以及其他額外標記。使用 patch API 呼叫,保留要求中未明確設定的任何預先設定。

列出健康狀態檢查

主控台

  1. 前往 Trusted Cloud 控制台的「健康狀態檢查」頁面。
    前往「Health checks」(健康狀態檢查) 頁面
  2. 按一下健康狀態檢查即可查看詳細資料。

gcloud

如要列出健康狀態檢查,請使用 compute health-checks list 指令:

  • 如要列出全域健康狀態檢查:

    gcloud compute health-checks list \
        --global
    
  • 如要列出區域健康狀態檢查,請將 REGION_LIST 替換為以半形逗號分隔的 Trusted Cloud 查詢區域清單。

    gcloud compute health-checks list \
        --regions=REGION_LIST
    

知道健康狀態檢查的名稱和範圍後,請使用 compute health-checks describe 指令查看目前的設定。

  • 如要描述全域健康狀態檢查,請將 NAME 替換成該檢查的名稱。

    gcloud compute health-checks describe NAME \
        --global
    
  • 如要描述區域健康狀態檢查,請將 NAME 替換為健康狀態檢查名稱,並將 REGION 替換為健康狀態檢查地區。

    gcloud compute health-checks describe NAME \
        --region=REGION
    

API

如要列出健康狀態檢查,請使用下列 API 呼叫:

如要說明健康狀態檢查的目前設定,請使用:

其他旗標

本節說明建立或修改健康狀態檢查時可使用的其他旗標。部分標記 (例如通訊埠規格) 必須使用 gcloud 或 API 設定。

通訊埠規格標記

使用 Google Cloud CLI 或 API 建立健康狀態檢查時,有兩種方式可指定健康狀態檢查的通訊埠。下表顯示有效的負載平衡器與後端組合可用的通訊埠規格選項。「執行個體群組」一詞指的是非代管執行個體群組、區域代管執行個體群組或地區代管執行個體群組。

每項健康狀態檢查只能使用一種通訊埠規格。

產品 後端類型 通訊埠規格選項
外部直通式網路負載平衡器 執行個體群組和支援的 NEG

--port:使用從 165535 的數字來指定 TCP 通訊埠

如果是與內部直通式網路負載平衡器相關聯的健康狀態檢查,系統會忽略 --use-serving-port 標記,因為這類負載平衡器的後端服務不會訂閱任何已命名的通訊埠。這是因為這些是直通負載平衡器,會直接將封包傳送至後端,而不是從負載平衡器建立連至後端的新連線。

目標集區 舊版健康狀態檢查支援通訊埠編號 (--port) 規格。
內部直通式網路負載平衡器 執行個體群組和支援的 NEG

--port:使用從 165535 的數字來指定 TCP 通訊埠

如果是與內部直通式網路負載平衡器相關聯的健康狀態檢查,系統會忽略 --use-serving-port 標記,因為這類負載平衡器的後端服務不會訂閱任何已命名的通訊埠。這是因為這些是直通負載平衡器,會直接將封包傳送至後端,而不是從負載平衡器建立連至後端的新連線。

區域外部應用程式負載平衡器

區域內部應用程式負載平衡器

區域外部 Proxy 網路負載平衡器

區域內部 Proxy 網路負載平衡器

支援的 NEG
  • --port:使用從 165535 的數字來指定 TCP 通訊埠
  • --use-serving-port:使用網路端點群組中每個端點的通訊埠。
執行個體群組
  • --port:使用從 165535 的數字來指定 TCP 通訊埠
  • --use-serving-port:使用後端服務訂閱的同一個執行個體群組已命名通訊埠。

如果在建立健康狀態檢查時省略通訊埠規格,Trusted Cloud 會使用下列預設值:

  • 如果健康狀態檢查的通訊協定為 TCPHTTP,則會使用 --port=80
  • 如果健康狀態檢查的通訊協定為 SSLHTTPSHTTP2,則會使用 --port=443
  • 如果健康狀態檢查的通訊協定為 GRPCGRPC_WITH_TLS,則沒有隱含的預設值,您必須加入通訊埠規格。

HTTP、HTTPS 和 HTTP/2 健康狀態檢查的其他旗標

除了常用的標記和通訊埠規格之外,您還可以針對 HTTP、HTTPS 和 HTTP/2 健康狀態檢查使用以下的選用標記。這個範例會建立名為 hc-http-port-80 的 HTTP 健康狀態檢查,且該健康狀態檢查會使用通訊埠 80,搭配預設的時間間隔、逾時時間,以及健康狀態判定門檻條件。

gcloud compute health-checks create HTTP_PROTOCOL hc-http-port-80 \
    COMMON_FLAGS \
    PORT_SPECIFICATION \
    --host=HOST \
    --proxy-header=PROXY_HEADER \
    --request-path=REQUEST_PATH \
    --response=RESPONSE
  • HTTP_PROTOCOL:可以是 http (不含 TLS 的 HTTP/1.1)、https (含 TLS 的 HTTP/1.1) 或 http2 (含 TLS 的 HTTP/2)。
  • COMMON_FLAGS:定義常見的旗標。請參閱建立程序
  • PORT_SPECIFICATION:使用其中一個通訊埠規格標記定義通訊埠規格。
  • HOST:可讓您提供 Host HTTP 標頭。如果您省略這個標記,系統會採用負載平衡器轉送規則所使用的 IP 位址。
  • PROXY_HEADER:必須是 NONEPROXY_V1。如果省略這個標記,Trusted Cloud 會採用 NONEPROXY_V1 的值會新增標頭 PROXY UNKNOWN\r\n
  • REQUEST_PATH:指定 Trusted Cloud 在傳送健康狀態檢查要求時所使用的網址路徑。如果省略,健康狀態檢查要求會傳送至 /
  • RESPONSE:定義選用的預期回應。回應字串必須遵照以下規則:
    • 回應字串只能包含 ASCII 字母、數字和空格。
    • 回應字串的長度上限為 1,024 個字元。
    • 「不」支援萬用字元比對功能。
    • 內容式檢查不支援反轉;舉例來說,HAProxy 中的運算子 (例如 !) 就不受支援。

如果 Trusted Cloud 在接收到的回應主體的前 1,024 個字元中「任何位置」找到預期的回應字串,且 HTTP 狀態為 200 (成功) 時,探測作業就算是成功。

--request-path--response 標記會修改健康狀態檢查探測作業的成功條件

SSL 和 TCP 健康狀態檢查的其他標記

除了常用的標記和通訊埠規格之外,您還可以針對 SSL 和 TCP 健康狀態檢查使用以下的選用標記。這個範例會建立名為 hc-tcp-3268 的 TCP 健康狀態檢查,且該健康狀態檢查會使用通訊埠 3268,搭配預設的時間間隔、逾時時間,以及健康狀態判定門檻條件。

gcloud compute health-checks create tcp hc-tcp-3268 \
    COMMON_FLAGS \
    PORT_SPECIFICATION \
    --proxy-header=PROXY_HEADER \
    --request=REQUEST_STRING \
    --response=RESPONSE_STRING
  • 通訊協定可以是 (本範例採用的) tcpssl
  • COMMON_FLAGS:定義常見的旗標。請參閱建立程序
  • PORT_SPECIFICATION:使用其中一個通訊埠規格標記定義通訊埠規格。
  • PROXY_HEADER:必須是 NONEPROXY_V1。如果省略這個標記,Trusted Cloud 會採用 NONEPROXY_V1 的值會新增標頭 PROXY UNKNOWN\r\n
  • REQUEST_STRING:您可以提供最長 1,024 個 ASCII 字元的字串,讓系統能在 TCP 或 SSL 工作階段建立時立刻傳送。
  • RESPONSE_STRING:您可以提供最長 1,024 個 ASCII 字元的字串,做為預期的回應。

--request--response 標記會修改健康狀態檢查探測作業的成功條件。如果您使用 --response 標記 (無論是單獨使用,或是與 --request 標記搭配使用),傳回的回應必須與預期的回應字串完全相同。

gRPC 健康狀態檢查的其他旗標

後端 gRPC 伺服器必須實作 gRPC 健康狀態服務,如 gRPC 健康狀態檢查通訊協定所述。Trusted Cloud 會呼叫後端健康狀態服務的 Check 方法,將 HealthCheckRequest 訊息傳送至後端。除非指定 gRPC 服務名稱,否則要求中的服務參數會設為空字串。

gRPC 健康狀態檢查可檢查 gRPC 服務的狀態。您可以加入字串,長度最多 1,024 個 ASCII 字元,這是指在後端 VM 或 NEG 上執行的特定 gRPC 服務名稱。如要執行這項操作,請使用下列 gRPC 健康狀態檢查的選用旗標:

--grpc-service-name=GRPC_SERVICE_NAME

舉例來說,後端伺服器可能會向後端的 gRPC 健康狀態服務註冊下列服務和狀態。

  • MyPackage.ServiceA,放送狀態為 SERVING
  • MyPackage.ServiceB,放送狀態為 NOT_SERVING
  • 服務名稱空白,且放送狀態為 NOT_SERVING

如果您針對 MyPackage.ServiceA 建立健康狀態檢查 (如下所示),健康狀態檢查探測器會傳回 HEALTHY,因為服務的狀態為 SERVING

gcloud beta compute health-checks create grpc MyGrpcHealthCheckServiceA \
    --grpc-service-name=MyPackage.ServiceA

如果您針對 MyPackage.ServiceB 建立健康狀態檢查,健康狀態檢查探測器會傳回 UNHEALTHY,因為服務的狀態為 NOT_SERVING

如果您針對未向 gRPC 健康狀態服務註冊的 MyPackage.ServiceC 建立健康狀態檢查,健康狀態檢查探測器會傳回 gRPC 狀態 NOT_FOUND,相當於 UNHEALTHY

如果針對空白服務名稱建立健康狀態檢查,健康狀態檢查探針會傳回 UNHEALTHY 狀態,因為空白服務名稱已註冊,狀態為 NOT_SERVING

舊版健康狀態檢查

本節說明如何建立、修改及列出舊版 HTTP 和 HTTPS 健康狀態檢查。您無法將舊版健康狀態檢查轉換為健康狀態檢查,反之亦然。

如要瞭解哪些類型的負載平衡器支援舊版健康狀態檢查,請參閱負載平衡器指南

建立舊版健康狀態檢查

主控台

雖然 Trusted Cloud 控制台的健康狀態檢查頁面會列出健康狀態檢查和舊版健康狀態檢查,並允許您編輯這兩者,但您無法透過 Trusted Cloud 控制台的健康狀態檢查頁面「建立」新的舊版健康狀態檢查。

您只能在 Trusted Cloud 主控台建立舊版健康狀態檢查,且僅限建立以目標集區為基礎的外部直通式網路負載平衡器時。如要單獨建立舊版健康狀態檢查,請使用本節的 gcloud 或 API 指示。

gcloud

如要建立舊版健康狀態檢查,請使用 compute http-health-checks create 指令:

gcloud compute LEGACY_CHECK_TYPE create NAME \
    --description=DESCRIPTION \
    --check-interval=CHECK_INTERVAL \
    --timeout=TIMEOUT \
    --healthy-threshold=HEALTHY_THRESHOLD \
    --unhealthy-threshold=UNHEALTHY_THRESHOLD \
    --host=HOST \
    --port=PORT \
    --request-path=REQUEST_PATH

更改下列內容:

  • LEGACY_CHECK_TYPE:如果是舊版 HTTP 健康狀態檢查,即為 http-health-checks;如果是舊版 HTTPS 健康狀態檢查,即為 https-health-checks。如果要為以目標集區為基礎的外部直通式網路負載平衡器建立舊版健康狀態檢查,就必須使用 http-health-checks
  • NAME 是舊版健康狀態檢查的名稱。 在單一專案中,每個舊版健康狀態檢查的名稱都必須是唯一的。
  • DESCRIPTION:(選用) 提供說明。
  • CHECK_INTERVAL:從某次探測作業開始到下一次探測作業開始之間的時間長度,單位為秒。如果省略這個標記,Trusted Cloud 會採用 5s (5 秒) 的值。
  • TIMEOUT: Trusted Cloud 會等待探測作業得到回應的時間長度,且 TIMEOUT 的值必須小於或等於 CHECK_INTERVAL 的值。單位為秒。如果省略這個標記, Trusted Cloud 會採用 5s (5 秒) 的值。
  • HEALTHY_THRESHOLDUNHEALTHY_THRESHOLD:指定探測作業必須要連續成功或失敗多少次,才會讓系統認定該 VM 執行個體的健康狀態良好或不良。只要您省略其中一個標記,Trusted Cloud 就會採用 2 的預設判定門檻值。
  • HOST:可讓您提供主機 HTTP 標頭。如果您省略這個標記,系統會採用負載平衡器轉送規則所使用的 IP 位址。
  • PORT:可讓您提供通訊埠編號。如果省略這個標記,Trusted Cloud 會採用 80
  • REQUEST_PATH:指定 Trusted Cloud在傳送健康狀態檢查要求時所使用的網址路徑。如果省略,健康狀態檢查要求會傳送至 /

API

Terraform

修改舊版健康狀態檢查

主控台

  1. 前往 Trusted Cloud 控制台的「健康狀態檢查」頁面。
    前往「Health checks」(健康狀態檢查) 頁面
  2. 按一下健康狀態檢查即可查看詳細資料。
  3. 按一下「編輯」圖示 進行變更,然後按一下「儲存」

gcloud

  • 如要修改舊版 HTTP 健康狀態檢查,請使用 compute http-health-checks update 指令,並將 NAME 替換成該檢查的名稱。使用 gcloud 修改舊版健康狀態檢查時,系統會為您省略的標記保留預先設定的設定。OTHER_OPTIONS建立舊版健康狀態檢查時的選項。

    gcloud compute http-health-checks update NAME \
      OTHER_OPTIONS
    
  • 如要修改舊版 HTTPS 健康狀態檢查,請使用 compute https-health-checks update 指令,並將 NAME 替換成該健康狀態檢查的名稱。使用 gcloud 修改舊版健康狀態檢查時,系統會為您省略的標記保留預先設定的設定。OTHER_OPTIONS建立舊版健康狀態檢查時的選項。

    gcloud compute https-health-checks update NAME \
      OTHER_OPTIONS
    

API

除了舊版健康狀態檢查的名稱和類型之外,您可以修改用於建立該檢查的任何標記patchAPI 呼叫會保留所有預先設定,但修補程式要求中明確設定的除外。

列出舊版健康狀態檢查

主控台

  1. 前往 Trusted Cloud 控制台的「健康狀態檢查」頁面。
    前往「Health checks」(健康狀態檢查) 頁面
  2. 按一下舊版健康狀態檢查,即可查看詳細資料。

gcloud

  1. 如要列出舊版 HTTP 健康狀態檢查,請使用 compute http-health-checks list 指令:

    gcloud compute http-health-checks list
    

    如要列出舊版 HTTPS 健康狀態檢查,請使用 compute https-health-checks list 指令:

    gcloud compute https-health-checks list
    
  2. 如要說明舊版 HTTP 健康狀態檢查,請使用 compute http-health-checks describe 指令,並將 NAME 替換成該檢查的名稱。

    gcloud compute http-health-checks describe NAME
    

    如要說明舊版 HTTPS 健康狀態檢查,請使用 compute https-health-checks describe 指令,並將 NAME 替換成該健康狀態檢查的名稱。

    gcloud compute https-health-checks describe NAME
    

API

  1. 如要列出舊版健康狀態檢查,請執行下列操作:

  2. 如要說明舊版健康狀態檢查,請按照下列步驟操作:

建立必要的防火牆規則

您必須為所有已負載平衡的 VM 建立適用的輸入防火牆規則,以便允許來自健康狀態檢查探測器 IP 範圍內的流量。以下範例會建立適用於特定目標標記所識別 VM 執行個體的防火牆規則。

這個範例允許來自 Trusted Cloud 健康狀態檢查系統的 TCP 流量輸入您的 VM 執行個體。(TCP 流量包括 SSL、HTTP、HTTPS 和 HTTP/2 流量)。如果您想要,可以在指定通訊埠時一併指定 TCP 通訊協定;不過,如果您指定了通訊埠,該防火牆規則可能會變成特定健康狀態檢查專用的規則。如果您將通訊協定和通訊埠指定為 tcp:80,這規則會允許 TCP 流量輸入通訊埠 80;因此, Trusted Cloud 可以使用 HTTP,透過通訊埠 80 來與您的 VM 聯絡,但卻無法使用 HTTPS 透過通訊埠 443 聯絡這些 VM。

主控台

  1. 在 Trusted Cloud 控制台中,前往「Firewall policies」(防火牆政策) 頁面。
    前往「防火牆政策」頁面
  2. 按一下「Create firewall rule」(建立防火牆規則)
  3. 在「Create a firewall rule」(建立防火牆規則) 頁面上,提供以下資訊:
    • 「Name」(名稱):提供規則的名稱。在本範例中,請使用 fw-allow-health-checks
    • 「Network」(網路):選擇虛擬私人雲端網路。
    • 「Priority」(優先順序):輸入代表優先順序的數字。數字越小,優先順序越高。請確保該防火牆規則的優先順序,高於其他可能會拒絕輸入流量的規則。
    • 「Direction of traffic」(流量方向):選擇 [ingress] (輸入)
    • 「Action on match」(相符時執行的動作):選擇 [allow] (允許)
    • 「Targets」(目標):選擇「Specified target tags」(指定的目標標記),然後在「Target tags」(目標標記) 欄位中輸入標記。在本範例中,請使用 allow-health-checks
    • 「Source filter」(來源篩選器):選擇 [IP ranges] (IP 範圍)
    • 來源 IP 範圍:根據負載平衡器類型、流量類型和健康狀態檢查類型,輸入來源 IP 範圍。請參閱探查 IP 範圍和防火牆規則
    • 「Allowed protocols and ports」(允許的通訊協定和通訊埠):使用 tcp 和健康狀態檢查中設定的通訊埠。TCP 是所有健康狀態檢查通訊協定的基本通訊協定。
    • 點選「建立」
  4. 在每個已負載平衡的執行個體上新增網路標記,好讓這個新的輸入防火牆規則能夠套用在這些執行個體上。這個範例所使用的網路標記為 allow-health-checks

gcloud

  1. 使用下列 gcloud 指令建立名為 fw-allow-health-checks 的防火牆規則,允許來自Trusted Cloud 健康檢查系統的傳入 TCP 連線,連線至虛擬私有雲網路中具有 allow-health-checks 標記的執行個體。視負載平衡器類型而定,系統會支援不同的探測 IP 範圍和防火牆規則,以將 IPv6 流量傳送至後端。

    NETWORK_NAME 替換為您的虛擬私有雲網路名稱,並將 PORT 替換為負載平衡器使用的連接埠。

    gcloud compute firewall-rules create fw-allow-health-checks \
        --network=NETWORK_NAME \
        --action=ALLOW \
        --direction=INGRESS \
        --source-ranges=SOURCE_IP_RANGE \
        --target-tags=allow-health-checks \
        --rules=tcp:PORT

    SOURCE_IP_RANGE 的值取決於負載平衡器類型、流量類型和健康狀態檢查類型。請參閱探查 IP 範圍和防火牆規則

  2. 在每個已負載平衡的執行個體上新增網路標記,好讓這個新的輸入防火牆規則能夠套用在這些執行個體上。這個範例所使用的網路標記為 allow-health-checks

詳情請參閱 gcloud 防火牆規則說明文件API 說明文件

相關說明文件:

將健康狀態檢查與負載平衡器建立關聯

如果尚未完成,請參閱「健康狀態檢查總覽:選取健康狀態檢查」。

如要建立健康狀態檢查與新的負載平衡器之間的關聯,請參閱個別負載平衡器的設定指南。本節說明如何建立健康狀態檢查與現有負載平衡器後端服務之間的關聯。

本節假設您已經:

主控台

如何建立健康狀態檢查與現有負載平衡器之間的關聯:

  1. 前往 Trusted Cloud 控制台的「Load balancing」(負載平衡) 頁面。
    前往「Load balancing」(負載平衡) 頁面
  2. 按一下負載平衡器即可查看詳細資料。
  3. 按一下「編輯」圖示 ,然後按一下「後端設定」
  4. 選擇「Health check」(健康狀態檢查) 選單中的某個健康狀態檢查。
  5. 按一下「Update」

gcloud

如要建立健康狀態檢查與現有後端服務之間的關聯,請按照下列步驟操作。

  1. 找出後端服務的名稱和範圍。直通式網路負載平衡器和 Proxy 網路負載平衡器,每個負載平衡器只有一個後端服務。應用程式負載平衡器有一個或多個後端服務,且這些服務都有自己的網址對應。

    • 如要列出內部直通式網路負載平衡器的後端服務,請執行下列指令。

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=INTERNAL"
      
    • 如要列出外部直通式網路負載平衡器的後端服務,請執行下列指令。

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=EXTERNAL"
      
    • 如要列出區域外部 Proxy 網路負載平衡器的後端服務,請執行下列指令。

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=EXTERNAL_MANAGED" \
          --filter="protocol=(SSL,TCP)"
      
    • 如要列出區域性內部 Proxy 網路負載平衡器的後端服務,請執行下列指令。

      gcloud compute backend-services list \
          --region=REGION \
          --filter="loadBalancingScheme=INTERNAL_MANAGED" \
          --filter="protocol=(SSL,TCP)"
      
    • 如要找出區域外部應用程式負載平衡器或區域內部應用程式負載平衡器的後端服務,請先找出網址對應,然後描述該對應。這些負載平衡器的網址對應和後端服務都屬於區域性服務。將 REGION_LIST 替換為以半形逗號分隔的Trusted Cloud 查詢區域清單。將 URL_MAP_NAME 替換為網址對應表名稱,並將 REGION 替換為網址對應表區域。負載平衡器使用的後端服務會列在回應中。

      gcloud compute url-maps list \
          --regions=REGION_LIST
      
      gcloud compute url-maps describe URL_MAP_NAME \
          --region=REGION
      
  2. 找出所需的健康狀態檢查。請參閱「列出健康狀態檢查」。

  3. 使用 compute backend-services update 指令,建立健康狀態檢查與後端服務之間的關聯。 每個後端服務都必須參照單一健康狀態檢查。請在下列指令中,將 BACKEND_SERVICE_NAME 替換成後端服務的名稱、將 HEALTH_CHECK_NAME 替換成健康狀態檢查的名稱,並視需要將 REGION 替換成後端服務、健康狀態檢查或兩者的Trusted Cloud 區域。

    • 如要變更內部直通式網路負載平衡器的健康狀態檢查:內部直通式網路負載平衡器的後端服務是區域性的。它可以參照全域或區域健康狀態檢查。以下範例顯示區域健康狀態檢查參照。如果搭配內部直通式網路負載平衡器使用全域健康狀態檢查,請使用 --global-health-checks,而非 --health-checks-region

      gcloud compute backend-services update BACKEND_SERVICE_NAME \
          --region=REGION \
          --health-checks=HEALTH_CHECK_NAME \
          --health-checks-region=REGION
      
    • 如要變更後端服務型外部直通式網路負載平衡器的健康狀態檢查:外部直通式網路負載平衡器的後端服務是區域性的。可參照地區健康狀態檢查。

      gcloud compute backend-services update BACKEND_SERVICE_NAME \
          --region=REGION \
          --health-checks=HEALTH_CHECK_NAME \
          --health-checks-region=REGION
      
    • 如要變更區域外部應用程式負載平衡器、區域外部 Proxy 網路負載平衡器、區域內部應用程式負載平衡器或區域內部 Proxy 網路負載平衡器的健康狀態檢查:後端服務和健康狀態檢查都是區域性的。如果負載平衡器可以參照多個後端服務,則可能會參照多個健康狀態檢查。

      gcloud compute backend-services update BACKEND_SERVICE_NAME \
          --region=REGION \
          --health-checks=HEALTH_CHECK_NAME \
          --health-checks-region=REGION
      

API

  1. 您可以利用 backendServices.list API 呼叫來列出後端服務。

  2. 查看健康狀態檢查

  3. 如要建立健康狀態檢查與後端服務之間的關聯,請使用下列其中一個 API 呼叫:

建立舊版健康狀態檢查與目標集區型外部直通式網路負載平衡器之間的關聯

如要建立舊版健康狀態檢查與新的外部直通式網路負載平衡器之間的關聯,請參閱「設定具有目標集區的外部直通式網路負載平衡器」。本節說明如何建立舊版健康狀態檢查與目標集區型外部直通式網路負載平衡器之間的關聯。

本節假設您已經:

主控台

如要建立健康狀態檢查與現有目標集區型外部直通式網路負載平衡器之間的關聯:

  1. 前往 Trusted Cloud 控制台的「Load balancing」(負載平衡) 頁面。
    前往「Load balancing」(負載平衡) 頁面
  2. 按一下負載平衡器即可查看詳細資料。
  3. 按一下「編輯」圖示 ,然後按一下「後端設定」
  4. 選擇「Health check」(健康狀態檢查) 選單中的某個舊版健康狀態檢查 (畫面只會顯示符合資格的舊版健康狀態檢查)。
  5. 按一下「Update」

gcloud

如要建立健康狀態檢查與現有目標集區型外部直通式網路負載平衡器之間的關聯:

  1. 找出目標集區。外部直通式網路負載平衡器至少會有一個目標集區,可能還會有個次要的備用集區。

    gcloud compute target-pools list
    
  2. 找出使用 HTTP 通訊協定的舊版健康狀態檢查。如有需要,請查看舊版健康狀態檢查

  3. 建立舊版健康狀態檢查與目標集區之間的關聯。請在下面的指令中,將 TARGET_POOL_NAME 替換成目標集區的名稱、將 REGION 替換成目標集區的地區,並將 LEGACY_CHECK_NAME 替換成舊版健康狀態檢查的名稱。舊版健康狀態檢查必須使用 HTTP 通訊協定。

    • 如何移除目標集區的舊版 HTTP 健康狀態檢查:

      gcloud compute target-pools remove-health-checks TARGET_POOL_NAME \
          --region=REGION \
          --http-health-check LEGACY_CHECK_NAME
      
    • 如何為目標集區新增舊版 HTTP 健康狀態檢查:

      gcloud compute target-pools add-health-checks TARGET_POOL_NAME \
          --region=REGION \
          --http-health-check LEGACY_CHECK_NAME
      

API

  1. 您可以利用 targetPools.list API 呼叫來列出目標集區。

  2. 查看舊版健康狀態檢查,並找出所需的舊版 HTTP 健康狀態檢查。

  3. 如要建立舊版 HTTP 健康狀態檢查與目標集區之間的關聯,請使用 API 呼叫 targetPools.addHealthCheck

檢查健康狀態檢查狀態

將健康狀態檢查與後端服務或目標集區建立關聯後,您就能取得負載平衡器後端的即時健康狀態檢查狀態。

主控台

  1. 前往「Load balancing」(負載平衡) 摘要頁面。
    前往「Load balancing」(負載平衡) 頁面
  2. 按一下負載平衡器的名稱。
  3. 在「Backend」(後端) 下方,檢查「Healthy」(健康狀態良好) 資料欄。系統會針對每個後端執行個體群組或網路端點群組回報健康狀態。

gcloud

  • 對於以目標集區為基礎的外部直通式網路負載平衡器以外的所有負載平衡器,請找出後端服務的名稱和範圍 (全域或區域)。如需負載平衡器和範圍的完整清單,請參閱後端服務

    使用 compute backend-services get-health 指令,將 NAME 替換為後端服務名稱,並視需要將 REGION 替換為後端服務區域。

    • 如要取得全域後端服務的即時健康狀態:

      gcloud compute backend-services get-health GLOBAL_BACKEND_SERVICE_NAME \
          --global
      
    • 如要取得區域後端服務的即時健康狀態,請執行下列步驟:

      gcloud compute backend-services get-health REGIONAL_BACKEND_SERVICE_NAME \
          --region=REGION
      
  • 如果是以目標集區為基礎的外部直通式網路負載平衡器,請找出負載平衡器目標集區的名稱和區域,然後使用 compute target-pools get-health 指令,將 NAME 替換成目標集區的名稱,並將 REGION 替換成目標集區的區域。

    gcloud compute target-pools get-health TARGET_POOL_NAME \
        --region=REGION
    

API

  • 對於以目標集區為基礎的外部直通式網路負載平衡器以外的所有負載平衡器,請找出後端服務的名稱和範圍 (全域或區域)。如需負載平衡器和範圍的完整清單,請參閱後端服務

  • 如果是以目標集區為基礎的外部直通式網路負載平衡器,請使用 targetPools.getHealth