設定一個 Network Load Balancer for VPC

透過在 VPC 叢集的每個區域中設定公共或私有 Kubernetes LoadBalancer 服務,將您的應用程式對外公開或僅限於私有網路存取。 接著,您可以選擇性地 透過 DNS 記錄和 TLS 憑證來註冊 VPC NLB。 VPC NLB 同時支援「TCP」和「UDP」這兩種通訊協定類型。

設定公用或私有 VPC NLB

透過在叢集的每個區域中設定 Kubernetes LoadBalancer 服務,讓您的應用程式能處理網路流量。 當您建立「Kubernetes」LoadBalancer 服務時,系統會自動在您的 VPC 中(位於叢集之外)為您建立一個公開或私有的「Network Load Balancer for VPC」(VPC NLB),用以將請求路由至您的應用程式。

開始之前

  1. 請確保您擁有部署 Kubernetes 的命名空間的 WriterManager IBM Cloud IAM 服務存取角色。LoadBalancer VPC NLB 服務。
  2. 存取您的 Red Hat OpenShift 集群
  3. 若要檢視 VPC NLB,請安裝 infrastructure-service 外掛程式。 用於執行指令的字首是 ibmcloud is
    ibmcloud plugin install infrastructure-service
    
  4. 針對私有 VPC NLB:連接至您的 VPC 私用網路,例如透過 VPC VPN 連線
  5. 針對私有 VPC NLB:啟用您的應用程式以接收私有網路請求。
    1. 建立一個專用於 VPC NLB 的 VPC 子網路。 此子網路必須與您的群集存在於相同的 VPC 和位置,但不能連接至您的群集或任何工作站節點。 如果輸入特定 IP 範圍,請勿使用下列保留範圍:172.16.0.0/16, 172.18.0.0/16, 172.19.0.0/16,和 172.20.0.0/16。 提供子網路後,請記下其 ID
    2. 如果透過 VPC NLB 連線到您應用程式的用戶端存在於專用 VPC 子網路的 VPC 和區域之外,您必須 建立自訂入口路由表。 如需詳細資訊,請參閱 已知限制 和關於路由表和路由 中的表格。 為您的自訂入口路由表選擇下列其中一個 流量來源:對於來自內部網路的流量,請選擇 Direct link。 對於來自其他 VPC 或傳統基礎結構的流量,請選擇轉接閘道。 對於來自同一 VPC 內其他區域的流量,請選擇 VPC 區域。 如需詳細資訊,請參閱 設定 VPC VPN 連線

設定「LoadBalancer」服務

  1. 將應用程式部署至叢集。 請務必在部署配置檔的 metadata 區段中新增標籤。 此自訂標籤會識別您應用程式執行所在的所有 Pod,以將它們包含在負載平衡中。

  2. 為您的 Kubernetes LoadBalancer 服務建立配置 YAML 檔案。 在 YAML 檔案中,指定 service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type 註解為 "public""private"。 範例檔案中的 annotations 部分只包含一些可用的註解。 如需所需和可選 VPC NLB 註解的完整清單,請參閱 註解和規格

    為了讓您的 VPC NLB 容易識別,請考慮以 <app_name>-vpc-nlb-<VPC_zone> 的格式命名服務。

    apiVersion: v1
    kind: Service
    metadata:
      name: <app_name>-vpc-nlb-<VPC_zone>
      annotations:
        service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name: "my-load-balancer"
        service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "nlb"
        service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "public"
        service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-node-selector: "<key>=<value>"
        service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-subnets: "<subnet1_ID,subnet2_ID>"
    spec:
      type: LoadBalancer
      selector:
        <selector_key>: <selector_value>
      ports:
       - name: http
         protocol: TCP
         port: 8080
         targetPort: 8080 # Optional. By default, the `targetPort` is set to match the `port` value unless specified otherwise.
       - name: https
         protocol: TCP
         port: 443
         targetPort: 443 # Optional. By default, the `targetPort` is set to match the `port` value unless specified otherwise.
      externalTrafficPolicy: Local # Specify Local or Cluster.
    
  3. 在叢集裡建立 Kubernetes LoadBalancer 服務。

    oc apply -f <filename>.yaml -n <namespace>
    
  4. 驗證 Kubernetes LoadBalancer 服務已在您的叢集裡順利建立。 建立服務時,LoadBalancer Ingress 欄位會填入由 VPC NLB 指定的外部 IP 位址。

