LoadBalancer 服務參數

本頁面說明服務資訊清單的參數,這些參數可控制 LoadBalancer 服務的行為和設定。閱讀本頁面之前,請務必先熟悉 Google Kubernetes Engine (GKE) LoadBalancer 服務概念。

服務參數

GKE 支援 LoadBalancer 服務的下列參數。

參數 服務欄位和說明 內部 外部 版本支援
內部直通式網路負載平衡器
  • spec.loadBalancerClass: networking.gke.io/l4-regional-internal
  • networking.gke.io/load-balancer-type: "Internal"

指示 GKE 建立內部直通式網路負載平衡器。

如果符合下列任一條件,負載平衡器會使用 GCE_VM_IP NEG 後端:

  • 服務資訊清單會套用至已啟用 GKE 子集的叢集。
  • 服務資訊清單會套用至執行 GKE 1.36 以上版本的叢集。GKE 1.36 以上版本會自動啟用 GKE 子設定。

在所有其他情況下,負載平衡器會使用執行個體群組後端。詳情請參閱「 節點分組」。

  • spec.loadBalancerClass: networking.gke.io/l4-regional-internal: 需要 GKE 1.33.1-gke.1779000 以上版本和 已啟用 GKE 子設定。
  • networking.gke.io/load-balancer-type: "Internal":所有支援的版本。

如果叢集使用 GKE 1.33.1-gke.1779000 以上版本,且已啟用 GKE 子集,建議使用 spec.loadBalancerClass。這項屬性無法變更,且在服務資訊清單套用至叢集後,就無法再變更。

以後端服務為基礎的區域性外部直通式網路負載平衡器
  • GKE 1.37 以上版本的預設行為
  • spec.loadBalancerClass: networking.gke.io/l4-regional-external
  • cloud.google.com/l4-rbs: "enabled"

指示 GKE 建立區域性外部直通式網路負載平衡器。

如果符合下列任一條件,負載平衡器會使用 GCE_VM_IP NEG 後端:

  • 在執行 GKE 1.37 以上版本的叢集中建立服務。不需要註解或類別。
  • 服務資訊清單包含 spec.loadBalancerClass: networking.gke.io/l4-regional-external ,並套用至執行 GKE 1.33.1-gke.1779000 至 1.36 版本的叢集。
  • Service 資訊清單包含 cloud.google.com/l4-rbs: "enabled" 註解,並套用至執行 GKE 1.32.2-gke.1652000 至 1.36 版本的叢集。

在所有其他情況下,負載平衡器會使用執行個體群組後端。詳情請參閱「 節點分組」。

  • spec.loadBalancerClass: networking.gke.io/l4-regional-external: 需要 GKE 1.33.1-gke.1779000 以上版本。
  • cloud.google.com/l4-rbs: "enabled":所有支援的版本。

如果叢集使用 GKE 1.33.1-gke.1779000 至 1.36 版,建議使用 spec.loadBalancerClass。這個屬性無法變更,且在將服務資訊清單套用至叢集後,就無法再變更。在 GKE 1.37 以上版本中,這類負載平衡器不需要任何欄位。

加權負載平衡 networking.gke.io/weighted-load-balancing: "pods-per-node"

與處理流量的 Pod 數量較少的節點相比,處理流量的 Pod 數量較多的節點可接收較大比例的新連線。

GKE 1.31.0+
內部流量政策 spec.internalTrafficPolicy

如果設為 Local 值,GKE 只會將節點上用戶端 Pod 的封包,路由至相同節點上的服務 Pod。設為 Cluster 值時,GKE 會將節點上用戶端 Pod 的封包,路由至任何節點上的服務 Pod。詳情請參閱「 服務內部流量政策」。

執行 GKE Dataplane V2 的叢集不支援這項參數。

GKE 1.22 以上版本
外部流量政策 spec.externalTrafficPolicy

控制哪些節點 VM 會通過負載平衡器健康狀態檢查,以及封包如何轉送至叢集中已準備好提供服務的 Pod。此外,啟用 GKE 子集時,這項設定也會控管節點分組到 GCE_VM_IP NEG 的方式。

