設定一個 Application Load Balancer for VPC

藉由在叢集裡設定 Kubernetes LoadBalancer 服務,向公用或專用網路公開應用程式。 當您公開應用程式時,系統會自動在您的 VPC 中(位於叢集之外)為您建立一個 Application Load Balancer for VPC (VPC ALB),用以將請求路由至您的應用程式。 接著,您可以選擇性地 透過 DNS 記錄和 TLS 憑證來註冊 VPC ALB。 VPC ALB 僅支援 TCP 協定。

請勿將「Application Load Balancer for VPC」與「Red Hat OpenShift on IBM Cloud」這兩款 Ingress 應用程式負載平衡器混淆。 VPC 應用程式負載平衡器 (VPC ALB) 運行於您的叢集之外,位於您的 VPC 內,並由您所建立的 Kubernetes LoadBalancer 服務進行配置。 入口應用程式負載平衡器(ALB) 是在叢集中的工作節點上執行的入口控制器。

設定公有或私人 VPC ALB

開始之前

若要讓您的應用程式能夠接收公開或私有請求:

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

  2. 為您的Kubernetes LoadBalancer 服務建立設定 YAML 檔案。 在 YAML 檔案中,將 service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type 註解指定為 "public""private"。 範例文件中的 annotations 部分僅包含一些可用的註解。 有關必需和可選 VPC ALB 註釋的完整列表,請參閱 註釋和規格

    為了使您的 VPC ALB 易於識別,請考慮以 <app_name>-vpc-alb-<VPC_zone> 格式命名服務。

    apiVersion: v1
    kind: Service
    metadata:
      name: myloadbalancer
      annotations:
        service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name: "`<app_name>-vpc-alb-<VPC_zone>`"
        service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "proxy-protocol"
        service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "<public_or_private>"
        service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-node-selector: "<key>=<value>"
    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 myloadbalancer.yaml -n <namespace>
    
  4. 驗證 Kubernetes LoadBalancer 服務已在您的叢集裡順利建立。 建立服務時,LoadBalancer Ingress 欄位會填入由 VPC ALB 指派的主機名稱。

在您的 VPC 中配置 VPC ALB 需要幾分鐘時間。 在 VPC ALB 完全配置完成之前,您無法透過 Kubernetes LoadBalancer 服務的主機名稱存取您的應用程式。

```sh {: pre}
oc describe svc myloadbalancer -n <namespace>
```
公用 `LoadBalancer` 服務的 CLI 輸出範例:
```sh {: screen}
NAME:                     myvpcalb
Namespace:                default
Labels:                   <none>
Annotations:              
Selector:                 app=echo-server
Type:                     LoadBalancer
IP:                       172.21.XX.XX
LoadBalancer Ingress:     1234abcd-us-south.lb.appdomain.cloud
Port:                     tcp-80  80/TCP
TargetPort:               8080/TCP
NodePort:                 tcp-80  30610/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:     31438
Events:
    Type    Reason                           Age   From                Message
----    ------                           ----  ----                -------
Normal  EnsuringLoadBalancer             16m   service-controller  Ensuring load balancer
Normal  EnsuredLoadBalancer              15m   service-controller  Ensured load balancer
Normal  CloudVPCLoadBalancerNormalEvent  13m   ibm-cloud-provider  Event on cloud load balancer myvpcalb for service default/myvpcalb with UID 08cbacf0-2c93-4186-84b6-c4ab88a2faf9: The VPC load balancer that routes requests to this Kubernetes LoadBalancer service is currently online/active.
```
  1. 請確認您的 VPC 中已成功建立 VPC ALB。 在輸出結果中,請確認 VPC ALB 的「運作狀態」為「online」,且「配置狀態」為「active」。

    ibmcloud is load-balancers
    

    在以下範例的 CLI 輸出中,已為 Kubernetes LoadBalancer 服務建立了一個名為 kube-bsaucubd07dhl66e4tgg-1f4f408ce6d2485499bcbdec0fa2d306 的 VPC ALB:

    ID                                          Name                                                         Family        Subnets               Is public   Provision status   Operating status   Resource group
    r006-d044af9b-92bf-4047-8f77-a7b86efcb923   kube-bsaucubd07dhl66e4tgg-1f4f408ce6d2485499bcbdec0fa2d306   Application   mysubnet-us-south-3   true        active             online             default
    
  2. 如果您已建立一個公開的 LoadBalancer 服務,請使用 curl 指令存取在步驟 4 中找到的 VPC ALB 所指派的 Kubernetes LoadBalancer 服務的主機名稱。 範例:

    curl 06496f64-us-south.lb.appdomain.cloud:8080
    

    輸出範例

    Hello world from hello-world-deployment-5fd7787c79-sl9hn! Your app is up and running in a cluster!
    

    如果您建立專用 LoadBalancer 服務,則必須連接至專用 VPC 網路才能對主機名稱執行 curl 指令。