在您的 VPC 中配置 VPC NLB 需要幾分鐘時間。 在 VPC NLB 完全配置完成之前,您的 Kubernetes LoadBalancer 服務的外部 IP 位址可能會是 pending

```sh {: pre}
oc describe svc myloadbalancer -n <namespace>
```
公用 `LoadBalancer` 服務的 CLI 輸出範例:
```sh {: screen}
NAME:                     myapp-vpc-nlb-us-east
Namespace:                default
Labels:                   <none>
Annotations:              service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: nlb
Selector:                 app=echo-server
Type:                     LoadBalancer
IP:                       172.21.204.12
LoadBalancer Ingress:     169.XXX.XXX.XXX
Port:                     tcp-80  80/TCP
TargetPort:               8080/TCP
NodePort:                 tcp-80  32022/TCP
Endpoints:                172.17.17.133:8080,172.17.22.68:8080,172.17.34.18:8080 + 3 more...
Session Affinity:         None
External Traffic Policy:  Local
HealthCheck NodePort:     30882
Events:
    Type     Reason                           Age                  From                Message
----     ------                           ----                 ----                -------
Warning  SyncLoadBalancerFailed           13m (x5 over 15m)    service-controller  Error syncing load balancer: failed to ensure load balancer: kube-bqcssbbd0bsui62odcdg-2d93b07decf641d2ad3f9c2985122ec1 for service default/myvpcnlb is busy: offline/create_pending
Normal   EnsuringLoadBalancer             9m27s (x7 over 15m)  service-controller  Ensuring load balancer
Normal   EnsuredLoadBalancer              9m20s                service-controller  Ensured load balancer
Normal   CloudVPCLoadBalancerNormalEvent  8m17s                ibm-cloud-provider  Event on cloud load balancer myvpcnlb for service default/myvpcnlb with UID 2d93b07d-ecf6-41d2-ad3f-9c2985122ec1: The VPC load balancer that routes requests to this Kubernetes LoadBalancer service is currently online/active.
```
  1. 請確認您的 VPC 中已成功建立 VPC NLB。 在輸出結果中,請確認 VPC NLB 的「運作狀態」為「online」,而「配置狀態」為「active」。

    ibmcloud is load-balancers
    

    在以下範例的 CLI 輸出中,已為 Kubernetes LoadBalancer 服務建立了一個名為 kube-bh077ne10vqpekt0domg-046e0f754d624dca8b287a033d55f96e 的 VPC NLB:

    ID                                     Name                                                         Created          Host Name                                  Is Public   Listeners                               Operating Status   Pools                                   Private IPs              Provision Status   Public IPs                    Subnets                                Resource Group
    06496f64-a689-4693-ba23-320959b7b677   kube-bh077ne10vqpekt0domg-046e0f754d624dca8b287a033d55f96e   8 minutes ago    1234abcd-us-south.lb.appdomain.cloud       yes         95482dcf-6b9b-4c6a-be54-04d3c46cf017    online             717f2122-5431-403c-b21d-630a12fc3a5a    10.241.0.7               active             169.63.99.184                 c6540331-1c1c-40f4-9c35-aa42a98fe0d9   00809211b934565df546a95f86160f62
    
  2. 存取您在步驟 4 中找到的 Kubernetes LoadBalancer 服務的 IP 位址,以及您的應用程式連接埠格式 <external_IP>:<app_port>

  3. 可選:重複這些步驟,在您要揭露應用程式的每個區域部署公用 VPC NLB。 然後,您可以在每個區域中以一個 DNS 子 網域註冊 VPC NLB 的外部 IP 位址。

請勿刪除在群集建立時或在區域中新增工作站節點時附加到群集的子網路。 如果您刪除群集使用過的 VPC 子網路,任何使用該子網路 IP 位址的 VPC NLB 可能會發生問題,而且您可能無法建立新的負載平衡器。