詳情請參閱「 LoadBalancer 服務概念」。

GKE 1.14 以上版本 (Windows 節點集區則為 1.23.4-gke.400 以上版本)。
可用區相依性 spec.trafficDistribution: PreferSameZone

為內部 LoadBalancer 服務啟用區域親和性。可用區相依性可控管內部直通式網路負載平衡器將傳入流量轉送至哪個可用區,適用於可與可用區相符的用戶端。如要使用可用區親和性,必須啟用 GKE 子設定 (GKE 1.36 以上版本預設會啟用)。

詳情請參閱「 可用區親和性和流量分配」。

GKE 1.33.3-gke.1392000 以上版本提供預先發布版。正式發布版適用於 GKE 1.36 以上版本。
健康狀態檢查通訊埠 spec.healthCheckNodePort

為 LoadBalancer 服務部署負載平衡器健康狀態檢查。只有在將 spec.externalTrafficPolicy 設為 Local 時,這項參數才會生效。

所有支援的版本。
防火牆規則和來源 IP 位址許可清單 spec.loadBalancerSourceRanges

在 GKE 和虛擬私有雲網路中設定選用的防火牆規則,只允許特定來源範圍。kube-proxy 也會設定 iptables 規則,以比對指定的來源範圍。

所有支援的版本。
靜態 IP 位址
  • spec.loadBalancerIP (僅限 IPv4)
  • networking.gke.io/load-balancer-ip-addresses

指定指派給負載平衡器轉送規則的靜態 IPv4 位址、靜態 IPv6 位址範圍,或兩者皆是。如需重要設定規定和實作詳細資料,請參閱「共用 IP 位址的注意事項」。

  • spec.loadBalancerIP:所有支援的版本。
  • networking.gke.io/load-balancer-ip-addresses: GKE 1.29 以上版本。如需其他叢集設定或註解需求,請參閱「靜態 IP 位址參數」。
網路服務級別 cloud.google.com/network-tier

指定 GKE 用於外部轉送規則和 IP 位址的網路服務級別。註解的有效值為 Standard 和 Premium (預設)。

GKE 1.19 以上版本。
自訂子網路
  • networking.gke.io/internal-load-balancer-subnet
  • networking.gke.io/load-balancer-subnet

(僅適用於 IPv6)
  • networking.gke.io/internal-load-balancer-subnet:所有支援的版本
  • networking.gke.io/load-balancer-subnet:GKE 1.29 以上版本。如需其他規定,請參閱「自訂子網路註解」。
全球存取 networking.gke.io/internal-load-balancer-allow-global-access: "true"

啟用後,虛擬私有雲網路或連線網路中任何區域的用戶端,都能存取轉送規則的 IP 位址。

GKE 1.16 以上版本提供預先發布版。GKE 1.17.9-gke.600 以上版本正式發布。
所有通訊埠

如果在 spec.ports[].port 中指定超過五個 (最多 100 個) 專屬通訊埠,GKE 會自動設定轉送規則,以使用所有通訊埠。

GKE 1.18.19-gke.1400 以上版本
ipFamilyPolicy

spec.ipFamilyPolicy

定義 GKE 如何將 IP 位址分配給 Service。 您可以將 spec.ipFamilyPolicy 定義為 SingleStack、PreferDualStack 或 RequireDualStack。

詳情請參閱「 IPv4/IPv6 雙重堆疊服務」。

1.29 以上版本的 GKE 叢集支援 LoadBalancer 服務的雙堆疊網路。
ipFamilies (選用)

spec.ipFamilies

定義 IP 位址系列,以分配單一堆疊或雙重堆疊服務。請使用下列任一值:

  • IPv4,僅適用於單一堆疊 IPv4 服務。
  • IPv6僅限 IPv6 服務。
  • IPv4,IPv6:適用於主要 IP 位址為 IPv4 的雙堆疊 Service。
  • IPv6,IPv4 適用於雙堆疊服務,其中服務的主要 IP 位址為 IPv6。
1.29 以上版本的 GKE 叢集支援 LoadBalancer 服務的雙堆疊網路。

