全部產品
Search
文件中心

Container Service for Kubernetes:在ACK Edge叢集中使用負載平衡類型Service暴露應用

更新時間:Dec 11, 2024

在Kubernetes叢集中,Service是將啟動並執行一組Pod的網路應用進行服務暴露的標準方法,能夠解耦前端和後端的關聯,從而實現松耦合的微服務設計。Service支援多種類型,例如ClusterIP、NodePort、LoadBalancer等。本文主要為您介紹如何在ACK Edge叢集中,通過LoadBalancer(負載平衡)類型Service對外暴露應用。

背景資訊

Kubernetes叢集支援的所有Service類型。關於負載平衡Service的使用方法請參見

雲端應用使用負載平衡類型Service暴露服務

如果業務Pod部署在雲端VPC的ECS上,您可以採用負載平衡類型的Service進行服務暴露,雲端控制面會自動為您的業務Pod管理CLB的監聽以及後端,業務請求通過CLB被均衡發送到後端Pod上。

邊緣應用使用負載平衡類型Service暴露服務

如果業務Pod部署在邊緣側的伺服器上,您可以通過雲端ECS的轉寄能力將請求轉寄給邊緣側的業務Pod。

重要

您需要提前配置並關注以下事項:

  • 通過專線將雲端VPC和邊緣側資料中心進行網路打通。

  • 配置負載平衡型Service的外部流量策略為Cluster,外部流量策略介紹請參見下文外部流量策略

  • 由於需要藉助ECS的網路轉寄能力,如果ECS執行個體失效,則無法實現流量負載平衡。

使用NLB直接暴露雲端/邊緣的應用(推薦)

如果業務Pod部署在雲端或邊緣(雲下IDC),您可以通過NLB暴露服務。使用前提如下:

  • 雲端和邊緣已經採用專線實現內網互連。

  • 採用Terway Edge容器網路外掛程式。

您需要為NLB Service添加以下Annotation,以確保將Pod作為NLB後端。

Annotaion

描述

service.beta.kubernetes.io/backend-type: "eni"

將Pod直接掛載到負載平衡後端。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type: "Ip"

後端伺服器群組類型設定為IP型。

外部流量策略

在叢集中,當服務類型為LoadBalancer或NodePort時,您才可以設定外部流量策略externalTrafficPolicy,來控制從外部網路到服務的流量路由,此策略有兩種模式:Local和Cluster。

說明

流量策略對Terway Edge和Flannel VXLAN外掛程式均有效。

  • Local:流量只轉寄給原生Pod,即流量僅在同一個節點的Pod中進行轉寄。

  • Cluster: 流量可以轉寄到叢集中其他節點上的Pod。

類別

Local

Cluster

負載平衡後端掛載行為

僅Pod所在的節點會掛載到負載平衡後端。

所有叢集內的節點都將掛載到負載平衡的後端。

負載平衡配額

負載平衡配額消耗較少。關於負載平衡配額的詳細介紹,請參見配額限制

叢集內所有節點都掛載到負載平衡後端,會大量消耗負載平衡配額。關於負載平衡配額的詳細介紹,請參見配額限制

訪問負載平衡地址

僅Pod所在節點可以訪問負載平衡地址。

叢集內任意節點均可訪問負載平衡地址。

Pod負載平衡

預設Pod之間負載不均衡。

如果您想要實現Pod之間負載平衡,需要指定策略為wrr,即為Service添加Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler:"wrr"

預設Pod之間負載平衡。

保留來源IP

支援。

不支援。

會話保持

支援。

不支援。

適用情境

對需要保留用戶端原始IP地址的應用程式,例如基於原始IP地址的日誌記錄。

當需要保證服務的高可用性,並且對源IP儲存不敏感時,例如大型Web應用叢集。

相關文檔

關於在ENS中通過負載平衡型Service使用ELB,請參見使用ELB實現多地區服務暴露