不要刪除在叢集建立期間或在區域中新增工作執行緒節點時附加到叢集的子網路。 如果您刪除叢集使用的 VPC 子網,則使用該子網路中的 IP 位址的任何負載平衡器都可能會遇到問題,並且您可能無法建立新的負載平衡器。

未與 Kubernetes 或 OpenShift 叢集綁定的 VPC ALB 和 NLB,可直接透過「ibmcloud is」指令,或控制台中的「VPC 基礎架構」區段進行更新。 例如,變更前端偵聽器的連接埠或運作狀況檢查逾時值。 但對於與 Kubernetes 或 OpenShift 叢集綁定的 VPC 負載平衡器,任何相關更新都必須透過 Ingress 配置中的註解來執行。 IBM Cloud 提供者會定期與任何相關聯的 VPC ALB 和 NLB 重新同步,以確保正在運行的負載平衡器符合 Ingress 的預期設定。 因此,若您直接透過 VPC 對此類負載平衡器進行任何變更,而非使用 Ingress 註解,這些變更將會被還原。

註冊 DNS 記錄與 TLS 憑證

Application Load Balancer for VPC (VPC ALB)會提供一個預設的 HTTP 主機名稱,格式為 1234abcd-<region>.lb.appdomain.cloud,您可以透過此主機名稱存取您的應用程式。 不過,若您希望為應用程式網域取得 TLS 憑證以支援 HTTPS,您可以建立由 IBM 提供的子網域,或為公共及私有 VPC ALB 導入您自己的自訂網域。

為 VPC ALB 主機名稱建立 DNS 子網域後,您將無法使用 nlb-dns health-monitor 指令來建立自訂健康檢查。 相反地,系統會使用針對預設 VPC ALB 主機名稱所提供的預設 VPC 負載平衡器健康檢查。 如需相關資訊,請參閱 VPC 文件

開始之前

  • 設定 VPC ALB。 確保在設定 VPC ALB 的 Kubernetes LoadBalancer 服務中,定義 HTTPS 連接埠。
  • 若要使用 TLS 憑證透過 HTTPS 存取您的應用程式,您的應用程式必須能夠終止 TLS 連線。