健康狀態檢查通訊埠

如「負載平衡器健康狀態檢查」一文所述,GKE 建立區域外部直通式網路負載平衡器或內部直通式網路負載平衡器時,一律會部署負載平衡器健康狀態檢查。

能否設定 healthCheckNodePort 參數,取決於下列 externalTrafficPolicy 設定:

externalTrafficPolicy 健康狀態檢查通訊埠
Cluster

你無法使用 spec.healthCheckNodePort。

Local

您可以使用 spec.healthCheckNodePort 選取自訂通訊埠。如未指定,Kubernetes 控制層會從節點通訊埠範圍指派健康狀態檢查通訊埠。

防火牆規則和來源 IP 位址許可清單

除非您已將叢集設定為略過建立 LoadBalancer Service 的虛擬私有雲防火牆規則,否則 GKE 會為每個 Service 建立允許輸入的虛擬私有雲防火牆規則。

每條自動建立的防火牆規則都具備以下特徵:

  • 防火牆規則的方向為輸入,且動作為允許。隱含拒絕輸入防火牆規則 (位於 Google Cloud中) 表示 GKE 在建立輸入防火牆規則時,會使用允許清單模型。
  • GKE 會將防火牆規則的通訊協定和目的地埠設為 Service 的 spec.ports[] 清單中指定的項目。
  • GKE 會將 destination 參數明確設為 LoadBalancer 的虛擬 IP 位址 (負載平衡器的轉送規則),藉此為 LoadBalancer Service 設定防火牆規則。
  • GKE 會將防火牆規則的目標參數設為包含叢集的所有節點。
  • 如果 Service 包含 spec.loadBalancerSourceRanges[],GKE 會將防火牆規則的來源參數設為該清單中的 IP 位址。此外,GKE 會在節點作業系統中設定路由和規則,使用 kube-proxy 和 iptables (在不使用 GKE Dataplane V2 的叢集上) 或 cilium-agent 和 eBPF 規則 (在具有 GKE Dataplane V2 的叢集上),限制負載平衡流量的來源 IP 位址。如果 Service 不包含 loadBalancerSourceRanges[],GKE 會將防火牆規則的來源參數設為所有 IP 位址 (0.0.0.0/0)。

靜態 IP 位址

您可以建立靜態 IP 位址,並設定 GKE 將該靜態位址指派給負載平衡器的轉送規則。使用靜態 IP 位址可確保負載平衡器的 IP 位址維持不變,即使您變更 LoadBalancer 服務也一樣。如果沒有靜態 IP 位址,更新 LoadBalancer 服務時,GKE 可能會將不同的 IP 位址指派給負載平衡器轉送規則。轉送規則 IP 位址不等同於 Service 的 spec.clusterIP 位址。更新 LoadBalancer Service 時,Service 的 ClusterIP 位址不會變更。

靜態 IP 位址參數

如要指示 LoadBalancer 服務使用靜態 IP 位址,請使用 spec.loadBalancerIP 參數或 networking.gke.io/load-balancer-ip-addresses 註解。在 GKE 1.29 以上版本中,如果 Service 資訊清單同時包含參數和註解,則註解優先於 spec.loadBalancerIP。

參數或註解和值 需求和功能
spec.loadBalancerIP:
IPv4_ADDRESS

您可以為僅限 IPv4 的 Internal LoadBalancer 服務指定靜態內部 IPv4 位址。您可以為僅限 IPv4 的外部 LoadBalancer 服務指定靜態外部 IPv4 位址。這個參數適用於所有支援的 GKE 版本。

networking.gke.io/load-balancer-ip-addresses:
IP_ADDRESS_RESOURCE_NAME
  • 如果是單一堆疊 LoadBalancer 服務,請將註解值設為 IPv4 或 IPv6 位址資源「名稱」,而非 IP 位址本身。
  • 如果是雙堆疊 LoadBalancer 服務,請將註解的值設為靜態 IPv4 位址資源名稱,以及以半形逗號分隔的靜態 IPv6 位址範圍資源名稱。