使用連接埠範圍設定公用 NLB

當需要從單一主機名託管服務時,可在公用 NLB 中使用連接埠範圍,該服務有多個後端應用程式,每個應用程式都在單獨的連接埠號上聆聽。 若要在 Kubernetes 群集中使用連接埠範圍,必須執行一些手動設定。 首先,必須設定 ibm-load-balancer-cloud-provider-vpc-port-range 選項。 它可以包含一個或多個範圍,每個範圍以逗號分隔。 spec.ports.port 值也必須設定為連接埠範圍內的最小值。

在以下範例中,使用的連接埠範圍是 30000-30010

必須為 NLB 服務轉發請求的每個部署手動建立 Nodeport 服務。 每個 Nodeport 服務的連接埠號必須在 NLB 服務中設定的連接埠範圍內。

在下面的示例圖中,為部署 1 建立了連接埠 30000 的 Nodeport 服務,而為部署 2 建立了連接埠 30001 的 Nodeport 服務。

使用者向包含連接埠範圍的 NLB 連接埠 30001 提出請求。 此請求被導向至 VPC NLB 服務,而 VPC NLB 服務會將請求導向至群集中同樣在 30001 連接埠上聆聽的 Nodeport 服務,在此案例中,該服務是用於部署 2。 然後,Nodeport 服務會將要求導向部署 2 所選 pod 的目標連接埠。

使用埠區間的 VPC NLB。
具備埠區間的 VPC NLB

使用以下範例建立使用連接埠範圍的 NLB。 選擇器和後端 Pod 必須與連接埠範圍負載平衡服務相關聯,以便健康檢查返回成功,並將資料傳送到連接埠範圍中的連接埠。 若要使用連接埠範圍,您必須建立額外的 NodePort 服務,這些服務的連接埠值必須在負載平衡器服務定義的範圍內。

  1. 將以下 LoadBalancer 配置範例儲存為檔案,名稱為 loadbalancer.yaml

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: nlb
        service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-port-range: 30000-30010
      name: nlb-port-range
    spec:
      externalTrafficPolicy: Cluster
      ports:
      - port: 30000 # Must match min from the port range
        protocol: TCP
        nodePort: 30011 # Can be port in range or not
        targetPort: 8080
      selector:
        app: echo-server  # Must be valid for health checks to work
      type: LoadBalancer
    
  2. 建立服務。

    oc apply -f loadbalancer.yaml
    
  3. 建立 NodePort 服務,其連接埠值必須在您之前建立的 LoadBalancer 中指定的連接埠範圍內。

    apiVersion: v1
    kind: Service
    metadata:
      name: echo-server-node-port
    spec:
      ports:
      - port: 80
        protocol: TCP # The protocol of the port range
        nodePort: 30003 # Node port in the port range
        targetPort: 8080
      selector:
        app: echo-server
      type: NodePort
    
  4. 建立「NodePort」服務。

    oc apply -f nodeport.yaml
    
  5. 要存取 NLB 所提供範圍內的連接埠。

    curl https://<public ip assigned to NLB>:30003
    
    • 30003 = 是回應請求範圍中的節點連接埠
    • 除非建立額外的節點連接埠服務,否則範圍內的其他連接埠不會回應。

註冊 DNS 記錄與 TLS 憑證

VPC NLB 提供靜態外部 IP 位址,您可以透過它存取您的應用程式。 若要為您的應用程式網域註冊 SSL 憑證以支援 HTTPS,您可以建立由 IBM 提供的子網域,或使用您自己的自訂網域。

例如,假設您有一個多區群集,並在群集各區的工作人員節點上執行應用程式的複本。 您為每個區域建立一個 VPC NLB,以揭露應用程式複本。 然後,您可以用一個 DNS 項目註冊每個 VPC NLB 所提供的外部 IP 位址。