若要將 VPC ALB 主機名稱註冊到 DNS 子網域:

  1. 透過執行 get svc 指令檢索 VPC ALB 的主機名稱。 在輸出的 EXTERNAL-IP 直欄中尋找該主機名稱。 例如,1234abcd-us-south.lb.appdomain.cloud

    oc get svc -o wide
    

    輸出範例

    NAME            TYPE           CLUSTER-IP       EXTERNAL-IP                            PORT(S)     AGE       SELECTOR
    ...
    webserver-lb    LoadBalancer   172.21.xxx.xxx   1234abcd-us-south.lb.appdomain.cloud   8080:30532/TCP     1d       run=webserver
    
  2. 為負載平衡器的主機名建立一個自訂的 DNS 子網域,或使用 IBM 提供的 DNS 子網域。

    • 自訂網域:提供您自己的自訂網域,並透過指定負載平衡器外部 IP 為其指定別名,格式為 1234abcd-us-south.lb.appdomain.cloud 作為規格名稱記錄 (CNAME)。

      1. 透過與您的網域服務 (DNS) 提供者或 IBM Cloud DNS 合作註冊自訂網域。
      2. 透過將負載平衡器的外部 IP 位址指定為規範名稱記錄 (CNAME),為您的自訂網域設定別名。 在下列範例中,可以透過 www.your-custom-domain.com 存取外部 IP 為 1234abcd-us-south.lb.appdomain.cloud 的負載平衡器。
      主機/服務
      您想要存取應用程式的前綴,例如 www
      資源類型
      選擇 CNAME
      TTL
      選擇居住時間。
      值/目標
      您先前檢索到的LoadBalancer外部 IP。 例如 1234abcd-us-south.lb.appdomain.cloud.。 請注意,使用IBM Cloud DNS 時,請確保輸入尾隨句點。
    • IBM- 提供的子網域:使用 nlb-dns 指令,為 VPC ALB 主機名生成一個附帶 TLS 憑證的子網域。IBM Cloud 會為您自動生成並維護該子網域的萬用字元 TLS 憑證。

      1. 建立一個 DNS 子網域及 TLS 憑證。
        ibmcloud oc nlb-dns create vpc-gen2 --cluster CLUSTER_NAME_OR_ID --lb-host VPC_LB_HOSTNAME --type (public|private)
        
      2. 驗證已建立子網域。 如需相關資訊,請參閱瞭解子網域格式
        ibmcloud oc nlb-dns ls --cluster CLUSTER_NAME_OR_ID
        
        輸出範例
        Subdomain                                                                               Load Balancer Hostname                        Health Monitor   SSL Cert Status           SSL Cert Secret Name
        mycluster-a1b2cdef345678g9hi012j3kl4567890-0001.us-south.containers.appdomain.cloud     ["1234abcd-us-south.lb.appdomain.cloud"]      None             created                   <certificate>
        
  3. 如果您為公開 VPC ALB 建立了子網域,請開啟網頁瀏覽器並輸入 URL,即可透過該子網域存取您的應用程式,例如範例中的 www.your-custom-domain.com。 如果您為私有 VPC ALB 建立了子網域,則必須 連線至您的私有 VPC 網路, 才能測試對該子網域的存取。

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

為私人 VPC ALB 註冊私人 DNS 記錄

在版本4.15或更高版本中,您可以使用下列可選註解將服務自訂 DNS instance 的自己的 DNS zone 與私人 VPC ALB 相關聯。 為此,必須設定兩個可選註釋。 若未特別指定,此負載平衡器的 hostname 屬性所對應的 DNS A 記錄,將會新增至公共 DNS 區域 lb.appdomain.cloud 中。

service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-instance-crn: "private-dns-crn"
與此負載平衡器關聯的 DNS 網址 instance 。 指定的實例可能位於不同的區域或帳戶中,具體取決於 IAM 策略。 可能的值:9 ≤ 長度 ≤ 512
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-zone-id: "dns-zone-id"
與此負載平衡器關聯的 DNS 網址 zone 。 指定的區域可能位於不同的區域或帳戶中,具體取決於 IAM 政策。 可能的值:1 ≤ 長度 ≤ 128,值必須符合正規表示式 ^ [a-z0-9-] * [a-z0-9] $

在使用此功能之前,您需要按照先決條件執行以下操作:

  • 建立可綁定負載平衡器的DNS區域
  • 在 VPC LB 和DNS Services之間啟用服務到服務授權
  • 將叢集的VPC加入到可用區允許的網路中

有關詳細信息,請參閱將 應用程式負載平衡器與IBM Cloud DNS Services整合 以及 將 VPC 作為允許的網路新增至 DNS 區域 文件。

範例:

apiVersion: v1
kind: Service
metadata:
  name: myloadbalancer
  annotations:
    service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name: "my-load-balancer"
    service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "private"
    service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-instance-crn: "crn:v1:bluemix:public:dns-svcs:global:a/bb1b52262f7441a586f49068482f1e60:f761b566-030a-4696-8649-cc9d09889e88::"
    service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-zone-id: "d66662cc-aa23-4fe1-9987-858487a61f45"
spec:
  type: LoadBalancer
status:
  loadBalancer:
    ingress:
    - ip: 169.60.115.164
...

註釋和規範

查看必需和可選的 VPC ALB 註釋和規範。

所需註釋和規範

service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "alb"
用於建立 VPC ALB 的註解。 如果不包含 service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features,則預設配置 VPC ALB。
service.kubernetes.io/ibm-load-balancer-cloud-provider-ip-type: "private"
(私有 VPC ALB 必需)用於指定接受公用或私有請求的服務的註解。 如果不包含此註釋,則會建立公用 VPC ALB。
externalTrafficPolicy
指定 Cluster 將請求轉送到包含應用程式 pod 的工作節點。 此工作節點可能位於不同的區域。 預設情況下,此註解設定為 Cluster
指定 Local 以防止傳入流量轉送到不同節點。 此選項也可設定 HTTP 健康檢查。
請注意,要將原始客戶端來源 IP 用於 VPC ALB,您必須啟用帶有 service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "proxy-protocol" 註釋的 PROXY 協定。

可選註釋和規範