您可以為僅支援 IPv4、僅支援 IPv6 和雙堆疊的內部與外部 LoadBalancer 服務,指定靜態 IPv4 位址、靜態 IPv6 位址範圍或兩者。這個註解需要 GKE 1.29 以上版本,並符合下列額外需求條件:

  • 如要搭配使用這項註解與內部 LoadBalancer 服務,叢集必須啟用 GKE 子集。根據預設,GKE 1.36 以上版本會啟用 GKE 子集。
  • 如要搭配外部 LoadBalancer 服務使用這項註解,您必須在建立外部 LoadBalancer 服務時,將服務資訊清單中的 spec.loadBalancerClass 欄位設為 networking.gke.io/l4-regional-external 值。

共用 IP 位址的注意事項

如果每個負載平衡器的轉送規則使用不重複的 IP 位址、通訊協定、通訊埠規格和網路服務級別規格組合,則兩個以上的 LoadBalancer 服務可以參照同一個靜態 IP 位址,如本節表格所示。此外:

  • 靜態 IPv6 位址實際上是 /96 IPv6 位址範圍,但 GKE 只會設定節點,接受 /96 範圍內的第一個 IPv6 位址 (/128) 上的封包。

  • 如要讓兩個以上的 Internal LoadBalancer 服務使用相同的內部 IPv4 位址或內部 IPv6 位址範圍,必須使用 SHARED_LOADBALANCER_VIP 目的建立靜態 IP 位址。

內部 LoadBalancer 服務 外部 LoadBalancer 服務
通訊埠規格

內部直通式網路負載平衡器的轉送規則最多支援五個個別通訊埠號碼,也可以設定為使用所有通訊埠。

如果內部 LoadBalancer 服務指定的 spec.ports[] 超過五個,GKE 會設定內部直通式網路負載平衡器的轉送規則,以使用所有通訊埠。

如果轉送規則的 IP 位址和通訊協定相同,通訊埠就不得重疊。也就是說,您無法建立多個共用相同 IP 位址、通訊協定和通訊埠的 Internal LoadBalancer 服務。例如:

  • 如果您使用 TCP 通訊埠 80 建立 Internal LoadBalancer 服務,就無法再使用 TCP 通訊埠 80、81 和 90 建立其他服務,因為通訊埠 80 會重疊。
  • 如果 Internal LoadBalancer 服務使用 TCP 通訊埠 80、8080 和 90,您就無法在所有通訊埠上使用 TCP 建立其他服務,因為這樣也會導致通訊埠重疊

詳情請參閱: 使用通用 IP 位址的內部直通式網路負載平衡器轉送規則。

如果叢集執行的 GKE 版本早於 1.37,且 LoadBalancer 服務資訊清單未將 spec.loadBalancerClass 欄位設為 networking.gke.io/l4-regional-external 值,或未包含 cloud.google.com/l4-rbs: "enabled" 註解,GKE 就會建立以目標集區為基礎的區域性外部直通式網路負載平衡器。如果是執行 GKE 1.37 以上版本的叢集,您必須明確設定 spec.loadBalancerClass: "networking.gke.io/l4-regional-external-legacy",才能建立以目標集區為基礎的區域外部直通式網路負載平衡器。

以目標集區為基礎的區域外部直通式網路負載平衡器轉送規則,必須使用連續的通訊埠範圍。連續埠範圍包含服務所需的所有埠,但範圍也可能包含服務未使用的額外埠。舉例來說,由目標集區驅動的區域外部直通式網路負載平衡器,會指定服務資訊清單中的通訊埠 80 和 443,並使用通訊埠範圍為 80 到 443 的負載平衡器轉送規則。這個通訊埠範圍可防止其他外部 LoadBalancer 服務使用通訊埠 80、443,以及 80 到 443 之間的任何數字。

在 1.37 以上版本中,GKE 預設會建立後端服務型區域性外部直通式網路負載平衡器。在舊版中,如果 LoadBalancer 服務資訊清單包含設為 networking.gke.io/l4-regional-external 值的 spec.loadBalancerClass 欄位,GKE 就會建立負載平衡器。以區域性後端服務為基礎的外部直通式網路負載平衡器,其轉送規則最多支援五個不連續的埠號,或是一個連續的埠範圍。