為 VPC NLB 建立 DNS 子網域後,您將無法使用 nlb-dns health-monitor 指令來建立自訂健康檢查。 取而代之的是使用預設 VPC 健康檢查。 如需相關資訊,請參閱 VPC 文件

  • 為您的應用程式在每個區域建立一個 VPC NLB。 確保您在設定 VPC NLB 的 Kubernetes LoadBalancer 服務中,定義 HTTPS 連接埠。
  • 若要使用 SSL 憑證透過 HTTPS 存取您的應用程式,您的應用程式必須能夠終止 TLS 連線。

按照步驟使用 DNS 子網域註冊 VPC NLB IP 位址。

  1. 擷取負載平衡器的外部 IP 位址。

    oc get svc -o wide
    

    輸出範例

    NAME                      TYPE           CLUSTER-IP       EXTERNAL-IP       PORT(S)            AGE      SELECTOR
    ...
    myapp-vpc-nlb-jp-tok-3    LoadBalancer   172.21.xxx.xxx   169.xx.xxx.xx     8080:30532/TCP     1d       run=webserver
    
  2. 為 IP 位址建立自訂或 IBM 提供的 DNS 子網域。

    • 自訂網域

      1. 透過與您的網域名稱服務 (DNS) 提供商合作或 IBM Cloud DNS 註冊自訂網域名稱。
      2. 透過指定負載平衡器 IP 位址為 A 記錄,為您的自訂網域定義別名。
    • IBM- 提供的子網域:請使用 nlb-dns 指令,為該 IP 位址產生一個附帶 SSL 憑證的子網域。IBM Cloud 會為您處理該子網域的通配符 SSL 憑證的產生與維護工作。

      1. 建立一個 DNS 子網域及 SSL 憑證。
        ibmcloud oc nlb-dns create vpc-gen2 --type public --cluster CLUSTER_NAME_OR_ID --ip VPC_NLB1_IP --ip VPC_NLB2_IP --ip VPC_NLB3_IP
        
      2. 驗證已建立子網域。 如需相關資訊,請參閱瞭解子網域格式
        ibmcloud oc nlb-dns ls --cluster CLUSTER_NAME_OR_ID
        
        輸出範例
        Subdomain                                                                               IP(s)                                        Health Monitor   SSL Cert Status           SSL Cert Secret Name
        mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud     169.46.xx.x,169.48.xxx.xx,169.48.xxx.xx      None             created                   <certificate>
        
  3. 開啟網頁瀏覽器,並輸入 URL,以透過子網域存取您的應用程式。

若要使用 SSL 憑證透過 HTTPS 存取您的應用程式,請確保您已在 Kubernetes LoadBalancer 服務中 定義了 HTTPS 埠。 您可以執行 curl -v --insecure https://<domain>,以確認請求是否已正確透過 HTTPS 埠進行路由。 發生連線錯誤,表示該服務上沒有開啟任何 HTTPS 埠。 此外,請確保您的應用程式能夠終止 TLS 的連線。 您可以執行 curl -v https://<domain> 來確認您的應用程式是否能正確終止 TLS。 出現憑證錯誤,表示您的應用程式未能正確終止 TLS 的連線。

註解和規格

檢閱所需和可選的 VPC NLB 註解和規格。

必要的註釋和規格

service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "nlb"
註解以建立 VPC NLB。 如果不包含此註解並指定 nlb,預設會建立 VPC ALB。
service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "private"
(私有 NLB 必須)註解指定接受私有請求的服務。 如果未包含此註解,則會建立公用 VPC NLB。
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-subnets
(私有 NLB 必須,公共 NLB 可選)註解指定 VPC NLB 部署到的專用子網路。 該值可以指定為 VPC 子網路 ID、VPC 子網路名稱或 VPC 子網路 CIDR。 您必須只指定一個子網路。 子網路必須與您的群集存在於相同的 VPC 中,並且位於您的群集有工作人員節點的區域中,但不能將任何工作人員節點連接到此子網路。 與此子網路存在於同一區域的 Worker 節點被設定為接收來自 VPC NLB 的流量。 若要查看所有資源群組中的子網路,請執行 ibmcloud oc subnets --provider vpc-gen2 --vpc-id VPC_ID --zone ZONE
externalTrafficPolicy
指定 LocalCluster
設定為 Local,以保留客戶端對您應用程式請求的來源 IP 位址。 此設定可防止將傳入的流量轉送至不同的節點。 此選項也可設定 HTTP 健康檢查。
如果設定 Cluster,則 DSR 只會從 VPC NLB 最初將傳入請求轉發給的工作節點執行。 傳入的請求到達後,請求會被轉發到包含應用程式 Pod 的 Worker 節點,而 Worker 節點可能位於不同的區域。 應用程式 Pod 的回應會傳送至原始 Worker 節點,而該 Worker 節點會使用 DSR 直接將回應傳送回用戶端,繞過 VPC NLB。 此選項同時會設定 TCP 的運作狀態檢查。 對於 UDP 負載平衡器,若您選擇「Cluster」選項,則必須使用 service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-udp。 如需更多資訊,請參閱《 為 UDP 負載平衡器設定 TCP 狀態檢查 》。