service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-lb-name
包含唯一的名稱以使您的 VPC 負載平衡器持久存在。 當持久型 VPC 負載平衡器所屬的叢集被刪除時,持久型 VPC 負載平衡器不會被刪除。 有關更多信息,請參閱 持久 VPC 負載平衡器。 此註解只能在建立負載平衡器時設定。 它不能用於更新操作。
service.kubernetes.io/ibm-load-balancer-cloud-provider-enable-features: "proxy-protocol"
啟用代理協定。 負載平衡器將請求標頭中的用戶端連線資訊(包括用戶端 IP 位址、代理伺服器 IP 位址和兩個連接埠號碼)傳遞到後端應用程式。 請注意,您的後端應用程式必須配置為接受 PROXY 協定。 例如,您可以依照 以下步驟,將 NGINX 應用程式設定為接受 PROXY 協定。
service.kubernetes.io/ibm-load-balancer-cloud-provider-zone
用於指定群集附加到的 VPC 區域的註釋。 當您在此註解中指定區域時,會發生兩個程序:(1) VPC ALB 部署到該區域中您的工作程序節點連接到的相同子網,以及(2) 僅此區域中您的叢集中的工作程序節點被部署到該區域。 若要將負載平衡器放置在特定區域中,您必須在建立負載平衡器時指定此註解。 如果您稍後將此註解變更為其他區域,偵聽和後端工作節點將自動更新以符合新區域。 如果在工作節點上設定了 dedicated: edge 標籤並且您指定了此註釋,則只有指定區域中的邊緣節點被配置為接收流量。 其他可用區的邊緣節點和指定可用區的非邊緣節點不會接收來自負載平衡器的流量。 若要查看區域,請執行 ibmcloud ks zone ls --provider vpc-gen2
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-subnets
用於指定 VPC ALB 服務部署到的一個或多個子網路的註解。 如果指定,此註釋優先於 service.kubernetes.io/ibm-load-balancer-cloud-provider-zone 註釋。 如果沒有此註釋,如果叢集從單一可用區更新為多可用區,VPC ALB 部署的子網路將自動更新以符合叢集的可用區,反之亦然。 請注意,您可以在同一 VPC 中指定與叢集附加到的子網路不同的子網路。 在這種情況下,即使 VPC ALB 部署到同一 VPC 中的不同子網路,VPC ALB 仍然可以將流量路由到叢集子網路上的工作執行緒節點。 若要查看所有資源組中的子網,請執行 ibmcloud oc subnets --provider vpc-gen2 --vpc-id VPC_ID --zone ZONE。 可以為現有 VPC ALB 新增或修改此註解。
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-node-selector
用於指定工作節點標籤選擇器的註解。 您可以透過指定標籤選擇器鍵來配置叢集中的特定工作節點來接收流量。 註解中只能包含一個標籤選擇器,且該選擇器必須以 "key=value" 格式指定。 如果未指定此註釋,叢集中的所有工作程序節點都會配置為接收來自 VPC ALB 的流量。 此註釋優先於 service.kubernetes.io/ibm-load-balancer-cloud-provider-zone 註釋,且工作節點上的任何 dedicated: edge 標籤都將被忽略。 若要限制特定區域的流量,您可以使用此註解來指定該區域中的工作節點。 請注意,在叢集工作節點上設定新標籤不會自動將工作節點配置為接收流量;您必須為新標記的工作節點重新建立或更新 VPC ALB 才能接收流量。
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-health-check-protocol
與Kubernetes負載平衡器服務關聯的 VPC 負載平衡器資源的運作狀況檢查協定。 可用選項有 httphttpstcp。 通常,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 時,此註解才適用。
如果您的叢集未運行 預設安全,您可能需要對套用的 VPC 安全群組進行以下修改。 如果您的叢集預設運行安全,則會自動套用這些變更。
  • 若指定的 TCP 埠號超出 Kubernetes 節點埠號範圍(30,000-32,767),則必須 修改 套用至叢集工作節點的 VPC 安全群組,以允許該埠號的傳入流量。
  • 若將此註解套用至與 VPC ALB 關聯的 Kubernetes 負載平衡服務,則必須 修改 指派給該 VPC ALB 的安全群組之出站規則,以允許出站流量傳輸至指定的 TCP 埠。
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-vpc-idle-connection-timeout
接聽器的閒置連線逾時值(以秒為單位)。 預設空閒逾時取決於您的帳戶設定。 通常,該值為 50。 但是,某些列入白名單的帳戶具有較大的逾時設定。 如果您不設定註解,您的負載平衡器會使用您帳戶中的逾時設定。 您可以透過設定此註解來明確指定逾時。 最小值為 50。 最大值為 7200
service.kubernetes.io/ibm-load-balancer-cloud-provider-dns-name: "example-ingress-domain.<region>.containers.appdomain.cloud"
版本為 4.17 或更新版本。
將負載平衡器的 IP 位址註冊到指定的 Ingress 網域。 如果指定的網域不存在,則會建立使用內部IBM託管提供者 ( IBM NS1 ) 的網域。若要建立新網域,該名稱在所有現有域(而不僅僅是叢集上的網域)中必須是唯一的。 刪除負載平衡器服務將從網域中刪除 IP 位址。 但是,刪除註釋不會從網域中刪除 IP 位址。
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-instance-crn: "private-dns-crn"
版本為 4.15 或更新版本。
與此負載平衡器關聯的 DNS 網域名稱 instance。 有關更多信息,請參閱 註冊私有 DNS 記錄
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-private-dns-zone-id: "dns-zone-id"
版本為 4.15 或更新版本。
與此負載平衡器關聯的 DNS 網域名稱 zone。 有關更多信息,請參閱 註冊私有 DNS 記錄
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管理的安全群組並將其替換為您指定的安全群組。 從現有負載平衡器中刪除註解會將您新增的安全性群組替換為IBM管理的安全群組。 您可以隨時新增或刪除此註釋。 您負責管理您的安全群組並保持最新狀態。
service.kubernetes.io/ibm-load-balancer-cloud-provider-vpc-allow-outbound-traffic
適用於 預設運行安全 的叢集。 用於為與您指定的外部連接埠關聯的 ALB 的每個 IP 位址建立安全性群組的註解。 這些規則是在叢集安全性群組中建立的,如果 VPC 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 上配置的外部連接埠不同。