網路服務級別 無法設定,內部位址一律為進階級。

可設定靜態區域外部 IPv4 位址。靜態區域性外部 IPv6 位址範圍只能在進階級中建立。

靜態外部 IP 位址的網路服務級別規格必須符合下列任一條件:

  • LoadBalancer 服務資訊清單的 cloud.google.com/network-tier 註解中指定的層級 (如果資訊清單中存在該註解),或
  • 如果 LoadBalancer 服務資訊清單中沒有 cloud.google.com/network-tier 註解,則為專案的預設層級。

除非您另行設定,否則專案的預設層級為「進階」。

預留 IP 位址

GKE 不會預留使用 spec.loadBalancerIP 或 networking.gke.io/load-balancer-ip-addresses 註解設定的靜態 IP 位址。也就是說,當您刪除服務時,指派給服務的 IP 位址可能會釋出。

如要保留 IP 位址,您必須在專案中手動建立位址資源。靜態 IP 位址必須具備下列屬性:

  • 只能是區域性。
  • 與叢集位於相同區域。
  • 與 LoadBalancer 服務位於相同的網路服務級別。
  • 名稱不得使用 LoadBalancer 名稱、k8s- 等前置字串,或服務的 UUID。

如果您未自行保留位址,專案記錄可能會包含建立及快速移除位址資源的項目。這是正常服務佈建的一部分,應在預期之內。

LoadBalancer 子網路

您可以設定 Internal LoadBalancer Service,在與叢集位於相同區域和虛擬私有雲網路的自訂子網路中,使用暫時性或靜態 IPv4 位址、IPv6 位址範圍,或同時使用兩者。為內部 LoadBalancer 服務使用自訂子網路,可:

  • 將相同虛擬私有雲網路和區域中,兩個或多個 GKE 叢集的 Internal LoadBalancer 服務所建立的內部直通式網路負載平衡器分組。
  • 建立內部 LoadBalancer Service,其內部直通式網路負載平衡器的 IPv4 位址與叢集的節點 IPv4 位址不同。
  • 在雙重堆疊叢集中,建立內部 LoadBalancer 服務,其內部直通網路負載平衡器的 IPv6 位址範圍,與叢集的節點和 Pod IPv6 位址不同。如果叢集的子網路有外部 IPv6 位址範圍,就必須使用自訂 LoadBalancer 子網路,才能支援內部 LoadBalancer 服務。

您可以設定外部 LoadBalancer Service,在與叢集位於相同區域和虛擬私有雲網路的自訂子網路中,使用臨時或靜態 IPv6 位址範圍。使用自訂子網路建立外部 LoadBalancer 服務,其區域性外部直通式網路負載平衡器的 IPv6 位址範圍,與叢集的節點和 Pod IPv6 位址分開。如要在雙堆疊叢集中支援外部 LoadBalancer 服務,就必須使用自訂 LoadBalancer 子網路,因為叢集的子網路具有內部 IPv6 位址範圍。

自訂子網路註解

請使用下列其中一個註解,指示 LoadBalancer 服務在自訂子網路中使用臨時或靜態 IP 位址。如果 LoadBalancer Service 資訊清單同時包含這兩個註解,只要符合 networking.gke.io/load-balancer-subnet 註解的需求條件,系統就會優先採用該註解。

註解和值 規定和功能
networking.gke.io/internal-load-balancer-subnet:
SUBNET_RESOURCE_NAME

您只能使用註解,為僅限 IPv4 的 Internal LoadBalancer 服務指定自訂子網路。註解適用於所有支援的 GKE 版本。

networking.gke.io/load-balancer-subnet:
SUBNET_RESOURCE_NAME

