全部產品
Search
文件中心

Container Compute Service:Service的負載平衡配置注意事項

更新時間:Dec 28, 2024

當Service的類型設定為Type=LoadBalancer時,阿里雲容器計算服務ACS的CCM(Cloud Controller Manager)組件會為該Service建立或配置阿里雲Server Load Balancer(Server Load Balancer),包括SLB、監聽、後端伺服器組等資源。本文介紹在ACS叢集中配置Service負載平衡的注意事項以及CCM的資源更新策略。

SLB更新策略

ACS支援為Service指定一個已有的SLB,或者讓CCM自動建立新的SLB。兩種方式在SLB的資源更新策略方面存在一些差異,如下表所示。

資來源物件

指定已有SLB

CCM管理SLB

SLB

設定annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

  • CCM會使用該SLB作為Service的負載平衡,並根據其他annotation配置SLB,自動為SLB建立多個虛擬伺服器組。

  • 當Service刪除時,CCM不會刪除您通過ID指定的已有SLB。

  • CCM會根據Service的配置,自動建立和配置SLB、監聽、虛擬伺服器組等資源,所有資源由CCM管理。

  • 當Service刪除時,CCM會刪除自動建立的SLB。

監聽

設定annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners:

  • 如果設定為false,CCM不會為SLB管理任何監聽配置。

  • 如果設定為true,CCM會根據Service組態管理監聽;如果監聽已經存在,則CCM會覆蓋已有監聽。

CCM會根據Service的配置,自動建立和配置監聽策略。

後端伺服器組

當Service對應的後端Endpoint或者叢集節點發生變化時,CCM會自動更新SLB的後端虛擬伺服器組,在ACS叢集中,CCM僅支援掛載PodIP。

注意事項

  • 哪些SLB可以被複用?

    • 僅支援複用通過SLB控制台建立的SLB,不支援複用CCM自動建立的SLB。

    • 如果您需要在Kubernetes叢集中複用私網類型的SLB,則該SLB需要和Kubernetes叢集處於同一VPC下。

  • CCM管理SLB時注意事項

    • CCM只為Type=LoadBalancer類型的Service配置SLB,對於非LoadBalancer類型的Service則不會為其配置負載平衡。

      重要

      Type=LoadBalancer的Service變更為Type!=LoadBalancer時,CCM會刪除為該SLB添加的配置,從而造成無法通過該SLB訪問Service。

    • CCM使用聲明式API,會在一定條件下自動根據Service的配置重新整理SLB配置。當service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: 設定為true時,您自行在SLB控制台上修改的配置均存在被覆蓋的風險。

      重要

      請勿在SLB控制台上手動修改Kubernetes建立並維護的SLB的任何配置,否則有配置丟失的風險,造成Service不可訪問。

配額限制

VPC

SLB

  • CCM會為Type=LoadBalancer類型的Service建立SLB。預設情況下一個使用者可以保留60個SLB執行個體。如果需要建立的SLB數量大於60,請到配額平台提交申請

  • CCM會根據Service中定義的連接埠建立SLB監聽。預設情況下一個SLB執行個體可以添加50個監聽,如需添加更多監聽,請到配額平台提交申請

  • 更多SLB使用限制請參見使用限制

    Server Load Balancer配額查詢請參見Server Load Balancer配額管理