可選註釋和規格

service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name
包含一個唯一的名稱,使您的 VPC 負載平衡器持久存在。 持久性 VPC 負載平衡器不會在其所屬群集被刪除時被刪除。 如需詳細資訊,請參閱 持久性 VPC 負載平衡器。 此註解只能在建立負載平衡器時設定。 它不能用於更新作業。
service.kubernetes.io/ibm-load-balancer-cloud-provider-zone
註解以指定群集所連接的 VPC 區域。 VPC NLB 部署到您的 Worker 節點所連接的該區域中的相同子網路。 如果您之後將此注解變更為不同的區域,VPC NLB 將不會移動到新的區域。 如果未指定此註解或 service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-subnets annotation,VPC NLB 會部署到最理想的區域 (例如工作者節點處於 Ready 狀態的區域)。 如果在工作節點上設定 dedicated: edge 標籤,並指定此註解,則只有指定區域中的邊緣節點才會被設定為接收流量。 其他區域中的邊緣節點和指定區域中的非邊緣節點不會從負載平衡器接收流量。 若要查看區域,請執行 ibmcloud ks zone ls --provider vpc-gen2
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-node-selector
註解指定 Worker 節點標籤選擇器。 您可以透過指定標籤選擇器金鑰,設定群集中特定的工作站節點接收流量。 您只能在註解中包含一個標籤選擇器,且選擇器必須以 "key=value" 格式指定。 如果未指定此註解,群集中的所有工作者節點都會設定為接收來自 VPC NLB 的流量。 此註解優先於 service.kubernetes.io/ibm-load-balancer-cloud-provider-zone 註解,且會忽略 Worker 節點上的任何 dedicated: edge 標籤。 若要限制特定區域的流量,您可以使用此註解指定該區域的工作站節點。 請注意,在群集 Worker 節點上設定新標籤不會自動設定 Worker 節點接收流量;您必須重新建立或更新 VPC NLB,才能讓新標籤的 Worker 節點接收流量。
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-udp
在 UDP 負載平衡器中,用於執行 TCP 狀態檢查的 TCP 節點埠號。 此設定適用於將「externalTrafficPolicy」設定為「Cluster」的 UDP 負載平衡器。 有關設定埠號前的其他注意事項,請參閱《 設定 TCP 狀態檢查以適用於 UDP 負載平衡器 》。
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-protocol
此註解在與 Kubernetes 負載平衡器服務相關的 VPC 負載平衡器資源上設定健康檢查通訊協定。 可用選項為 http, https,或 tcp。 通常,VPC LB 健康檢查通訊協定由 Kubernetes 負載平衡器服務規格中的 externalTrafficPolicy 設定值決定。 但是,此註解會覆寫該邏輯。 此註解會改變 Kubernetes,尤其是 kube-proxy 在 externalTrafficPolicy 的各種設定下的行為。
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-port
用於健康檢查的 TCP 連接埠。 只有同時指定 ibm-load-balancer-cloud-provider-vpc-health-check-protocol 時,此註解才適用。 若指定的 TCP 埠號超出 Kubernetes 節點埠號範圍(30,000-32,767),則必須修改套用至叢集工作節點的 VPC 安全群組,以允許該埠號的傳入流量。 若將此註解套用至與 VPC ALB 關聯的 Kubernetes 負載平衡服務,則必須修改指派給該 VPC ALB 的安全群組之出站規則,以允許出站流量傳送至指定的 TCP 埠。 如需詳細資訊,請參閱 瞭解安全預設群集 VPC 網路,以及 建立和管理 VPC 安全群組
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-path
HTTP 和 HTTPs 健康檢查的健康檢查 URL 路徑。 此註解僅在 ibm-load-balancer-cloud-provider-vpc-health-check-protocol 設定為 httphttps 時適用。 URL 路徑必須是 origin-form 請求目標的格式。 如果未指定此註釋,且 ibm-load-balancer-cloud-provider-vpc-health-check-protocol 註釋設為 httphttps,則應用預設值 /
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-delay
選用。 嘗試健康檢查之間的等待秒數。 預設情況下,此值設定為 5,最小值為 2,最大值為 60。 此值必須大於 ibm-load-balancer-cloud-provider-vpc-health-check-timeout 值,預設值為 2
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-timeout
選用。 等待健康檢查回應的秒數。 預設情況下,此值設定為 2,最小值為 1,最大值為 59。 此值必須小於 ibm-load-balancer-cloud-provider-vpc-health-check-delay,預設值為 5
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-retries
VPC 負載平衡器的最大健康檢查重試次數。 預設情況下,此值設定為 2,最小值為 1,最大值為 10
service.kubernetes.io/ibm-load-balancer-cloud-provider-dns-name: "example-ingress-domain.<region>.containers.appdomain.cloud"
版本為 4.16 或更新版本。
將負載平衡器的 IP 位址註冊到指定的 Ingress 網域。 如果指定的網域不存在,則會建立一個使用內部 IBM 管理提供者 (IBM NS1) 的網域。若要建立新網域,名稱必須在所有現有網域(不只是群集中的網域)中唯一。 刪除負載平衡器服務會從網域中移除 IP 位址。 但是,移除註釋並不能從網域中移除 IP 位址。
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-member-quota
選用。 負載平衡器路由至每個區域的工作節點數量。 預設值為 8。 對於工作節點分佈於三個區域的叢集而言,這將導致負載平衡器總共將流量路由至 24 個工作節點。 負載平衡器路由到的所有區域的工作節點總數不能超過 50 個。 如果群集在所有區域中的工作站節點少於 50 個,請指定 0 以路由至區域中的所有工作站節點。
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-security-group
1.30 及後續版本。
選用。 要新增至 VPC 負載平衡器的客戶管理安全群組。 如果您不想使用 IBM 管理的安全群組,請指定您擁有和管理的安全群組。 此選項移除 IBM-managed 安全群組,並以您指定的安全群組取代。 從現有的負載平衡器移除註解,會以 IBM-managed 安全群組取代您新增的安全群組。 您可以隨時新增或移除此註解。 您有責任管理您的安全群組並保持更新。
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-allow-outbound-traffic
適用於執行 Secure by Default 的群集。 註解,為與您指定的外部連接埠相關聯的 ALB 的每個 IP 位址建立安全群組。 這些規則在群集安全群組中建立。 以逗號分隔的清單指定有效的外部連接埠,例如 80,443。 在這個範例中,如果與每個外部連接埠值相關聯的每個公用 ALB 有兩個 IP 位址,每個 IP 位址會建立一個出埠規則,總共建立 4 個新規則。 您可以隨時新增或移除此註解。
selector
您在應用程式部署 YAML 檔案的 spec.template.metadata.labels 區段中使用的標籤鍵(<selector_key> )與值(<selector_value> )。 此自訂標籤會識別您應用程式執行所在的所有 Pod,以將它們包含在負載平衡中。
port
服務所接聽的埠。
targetPort
可選:服務將流量導向的埠號。 在 Pod 中執行的應用程式必須監聽此目標埠上的傳入 TCP 流量。 目標連接埠通常會在應用程式 Pod 中執行的映像中靜態定義。 Pod 中設定的目標連接埠與服務的節點連接埠不同,也可能與 VPC LB 上設定的外部連接埠不同。