您可以為僅限 IPv4、僅限 IPv6 或雙重堆疊的 Internal LoadBalancer 服務指定自訂子網路。您可以為僅支援 IPv6 或雙重堆疊的外部 LoadBalancer 服務指定自訂子網路。如要使用註解,必須使用 GKE 1.29 以上版本,並符合下列額外需求:

  • 如要使用這項註解為 Internal LoadBalancer 服務指定自訂子網路,叢集必須啟用 GKE 子網路。在 1.36 以上版本中,GKE 子設定預設為啟用。
  • 如要使用這個註解為外部 LoadBalancer 服務指定自訂子網路,您必須設定以後端服務為基礎的負載平衡器。在 GKE 1.37 以上版本中,這項設定是預設行為。在舊版中,建立 External LoadBalancer Service 時,您必須在 Service 資訊清單中加入設為 networking.gke.io/l4-regional-external 值的 spec.loadBalancerClass 欄位。

內部 LoadBalancer 服務的子網路和 IPv4 位址

下表說明僅限 IPv4 或雙重堆疊的 Internal LoadBalancer 服務,適用的子網路規格和 IPv4 位址組合。

靜態 IPv4 位址 臨時 IPv4 位址
自訂子網路
自訂子網路和靜態 IPv4 位址:靜態內部 IPv4 位址必須在自訂子網路的主要 IPv4 位址範圍內建立。 自訂子網路和臨時 IPv4 位址:GKE 會使用自訂子網路主要 IPv4 位址範圍中未分配的內部 IPv4 位址。
叢集子網路 叢集子網路和靜態 IPv4 位址:靜態內部 IPv4 位址必須在叢集子網路的主要 IPv4 位址範圍內建立。 叢集子網路和暫時性 IPv4 位址:GKE 會使用叢集子網路主要 IPv4 位址範圍中未分配的內部 IPv4 位址。

內部 LoadBalancer 服務的子網路和 IPv6 位址範圍

下表說明僅限 IPv6 或雙重堆疊內部 LoadBalancer 服務的有效子網路規格和 IPv6 位址範圍組合。即使內部直通式網路負載平衡器 IPv6 轉送規則使用內部 /96 IPv6 位址範圍,GKE 也只會將節點設定為接受目的地與轉送規則 /96 範圍的第一個 IPv6 位址 (/128) 相符的封包。

靜態 IPv6 位址範圍 暫時性 IPv6 位址範圍
自訂雙協定子網路
自訂子網路和靜態 IPv6 位址範圍:靜態內部 /96 IPv6 位址範圍必須在自訂子網路的內部 /64 IPv6 位址範圍內建立。 自訂子網路和暫時 IPv6 位址範圍: GKE 會使用自訂子網路內部 /64 IPv6 位址範圍中,未分配的內部 /96 IPv6 位址範圍。
叢集雙協定子網路
  • 必須有內部 IPv6 位址範圍 (存取權類型 INTERNAL)。
叢集子網路和靜態 IPv6 位址範圍:靜態內部 /96 IPv6 位址範圍必須在叢集子網路的內部 /64 IPv6 位址範圍中建立。 叢集子網路和暫時 IPv6 位址範圍: GKE 會使用叢集子網路內部 /64 IPv6 位址範圍中,未分配的內部 /96 IPv6 位址範圍。

外部 LoadBalancer 服務的子網路和 IPv4 位址

對於僅限 IPv4 和雙堆疊的 External LoadBalancer 服務,外部 IPv4 位址 (無論是靜態外部 IPv4 位址或臨時外部 IPv4 位址) 並非來自子網路。

外部 LoadBalancer 服務的子網路和 IPv6 位址範圍

下表說明僅支援 IPv6 或雙堆疊的 External LoadBalancer 服務,適用的子網路規格和 IPv6 位址範圍組合。雖然區域性外部直通式網路負載平衡器 IPv6 轉送規則使用外部 /96 IPv6 位址範圍,但 GKE 只會設定節點,接受目的地與轉送規則 /96 範圍的第一個 IPv6 位址 (/128) 相符的封包。

靜態 IPv6 位址範圍 暫時性 IPv6 位址範圍
自訂雙協定子網路
自訂子網路和靜態 IPv6 位址範圍:靜態外部 /96 IPv6 位址範圍必須在自訂子網路的外部 /64 IPv6 位址範圍內建立。靜態外部 IPv6 位址範圍只能在進階級建立。 自訂子網路和暫時 IPv6 位址範圍: GKE 會使用自訂子網路外部 /64 IPv6 位址範圍中,未分配的外部 /96 IPv6 位址範圍。
叢集雙協定子網路
  • 必須有外部 IPv6 位址範圍 (存取類型 EXTERNAL)。
