日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

通過復用已有負載均衡實現跨集群部署服務

為了提高容災能力和可靠性,或實現更高級別的安全隔離,跨集群部署服務是一種有效的策略。這種情況下,如果每個后端Service都選擇LoadBalancer類型,會因為創建多個負載均衡器實例導致浪費。通過使用CCM(cloud-controller-manager)組件,您可以在已有的負載均衡實例上同時掛載集群內與集群外的端點,使用單一負載均衡實例達成跨集群部署服務的目標,同時還可以為端點設置轉發權重。

前提條件

場景一:將流量轉發至集群的Service和集群外的端點

您可以在負載均衡實例上同時掛載集群內的Service和集群外的端點(例如ECS)。

image
  1. 傳統型負載均衡CLB控制臺網絡型負載均衡NLB控制臺查看已有負載均衡實例的ID。

  2. 創建Service時選擇復用已有負載均衡實例。

    使用控制臺創建

    通過容器服務管理控制臺創建Service時,服務類型選擇負載均衡選項,并選擇使用已有SLB,然后在下方選擇要使用的已有負載均衡實例,并選中強制覆蓋已有監聽

    通過kubectl創建

    使用kubectl創建Service時,需要在Annotation中填入負載均衡實例的ID。

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: ${LB_ID} # ${LB_ID}替換為已有負載均衡實例的ID。
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"  # 設置為true,會自動創建監聽與虛擬服務器組。
      labels:
        #...
      name: #...
    spec:
      #...
    重要

    創建Service后,CCM組件會在目標負載均衡實例中自動創建一個虛擬服務器組,以及一個后端為此虛擬服務器組、端口為Service端口的監聽。

  3. 登錄傳統型負載均衡CLB控制臺網絡型負載均衡NLB控制臺。在自動創建的虛擬服務器組中添加集群外的端點。具體操作,請參見創建和管理CLB虛擬服務器組創建和管理服務器組

    配置完成后,您在虛擬服務器組中既可以看到集群內的Pod,又可以看到集群外的端點,也可以為它們設置轉發權重。集群內應用進行擴縮容時,會自動將集群內的端點加入或移出服務器組,集群外的ECS節點不受影響。

場景二:將流量轉發至多個ACK集群內的Service

您可以在負載均衡實例上同時掛載多個不同集群內的Service,為它們提供統一的入口。

為了在Service后端的Pod發生變化時能自動更新負載均衡實例的后端轉發端點,多個Service復用同一個負載均衡實例時,需要共用相同的監聽以及虛擬服務器組。您需要手動為負載均衡實例配置監聽和虛擬服務器組,并在所有Service中復用此虛擬服務器組,監聽使用的端口需要與Service相同。

image
重要
  • 不同集群中的Service需要使用統一的端口。

  • 集群的命名空間+Service的組合名稱不能相同。

  1. 登錄傳統型負載均衡CLB控制臺網絡型負載均衡NLB控制臺,為負載均衡實例創建監聽與虛擬服務器組。具體操作,請參見CLB監聽概述創建和管理CLB虛擬服務器組NLB監聽概述創建和管理服務器組

  2. 創建Service時復用已手動創建的虛擬服務器組。

    在Service的Annotation中填入負載均衡實例的ID以及虛擬服務器組的ID,即可復用虛擬服務器組。同時可以為Service設置轉發權重。

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LB_ID}" # ${YOUR_LB_ID}替換為已有負載均衡實例ID。
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port: "${YOUR_VGROUP_ID}:{PORT}" # ${YOUR_VGROUP_ID}替換為虛擬服務器組ID,{PORT}替換為Service的端口。
        service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight: "100" # 選填參數。此Service所屬的Pod在負載均衡實例后端的轉發權重。取值范圍1~1000,默認值100。
      labels:
        #...
      name: #...
    spec:
      #...
    說明

    如果service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port有多個端口及虛擬服務器組的組合,可以通過英文半角逗號(,)分隔。例如"${YOUR_VGROUP_ID_1}:80, ${YOUR_VGROUP_ID_2}:443"。

    配置完成后,登錄負載均衡控制臺,可以看到虛擬服務器組中有多個來自不同集群的Service的Pod。某個集群內的應用進行擴縮容時,會自動將其所屬的Pod加入或移出服務器組,不會影響其他集群的Pod。

    重要

    如果您在Service中使用Annotation配置了轉發權重,請勿在控制臺再對轉發權重進行調整,否則可能導致狀態不同步。

相關文檔