為實現豐富的負載平衡功能,您可以通過Service YAML檔案中的Annotation(註解)對CLB、監聽和後端伺服器組三種資源維度進行配置操作。
索引
主要內容 | 跳轉連結 |
註解使用說明
註解的內容區分大小寫。
使用註解前請先在本文中查看該功能支援的CCM組件版本。如需升級CCM組件,請參見管理組件。關於CCM的組件變更記錄,請參見Cloud Controller Manager。
自2019年09月11日起,
annotations
欄位alicloud
更新為alibaba-cloud
。例如:
更新前:
service.beta.kubernetes.io/alicloud-loadbalancer-id
更新後:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id
系統將繼續相容
alicloud
的寫法,您無需做任何修改。
CLB的典型操作
建立一個公網類型的負載平衡
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
建立一個私網類型的負載平衡
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type
描述 | 預設值 | 支援的CCM版本 |
指定負載平衡為私網類型。取值:
| internet | v1.9.3及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
指定負載平衡規格
Annotation:多個,如下表所示。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type | 執行個體計費方式。取值:
重要 按使用量計費的負載平衡不支援設定規格。即取值 | PayBySpec | v2.4.0及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec | Server Load Balancer執行個體的規格。通過該參數可以建立指定規格的CLB,或者更新已有CLB的規格。 取值:
關於該選項的更多取值,請參見CreateLoadBalancer。 重要 如果您通過CLB控制台修改CLB規格(僅支援修改按規格計費的Server Load Balancer執行個體),可能會被CCM修改回原規格,請謹慎操作。 | slb.s1.small | v1.9.3及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: "PayBySpec"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-spec: "slb.s1.small"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
使用已有的負載平衡
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id
描述 | 預設值 | 支援的CCM版本 |
Server Load Balancer執行個體的ID。通過此Annotation指定已有的CLB。
| 無 | v1.9.3.81-gca19cd4-aliyun及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}" # 不支援配置多個策略組。
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
使用已有的負載平衡,並強制覆蓋已有監聽
Annotation:多個,如下表所示。強制覆蓋已有監聽,如果監聽連接埠衝突,則會刪除已有監聽。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id | Server Load Balancer執行個體的ID。通過此Annotation指定已有的CLB。
| ||
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners | 綁定已有負載平衡時,是否強制覆蓋該CLB的監聽。取值:
重要 複用已有CLB且設定 | "false" | v1.9.3.81-gca19cd4-aliyun及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${YOUR_LOADBALANCER_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
建立負載平衡時,指定主備可用性區域
Annotation:多個,如下表所示。一旦建立,主備可用性區域不支援修改。
某些地區的負載平衡不支援主備可用性區域,請以CLB建立頁面為準。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid | 主後端伺服器的可用性區域ID。 | 無 | v1.9.3.10-gfb99107-aliyun及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid | 備份後端伺服器的可用性區域ID。 | 無 | v1.9.3.10-gfb99107-aliyun及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-master-zoneid: "cn-hangzhou-k"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-slave-zoneid: "cn-hangzhou-j"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
建立按頻寬付費的負載平衡
Annotation:多個,如下表所示。以下兩項Annotation必選。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type | Server Load Balancer執行個體的計費方式。取值:
| paybytraffic | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth | 負載平衡的頻寬,為頻寬峰值。僅適用於公網類型的負載平衡。其他限制,請參見修改公網Server Load Balancer執行個體的計費方式。 | 50 | v1.9.3.10-gfb99107-aliyun及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-charge-type: "paybybandwidth"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth: "2"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
為負載平衡指定虛擬交換器
Annotation:多個,如下表所示。以下兩項Annotation必選。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type | 指定負載平衡為私網類型。取值:
| internet | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id | Server Load Balancer執行個體所屬的VSwitch ID,虛擬交換器必須與Kubernetes叢集屬於同一個VPC。 設定該參數時,需同時設定 可以登入專用網路管理主控台查詢交換器ID。 | 無 | v1.9.3及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
為私網負載平衡指定IP地址
Annotation:多個,如下表所示。以下三項Annotation必選。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type | 指定負載平衡為私網類型。取值:
| internet | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id | Server Load Balancer執行個體所屬的VSwitch ID,虛擬交換器必須與Kubernetes叢集屬於同一個VPC。 設定該參數時,需同時設定 可以登入專用網路管理主控台查詢交換器ID。 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip | 私網Server Load Balancer執行個體的IP。
| 無 | v2.7.0及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vswitch-id: "${YOUR_VSWITCH_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip: "192.168.x.x"
name: nginx
namespace: default
spec:
type: LoadBalancer
ports:
- port: 80
targetPort: 80
name: http
selector:
app: nginx
為負載平衡添加額外標籤
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags
描述 | 預設值 | 支援的CCM版本 |
需要添加的Tag列表。多個標籤用英文半形逗號(,)分隔,例如 重要 在Service上添加該註解指定額外標籤後,在控制台上對對應Server Load Balancer執行個體標籤進行的額外修改操作存在被覆蓋的風險。 | 無 | v1.9.3及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags: "Key1=Value1,Key2=Value2"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
建立IPv6類型的負載平衡
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version
描述 | 預設值 | 支援的CCM版本 |
Server Load Balancer執行個體的IP版本,建立後IP類型不可更改。使用時,叢集的kube-proxy代理模式需為IPVS。取值:
| ipv4 | v1.9.3.220-g24b1885-aliyun及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "ipv6"
name: nginx
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
為負載平衡開啟刪除保護
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection
描述 | 預設值 | 支援的CCM版本 |
負載平衡刪除保護。取值:
重要 對於LoadBalancer類型的Service建立的負載平衡,如果手動在CLB控制台開啟了刪除保護,仍可通過 | on | v1.9.3.313-g748f81e-aliyun及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection: "on"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
為負載平衡開啟配置修改保護
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection
描述 | 預設值 | 支援的CCM版本 |
負載平衡配置修改保護。取值:
| ConsoleProtection | v1.9.3.313-g748f81e-aliyun及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection: "ConsoleProtection"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
指定負載平衡名稱
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name
描述 | 預設值 | 支援的CCM版本 |
Server Load Balancer執行個體名稱。長度為2~128個英文或中文字元,必須以大小寫字母或中文開頭,可包含數字、半形句號(.)、底線(_)和短劃線(-)。 | 無 | v1.9.3.313-g748f81e-aliyun及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "your-svc-name"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
指定負載平衡所屬的資源群組
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id
描述 | 預設值 | 支援的CCM版本 |
負載平衡所屬資源群組ID,資源群組ID指定後不可被修改。可在阿里雲資源管理平台查詢資源群組ID。 | 無 | v1.9.3.313-g748f81e-aliyun及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id: "rg-xxxx"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
為Service設定Hostname
Annotation:多個,如下表所示。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 多個值之間用英文半形逗號(,)分隔,例如 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname | 為Service設定Hostname。Hostname需要符合DNS命名規則。 有如下注意事項:
| 無 | v2.3.0及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-hostname: "${your_service_hostname}"
name: nginx-svc
namespace: default
spec:
ports:
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
預期輸出:
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
nginx-svc loadBalancer 47.100.XX.XX www.example.com 80:30248/TCP,443:32670/TCP 10s
建立一個按使用量計費的負載平衡
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type
描述 | 預設值 | 支援的CCM版本 |
執行個體計費方式。取值:
重要 按使用量計費的負載平衡不支援設定規格。即取值 | PayBySpec | v2.4.0及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-instance-charge-type: "PayByCLCU"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
刪除Service時保留自動建立的Server Load Balancer執行個體
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-lb-on-delete
描述 | 預設值 | 支援的CCM版本 |
在刪除LoadBalancer類型Service時,保留通過Service建立的CLB執行個體,並將CLB執行個體上的 該能力開啟時,會在Service同步時產生類型為 取值:
重要 請通過刪除Service而不是修改Service類型的方式進行該操作,否則可能會導致Service被錯誤地重新關聯到先前保留的CLB上。 | 無 | v2.10.0及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-lb-on-delete: "true"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
監聽的典型操作
為TCP類型的負載平衡配置會話保持時間
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout
描述 | 預設值 | 支援的CCM版本 |
會話保持時間。僅針對TCP協議的監聽。如果Server Load Balancer執行個體配置了多個TCP協議的監聽連接埠,則預設將該配置應用到所有TCP協議的監聽連接埠。 單位:秒。取值[0, 3600]。預設值為0,即會話保持關閉。更多資訊,請參見CreateLoadBalancerTCPListener。 | 0 | v1.9.3及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-persistence-timeout: "1800"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
為HTTP和HTTPS協議的監聽配置會話保持(insert cookie)
Annotation:多個,如下表所示。insert cookie時,以下四項Annotation必選。
僅支援HTTP及HTTPS協議的Server Load Balancer執行個體。
如果配置了多個HTTP或者HTTPS的監聽連接埠,該會話保持預設應用到所有HTTP和HTTPS監聽連接埠。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session | 是否開啟會話保持。僅對HTTP和HTTPS協議的監聽生效。取值:
更多資訊,請參見:CreateLoadBalancerHTTPListener和CreateLoadBalancerHTTPSListener。 | off | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type | cookie的處理方式。僅對HTTP和HTTPS協議的監聽生效。當
更多資訊,請參見CreateLoadBalancerHTTPListener和CreateLoadBalancerHTTPSListener。 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout | Cookie逾時時間。當 更多資訊,請參見:CreateLoadBalancerHTTPListener和CreateLoadBalancerHTTPSListener。 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie | 伺服器上配置的Cookie名稱。 長度為1~200個字元,只能包含 ASCII 英文字母和數字字元,不能包含半形逗號(,)、半形分號(;)或空格,也不能以貨幣符號($)開頭。 當 更多資訊,請參見CreateLoadBalancerHTTPListener和CreateLoadBalancerHTTPSListener。 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 多個值之間用英文半形逗號(,)分隔,例如 | 無 | v1.9.3及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-sticky-session-type: "insert"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cookie-timeout: "1800"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
為負載平衡配置存取控制策略組
Annotation:多個,如下表所示。以下三項Annotation必選。
使用此Annotation建立帶有存取控制的負載平衡前,需先在傳統型負載平衡CLB控制台上建立一個負載平衡存取控制策略組,記錄該存取控制策略組ID(acl-id)。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status | 是否開啟存取控制功能。取值:
| off | v1.9.3.164-g2105d2e-aliyun及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id | 監聽綁定的存取原則組ID。當 | 無 | v1.9.3.164-g2105d2e-aliyun及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type | 存取控制類型。取值:
| 無 | v1.9.3.164-g2105d2e-aliyun及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-status: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-id: "${YOUR_ACL_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-acl-type: "white"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
為負載平衡指定轉送連接埠
連接埠轉寄是指將HTTP連接埠的請求轉寄到HTTPS連接埠。
Annotation:多個,如下表所示。以下三項Annotation必選。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 多個值之間用英文半形逗號(,)分隔,例如 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | 阿里雲上的認證ID。 請登入CLB控制台,在認證管理頁面查看認證ID。 說明 如需建立認證,請參見選擇阿里雲簽發認證。 | 無 | v1.9.3.164-g2105d2e-aliyun及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port | 將HTTP請求轉寄至HTTPS指定連接埠,例如 | 無 | v1.9.3.164-g2105d2e-aliyun及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443,http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-forward-port: "80:443"
name: nginx
namespace: default
spec:
ports:
- name: https
port: 443
protocol: TCP
targetPort: 80
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
為負載平衡設定調度演算法
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
描述 | 預設值 | 支援的CCM版本 |
調度演算法。取值:
關於該選項的更多取值,請參見CLB建立對應類型監聽API(如CreateLoadBalancerTCPListener - 建立TCP監聽)中的 | rr | v1.9.3及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "wrr"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
建立UDP類型的監聽
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: UDP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
建立HTTP類型的監聽
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port
描述 | 預設值 | 支援的CCM版本 |
多個值之間用英文半形逗號(,)分隔,例如 | 無 | v1.9.3及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
建立HTTPS類型的監聽
Annotation:多個,如下表所示。
HTTPS請求會在CLB層解密,然後以HTTP請求的形式發送給後端的Pod。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 多個值之間用英文半形逗號(,)分隔,例如 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | 阿里雲上的認證ID。 請登入CLB控制台,在認證管理頁面查看認證ID。 說明 如需建立認證,請參見選擇阿里雲簽發認證。 | 無 | v1.9.3.164-g2105d2e-aliyun及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
建立帶健全狀態檢查的監聽
設定TCP類型的健全狀態檢查
Annotation:多個,如下表所示。以下所有Annotation必選。
TCP連接埠預設開啟健全狀態檢查。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch | TCP及UDP監聽是否開啟健全狀態檢查。取值:
| on | v2.6.0及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | 健全狀態檢查類型。取值:
更多資訊,請參見:CreateLoadBalancerTCPListener。 | tcp | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | 接收來自健全狀態檢查的響應需要等待的時間,適用於TCP模式。如果後端ECS在指定的時間內沒有正確響應,則判定為健全狀態檢查失敗。單位:秒。取值範圍為[1, 300]。 如果 | 5 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | 健全狀態檢查連續成功多少次後,將後端伺服器的健全狀態檢查狀態由 取值範圍為[2, 10]。更多資訊,請參見CreateLoadBalancerTCPListener。 | 3 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | 健全狀態檢查連續失敗多少次後,將後端伺服器的健全狀態檢查狀態由success判定為fail。取值範圍為[2, 10]。更多資訊,請參見CreateLoadBalancerTCPListener。 | 3 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | 健全狀態檢查的時間間隔。單位:秒。取值範圍[1, 50]。更多資訊,請參見CreateLoadBalancerTCPListener。 | 2 | v1.9.3及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "tcp"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "8"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
設定UDP類型的健全狀態檢查
Annotation:多個,如下表所示。以下所有Annotation必選。
UDP連接埠預設開啟健全狀態檢查。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch | TCP及UDP監聽是否開啟健全狀態檢查。取值:
| on | v2.6.0及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout | 接收來自健全狀態檢查的響應需要等待的時間,適用於TCP模式。如果後端ECS在指定的時間內沒有正確響應,則判定為健全狀態檢查失敗。單位:秒。取值範圍為[1, 300]。 如果 | 5 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | 健全狀態檢查連續成功多少次後,將後端伺服器的健全狀態檢查狀態由fail判定為success。 取值範圍為[2, 10]。更多資訊,請參見CreateLoadBalancerUDPListener。 | 3 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | 健全狀態檢查連續失敗多少次後,將後端伺服器的健全狀態檢查狀態由success判定為fail。取值範圍為[2, 10]。更多資訊,請參見CreateLoadBalancerUDPListener。 | 3 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | 健全狀態檢查的時間間隔。單位:秒。取值範圍[1, 50]。更多資訊,請參見CreateLoadBalancerUDPListener。 | 2 | v1.9.3及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout: "10"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "3"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "3"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: UDP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
為TCP和UDP監聽關閉健全狀態檢查
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch
描述 | 預設值 | 支援的CCM版本 |
TCP及UDP監聽是否開啟健全狀態檢查。取值:
| on | v2.6.0及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-switch: "off" #關閉健全狀態檢查
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
設定HTTP類型的健全狀態檢查
Annotation:多個,如下表所示。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag | 取值:
| off | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type | 健全狀態檢查類型。取值:
更多資訊,請參見CreateLoadBalancerHTTPListener。 | tcp | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri | 用於健全狀態檢查的URI。當健全狀態檢查類型為TCP模式時,無需配置此Annotation參數。 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode | 健全狀態檢查正常的HTTP狀態代碼,多個狀態代碼用英文半形逗號分隔。取值:
更多資訊,請參見CreateLoadBalancerHTTPListener。 | http_2xx | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain | 用於健全狀態檢查的網域名稱,取值:
更多資訊,請參見CreateLoadBalancerHTTPListener。 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout | 接收來自健全狀態檢查的響應需要等待的時間,適用於HTTP模式。如果後端ECS在指定的時間內沒有正確響應,則判定為健全狀態檢查失敗。 單位:秒。取值範圍[1, 300]。 如果 更多資訊,請參見CreateLoadBalancerHTTPListener。 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold | 健全狀態檢查連續成功多少次後,將後端伺服器的健全狀態檢查狀態由fail判定為success。 取值範圍為[2, 10]。更多資訊,請參見CreateLoadBalancerHTTPListener。 | 3 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold | 健全狀態檢查連續失敗多少次後,將後端伺服器的健全狀態檢查狀態由success判定為fail。取值範圍為[2, 10]。更多資訊,請參見CreateLoadBalancerHTTPListener。 | 3 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval | 健全狀態檢查的時間間隔。單位:秒。取值範圍[1, 50]。更多資訊,請參見CreateLoadBalancerHTTPListener。 | 2 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 多個值之間用英文半形逗號(,)分隔,例如 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method | 監聽HTTP類型健全狀態檢查的健全狀態檢查方法。取值:
| 無 | v2.3.0及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type: "http"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri: "/test/index.html"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold: "4"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-timeout: "10"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "3"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
# 設定健全狀態檢查HTTP狀態代碼,可選
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-httpcode: "http_4xx"
# 設定健全狀態檢查網域名稱,可選
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain: "www.aliyun.com"
# 設定健全狀態檢查方法,可選
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method: "head"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
為監聽設定串連優雅中斷
Annotation:多個,如下表所示。以下所有Annotation必選。
僅支援TCP和UDP協議。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain | 是否開啟串連優雅中斷。取值:
| 無 | v2.0.1及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout | 設定串連優雅中斷逾時時間。單位:秒。取值範圍為[10, 900]。 | 無 | v2.0.1及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout: "30"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
為監聽配置額外要求標頭
Annotation:多個,如下表所示。
僅支援HTTP和HTTPS協議。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 多個值之間用英文半形逗號(,)分隔,例如 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto | 配置是否通過X-Forwarded-Proto頭欄位擷取CLB的監聽協議。取值:
| off | v2.1.0及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport | 配置是否通過XForwardedFor_SLBPORT頭欄位擷取Server Load Balancer執行個體的監聽連接埠。取值:
| off | v2.9.1及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport | 配置是否通過XForwardedFor_ClientSrcPort頭欄位擷取訪問Server Load Balancer執行個體用戶端的連接埠。取值:
| off | v2.9.1及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-proto: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-slbport: "on"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-xforwardedfor-clientsrcport: "on"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
為監聽設定串連空閑逾時時間
Annotation:多個,如下表所示。
僅支援HTTP和HTTPS協議。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 多個值之間用英文半形逗號(,)分隔,例如 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout | 為監聽設定串連空閑逾時時間。單位:秒。取值範圍[1, 60]。 | 15 | v2.1.0及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout: "30"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
關閉監聽的HTTP2特性
Annotation:多個,如下表所示。
僅支援HTTPS協議。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 多個值之間用英文半形逗號(,)分隔,例如 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | 阿里雲上的認證ID。 請登入CLB控制台,在認證管理頁面查看認證ID。 說明 如需建立認證,請參見選擇阿里雲簽發認證。 | 無 | v1.9.3.164-g2105d2e-aliyun及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled | 是否開啟HTTP2特性。取值:
| on | v2.1.0及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-http2-enabled: "off"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
為監聽配置指定請求逾時時間
Annotation:多個,如下表所示。
僅支援HTTP和HTTPS協議。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 多個值之間用英文半形逗號(,)分隔,例如 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout | 指定請求逾時時間。單位:秒。取值範圍為[1, 180]。 在逾時時間內,後端伺服器一直沒有響應,負載平衡將放棄等待,用戶端返回HTTP 504錯誤碼。 | 60 | v2.3.0及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-request-timeout: "60"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
為監聽指定連結逾時時間
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-established-timeout
僅支援TCP協議。
描述 | 預設值 | 支援的CCM版本 |
連線逾時時間。單位:秒。取值範圍為[10, 900]。更多資訊,請參見CreateLoadBalancerTCPListener。 | 無 | v2.3.0及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-established-timeout: "60"
name: nginx
namespace: default
spec:
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
為監聽配置安全性原則
Annotation:多個,如下表所示。
僅支援HTTPS協議。
註解 | 描述 | 預設值 | 支援的CCM版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port | 多個值之間用英文半形逗號(,)分隔,例如 | 無 | v1.9.3及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id | 阿里雲上的認證ID。 請登入CLB控制台,在認證管理頁面查看認證ID。 說明 如需建立認證,請參見選擇阿里雲簽發認證。 | 無 | v1.9.3.164-g2105d2e-aliyun及以上版本 |
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy | 安全性原則包含HTTPS可選的TLS協議版本和配套的密碼編譯演算法套件。更多資訊,請參見CreateLoadBalancerHTTPSListener。取值:
| tls_cipher_policy_1_0 | v2.4.0及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "https:443,http:80"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${YOUR_CERT_ID}"
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy: "tls_cipher_policy_1_2"
name: nginx
namespace: default
spec:
ports:
- name: https
port: 443
protocol: TCP
targetPort: 443
- name: http
port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
為監聽同時配置TCP及UDP協議
該功能要求Kubernetes叢集版本不低於v1.24。關於如何升級叢集版本,請參見升級ACK叢集K8s版本。
apiVersion: v1
kind: Service
metadata:
name: nginx
namespace: default
spec:
ports:
- name: tcp
port: 80
protocol: TCP
targetPort: 80
- name: udp
port: 80
protocol: UDP
targetPort: 81
selector:
app: nginx
sessionAffinity: None
type: LoadBalancer
為TCP和UDP類型的監聽配置Proxy Protocol協議
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol
描述 | 預設值 | 支援的CCM版本 |
為TCP及UDP監聽配置ProxyProtocol協議。ProxyProtocol協議配置後,可通過ProxyProtocol協議攜帶用戶端源地址到後端伺服器。取值:
重要 該功能不支援線上平滑遷移,切換ProxyProtocol需要業務停服升級,請謹慎配置。 | off | v2.6.0及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
後端伺服器組的典型操作
使用指定Label的Worker節點作為後端伺服器
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-label
描述 | 預設值 | 支援的CCM版本 |
指定通過Label指定CLB後端掛載哪些Worker節點。多個Label以英文半形逗號(,)分隔,例如 | 無 | v1.9.3及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-backend-label: "failure-domain.beta.kubernetes.io/zone=ap-southeast-5a"
name: nginx
namespace: default
spec:
ports:
- port: 443
protocol: TCP
targetPort: 443
selector:
run: nginx
type: LoadBalancer
使用Pod所在的節點作為後端伺服器
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler
預設externalTrafficPolicy
為Cluster模式,會將叢集中所有節點掛載到後端伺服器。Local模式僅將Pod所在節點作為後端伺服器。
描述 | 預設值 | 支援的CCM版本 |
調度演算法。取值:
| rr | v1.9.3及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "wrr"
name: nginx
namespace: default
spec:
externalTrafficPolicy: Local
ports:
- port: 80
protocol: TCP
targetPort: 80
selector:
run: nginx
type: LoadBalancer
移除CLB後端unschedulable狀態的節點
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-remove-unscheduled-backend
描述 | 預設值 | 支援的CCM版本 |
從CLB後端移除SchedulingDisabled節點。取值:
| off | v1.9.3.164-g2105d2e-aliyun及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-remove-unscheduled-backend: "on"
name: nginx
spec:
externalTrafficPolicy: Local
ports:
- name: http
port: 30080
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
直接將Pod ENI掛載到CLB後端
Annotation:service.beta.kubernetes.io/backend-type
描述 | 預設值 | 支援的CCM版本 |
CLB後端伺服器類型。取值:
|
| v1.9.3.164-g2105d2e-aliyun及以上版本 |
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/backend-type: "eni"
name: nginx
spec:
ports:
- name: http
port: 30080
protocol: TCP
targetPort: 80
selector:
app: nginx
type: LoadBalancer
複用已有虛擬伺服器組
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port
支援複用已有虛擬伺服器組,僅在複用已有CLB情境下生效。具體的使用樣本,請參見通過複用已有負載平衡實現跨叢集部署服務。
設定Service接收流量的權重
Annotation:service.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight
在多個Service複用同一個CLB的情境下,支援通過此Annotation設定當前Service接收流量的權重。該Annotation僅在複用已有虛擬伺服器組情境下生效。具體的使用樣本,請參見通過複用已有負載平衡實現跨叢集部署服務。