叢集子網路和靜態 IPv6 位址範圍:靜態外部 /96 IPv6 位址範圍必須在叢集子網路的外部 /64 IPv6 位址範圍中建立。靜態外部 IPv6 位址範圍只能在進階級中建立。 叢集子網路和暫時 IPv6 位址範圍: GKE 會使用叢集子網路外部 /64 IPv6 位址範圍中,未分配的外部 /96 IPv6 位址範圍。

全域存取權

如果內部 LoadBalancer 服務的 networking.gke.io/internal-load-balancer-allow-global-access 註解為 false 或未指定,GKE 會建立內部直通式網路負載平衡器,其轉送規則會停用全域存取權。停用全域存取權後,如要存取負載平衡器,用戶端必須位於相同區域和虛擬私有雲網路,或是連線至叢集虛擬私有雲網路的網路。

如果內部 LoadBalancer 服務的 networking.gke.io/internal-load-balancer-allow-global-access 註解為 true,GKE 會在內部直通式網路負載平衡器的轉送規則上啟用全域存取權選項。用戶端只要位於虛擬私有雲網路的任何區域,或連至叢集虛擬私有雲網路的網路,即可存取負載平衡器。

如要進一步瞭解全域存取權如何套用至連線網路中的用戶端,請參閱:

所有通訊埠轉送規則

內部直通式網路負載平衡器的轉送規則支援五個不重複的通訊埠號碼,或所有通訊埠。

在 GKE 中,內部 LoadBalancer 服務的 spec.ports[].port 最多只能支援 100 個通訊埠。如果內部 LoadBalancer 服務定義最多五個通訊埠,轉送規則就會包含這些特定通訊埠。不過,如果 Service 指定超過五個通訊埠,轉送規則會自動設為比對所有通訊埠。設定轉送規則以使用所有通訊埠時,GKE 只會為 Service 中 spec.ports[].port 上設定的特定通訊埠建立輸入允許防火牆規則。

如要進一步瞭解內部直通式網路負載平衡器轉送規則和有效的通訊埠規格,請參閱「轉送規則和通訊埠規格」。

IPv4/IPv6 雙重堆疊 LoadBalancer Service

您可以建立內部或外部 LoadBalancer Service,可以是單一堆疊 (僅限 IPv4 或僅限 IPv6) 或雙重堆疊。單一堆疊 LoadBalancer 服務會建立單一轉送規則,其中包含 IPv4 位址或 IPv6 位址。雙重堆疊 LoadBalancer 服務會建立兩項轉送規則:一項使用 IPv4 位址,另一項使用 IPv6 位址。如要建立 IPv4/IPv6 雙重堆疊 LoadBalancer 服務,請在 IPv4/IPv6 雙重堆疊叢集上部署該服務,並根據使用的負載平衡器類型完成下列任一操作:

您可以為每個服務定義 ipFamilyPolicy 和 ipFamilies 規格。詳情請參閱「IPv4/IPv6 雙重堆疊」。

雙堆疊 LoadBalancer 服務的限制

  • 只有堆疊類型為 ipv4-ipv6 的叢集,才支援使用 IPv6 位址的 LoadBalancer 服務。詳情請參閱「為 VPC 原生叢集使用雙重堆疊 IP 位址」。
  • 使用單一堆疊位址建立的 LoadBalancer 服務無法升級為雙堆疊服務。

  • 使用雙重堆疊位址建立的 LoadBalancer 服務,可根據下列條件變更為單一堆疊:

    • ipFamilies 為 ["IPv4","IPv6"] 的 Service 可變更為 ipFamilies 為 IPv4 的 Service,但無法變更為 IPv6。
    • ipFamilies 為 ["IPv6","IPv4"] 的 Service 可變更為 ipFamilies 為 IPv6 的 Service,但無法變更為 IPv4。

後續步驟