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

通過Annotation配置網(wǎng)絡(luò)型負(fù)載均衡NLB

更新時(shí)間:

您通過Service YAML文件中的Annotation(注解)實(shí)現(xiàn)豐富的負(fù)載均衡功能。網(wǎng)絡(luò)型負(fù)載均衡NLB(Network Load Balancer)是阿里云面向萬物互聯(lián)時(shí)代推出的新一代四層負(fù)載均衡,支持超高性能和自動(dòng)彈性能力。本文從NLB、監(jiān)聽和服務(wù)器組三種資源維度介紹通過Annotation可以對(duì)NLB進(jìn)行的常見配置操作。

索引

主要內(nèi)容

跳轉(zhuǎn)鏈接

注意事項(xiàng)

NLB的典型操作

創(chuàng)建公網(wǎng)類型的NLB

創(chuàng)建私網(wǎng)類型的NLB

指定負(fù)載均衡名稱

指定負(fù)載均衡所屬的資源組

創(chuàng)建雙棧類型的NLB

為負(fù)載均衡添加額外標(biāo)簽

使用已有的負(fù)載均衡

綁定共享帶寬包

開啟刪除保護(hù)

開啟配置修改保護(hù)

指定IPv6公私網(wǎng)類型

刪除Service時(shí)保留自動(dòng)創(chuàng)建的負(fù)載均衡實(shí)例

監(jiān)聽的典型操作

設(shè)置監(jiān)聽安全組

為監(jiān)聽同時(shí)配置TCP及UDP協(xié)議

創(chuàng)建TCP類型監(jiān)聽

創(chuàng)建UDP類型監(jiān)聽

創(chuàng)建TCPSSL類型監(jiān)聽

開啟雙向認(rèn)證

設(shè)置TLS安全策略

設(shè)置ProxyProtocol

ProxyProtocol攜帶額外信息

設(shè)置監(jiān)聽每秒新建連接限速值

設(shè)置監(jiān)聽連接空閑超時(shí)時(shí)間

設(shè)置ALPN策略

服務(wù)器組的典型操作

設(shè)置調(diào)度策略

設(shè)置連接優(yōu)雅中斷

設(shè)置客戶端地址保持

設(shè)置TCP類型的健康檢查

設(shè)置HTTP類型的健康檢查

設(shè)置服務(wù)器組類型

復(fù)用已有服務(wù)器組

設(shè)置Service接收流量的權(quán)重

注意事項(xiàng)

  • 集群版本為v1.24及以上且CCM(Cloud Controller Manager)版本不低于v2.5.0。如需升級(jí)集群,請(qǐng)參見手動(dòng)升級(jí)集群;如需升級(jí)組件,請(qǐng)參見管理組件

  • Service中spec.loadBalancerClass需要指定為alibabacloud.com/nlb。如不指定,則默認(rèn)創(chuàng)建什么是傳統(tǒng)型負(fù)載均衡CLB

  • Service一旦創(chuàng)建后spec.loadBalancerClass不支持更改,CLB及NLB資源無法相互轉(zhuǎn)換。

  • 暫不支持通過容器服務(wù)控制臺(tái)管理NLB,請(qǐng)通過kubectl命令操作。

NLB的典型操作

創(chuàng)建公網(wǎng)類型的NLB

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps

描述

默認(rèn)值

支持的CCM版本

指定NLB的可用區(qū)。

NLB支持的地域及可用區(qū)可以登錄NLB控制臺(tái)查看,至少需要兩個(gè)可用區(qū)。多個(gè)可用區(qū)間用逗號(hào)分隔,例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321

v2.5.0及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

創(chuàng)建私網(wǎng)類型的NLB

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type

描述

默認(rèn)值

支持的CCM版本

指定NLB為私網(wǎng)類型。可以更改此Annotation取值,實(shí)現(xiàn)NLB的公私網(wǎng)轉(zhuǎn)變。取值:

  • internet:公網(wǎng)NLB。

  • intranet:私網(wǎng)NLB。

NLB支持的地域及可用區(qū)可以登錄NLB控制臺(tái)查看,至少需要兩個(gè)可用區(qū)。多個(gè)可用區(qū)間用逗號(hào)分隔,例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321

internet

v2.5.0及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type: "intranet"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

指定負(fù)載均衡名稱

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-name

描述

默認(rèn)值

支持的CCM版本

指定均衡實(shí)例名稱。NLB名稱長度為2~128個(gè)英文或中文字符,必須以大小寫字母或中文開頭,可包含數(shù)字、點(diǎn)號(hào)(.)、下劃線(_)和短橫線(-)。

v2.5.0及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name: "${your-nlb-name}" # NLB名稱。
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

指定負(fù)載均衡所屬的資源組

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id

描述

默認(rèn)值

支持的CCM版本

指定負(fù)載均衡所屬的資源組,資源組ID指定后不可被修改。

可以登錄阿里云資源管理平臺(tái)查詢資源組ID。

v2.5.0及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id:  "${your-resource-group-id}" # 資源組ID。
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

創(chuàng)建雙棧類型的NLB

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version

描述

默認(rèn)值

支持的CCM版本

指定NLB的協(xié)議版本。創(chuàng)建后,IP類型不可更改。使用時(shí),集群的kube-proxy代理模式需為IPVS。取值:

  • ipv4:IPv4類型。

  • DualStack:雙棧類型,同時(shí)支持IPv4和IPv6。

    • service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps中指定的兩個(gè)vSwitch均需開啟IPv6。

    • 生成的IPv6地址僅可在支持IPv6的環(huán)境中訪問。

ipv4

v2.5.0及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "DualStack"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

為負(fù)載均衡添加額外標(biāo)簽

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags

描述

默認(rèn)值

支持的CCM版本

支持額外添加Tag標(biāo)簽。多個(gè)Tag間使用英文半角逗號(hào)(,)分隔,例如k1=v1,k2=v2。v2.10.0及以上版本支持對(duì)已創(chuàng)建實(shí)例和復(fù)用實(shí)例的標(biāo)簽進(jìn)行修改。

重要

在Service上添加該注解指定額外標(biāo)簽后,在控制臺(tái)上對(duì)對(duì)應(yīng)負(fù)載均衡實(shí)例標(biāo)簽進(jìn)行的額外修改操作存在被覆蓋的風(fēng)險(xiǎn)。

v2.5.0及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags: "Key1=Value1,Key2=Value2"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

使用已有的負(fù)載均衡

Annotation:多個(gè),如下表所示。

Annotation

描述

默認(rèn)值

支持的CCM版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id

添加已有負(fù)載均衡的ID。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners

決定是否根據(jù)Service同步NLB監(jiān)聽配置。取值:

  • true:CCM會(huì)根據(jù)Service配置,創(chuàng)建、更新、刪除NLB監(jiān)聽。

  • false:CCM不會(huì)對(duì)NLB監(jiān)聽做任何處理。

false

v2.5.0及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id: "${your-nlb-id}" # NLB的ID。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners: "true"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

綁定共享帶寬包

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth-package-id

描述

默認(rèn)值

支持的CCM版本

綁定的共享帶寬包ID。

您可登錄VPC控制臺(tái)查詢共享帶寬包ID。

v2.9.1及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-bandwidth-package-id: "cbwp-xxxxxxxxxx" 
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

開啟刪除保護(hù)

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection

描述

默認(rèn)值

支持的CCM版本

是否開啟NLB刪除保護(hù)。取值:

  • on

  • off

重要

對(duì)于LoadBalancer類型的Service創(chuàng)建的負(fù)載均衡,如果手動(dòng)在NLB控制臺(tái)開啟了刪除保護(hù),仍可通過kubectl delete svc {your-svc-name}的方式刪除Service關(guān)聯(lián)的負(fù)載均衡。

on

v2.9.1及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-delete-protection: "on"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

開啟配置修改保護(hù)

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection

描述

默認(rèn)值

支持的CCM版本

是否開啟NLB配置修改保護(hù)。取值:

  • ConsoleProtection

  • NonProtection

ConsoleProtection

v2.9.1及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-modification-protection: "ConsoleProtection"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

指定IPv6公私網(wǎng)類型

Annotation:多個(gè),如下表所示。

Annotation

描述

默認(rèn)值

支持的CCM版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version

指定NLB的協(xié)議版本。創(chuàng)建后,IP類型不可更改。使用時(shí),集群的kube-proxy代理模式需為IPVS。取值:

  • ipv4:IPv4類型。

  • DualStack:雙棧類型,同時(shí)支持IPv4和IPv6。

    • service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps中指定的兩個(gè)vSwitch均需開啟IPv6。

    • 生成的IPv6地址僅可在支持IPv6的環(huán)境中訪問。

ipv4

v2.5.0及以上版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ipv6-address-type

指定NLB的IPv6網(wǎng)絡(luò)類型。取值:

  • intranet:私網(wǎng)IPv6

  • internet:公網(wǎng)IPv6

說明

啟用IPv6公網(wǎng)時(shí),NLB實(shí)例所在的VPC下需要存在IPv6網(wǎng)關(guān)。詳情請(qǐng)見創(chuàng)建和管理IPv6網(wǎng)關(guān)

intranet

v2.9.1及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version: "DualStack"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ipv6-address-type: internet # 指定IPv6網(wǎng)絡(luò)類型為公網(wǎng)
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

刪除Service時(shí)保留自動(dòng)創(chuàng)建的負(fù)載均衡實(shí)例

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-lb-on-delete

描述

默認(rèn)值

支持的CCM版本

在刪除LoadBalancer類型的Service時(shí),保留通過Service創(chuàng)建的NLB實(shí)例,并將NLB實(shí)例和服務(wù)器組上的kubernetes.do.not.deleteack.aliyun.com標(biāo)簽刪除。服務(wù)器組內(nèi)的已有的服務(wù)器將得到保留。

該能力開啟時(shí),會(huì)在Service同步時(shí)產(chǎn)生類型為PreservedOnDelete的Warning事件。配置該Annotation后,推薦檢查該事件是否存在,進(jìn)一步確認(rèn)能力已成功開啟。

取值:

  • 不為空:?jiǎn)⒂帽A裟芰Α?/p>

  • 值為空或不設(shè)置:不啟用保留能力。

重要

請(qǐng)通過刪除Service而不是修改Service類型的方式進(jìn)行該操作,否則可能會(huì)導(dǎo)致Service被錯(cuò)誤地重新關(guān)聯(lián)到先前保留的NLB上。

v2.10.0及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-lb-on-delete: "true"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

監(jiān)聽的典型操作

設(shè)置監(jiān)聽安全組

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-security-group-ids

描述

默認(rèn)值

支持的CCM版本

設(shè)置監(jiān)聽安全組。多個(gè)值之間使用英文半角逗號(hào)(,)分隔,例如sg-aaaaa,sg-bbbbb

v2.6.0及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-security-group-ids: "sg-aaaaa,sg-bbbbb" # 多個(gè)安全組使用逗號(hào)分隔。
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

為監(jiān)聽同時(shí)配置TCP及UDP協(xié)議

描述

默認(rèn)值

支持的CCM版本

該功能要求Kubernetes集群版本不低于v1.24。關(guān)于如何升級(jí)集群版本,請(qǐng)參見升級(jí)ACK集群K8s版本

不涉及

apiVersion: v1
kind: Service
metadata:
  annotations:
      service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: udp
    port: 80
    protocol: UDP
    targetPort: 81
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

創(chuàng)建TCP類型監(jiān)聽

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

創(chuàng)建UDP類型監(jiān)聽

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: udp
    port: 80
    protocol: UDP
    targetPort: 80
  selector:
    app: nginx
  sessionAffinity: None
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

創(chuàng)建TCPSSL類型監(jiān)聽

Annotation:多個(gè),如下表所示。

Annotation

描述

默認(rèn)值

支持的CCM版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

設(shè)置監(jiān)聽的協(xié)議類型。多個(gè)值之間由逗號(hào)分隔,例如TCP:80,TCPSSL:443

v2.5.0及以上版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

服務(wù)器證書ID。可以登錄數(shù)字證書管理服務(wù)控制臺(tái)創(chuàng)建并查看。

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
    # 如證書為中國內(nèi)地Region時(shí),組合后的證書ID為${your-cert-id}-cn-hangzhou。
    # 如證書為除中國內(nèi)地以外的其他Region時(shí),組合后的證書ID為${your-cert-id}-ap-southeast-1。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${組合后的證書ID}"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

開啟雙向認(rèn)證

Annotation:多個(gè),如下表所示。

注解

描述

默認(rèn)值

支持的CCM版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

設(shè)置監(jiān)聽的協(xié)議類型。多個(gè)值之間由逗號(hào)分隔,例如TCP:80,TCPSSL:443

v2.5.0及以上版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

服務(wù)器證書ID。可以登錄數(shù)字證書管理服務(wù)控制臺(tái)查看。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert-id

CA證書ID,可以登錄數(shù)字證書管理服務(wù)控制臺(tái)查看。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert

是否啟動(dòng)雙向認(rèn)證。取值:

  • on:?jiǎn)?dòng)。

  • off:關(guān)閉。

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"   
    # 如集群為中國內(nèi)地Region時(shí),組合后的證書ID為${your-cert-id}-cn-hangzhou。
    # 如集群為除中國內(nèi)地以外的其他Region時(shí),組合后的證書ID為${your-cert-id}-ap-southeast-1。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${組合后的證書ID}" 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert-id: "${your-cacert-id}"  # CA證書ID。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert: "on"
name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

設(shè)置TLS安全策略

Annotation:多個(gè),如下表所示。

注解

描述

默認(rèn)值

支持的CCM版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

設(shè)置監(jiān)聽的協(xié)議類型。多個(gè)值之間由逗號(hào)分隔,例如TCP:80,TCPSSL:443

v2.5.0及以上版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

服務(wù)器證書ID。可以登錄數(shù)字證書管理服務(wù)控制臺(tái)查看。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy

安全策略ID。支持系統(tǒng)安全策略和自定義安全策略。取值:

  • tls_cipher_policy_1_0

  • tls_cipher_policy_1_1

  • tls_cipher_policy_1_2

  • tls_cipher_policy_1_2_strict

  • tls_cipher_policy_1_2_strict_with_1_3

tls_cipher_policy_1_0

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
    # 如集群為中國內(nèi)地Region時(shí),組合后的證書ID為${your-cert-id}-cn-hangzhou。
    # 如集群為除中國內(nèi)地以外的其他Region時(shí),組合后的證書ID為${your-cert-id}-ap-southeast-1。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${組合后的證書ID}" 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy: "tls_cipher_policy_1_0"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

設(shè)置ProxyProtocol

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol

描述

默認(rèn)值

支持的CCM版本

是否開啟通過Proxy Protocol協(xié)議攜帶客戶端源地址到服務(wù)器。取值:

  • on:開啟。

  • off:關(guān)閉。

重要

啟用ProxyProtocol之前,請(qǐng)檢查后端服務(wù)是否已開啟Proxy Protocol v2。如未開啟,會(huì)導(dǎo)致訪問不通,請(qǐng)謹(jǐn)慎配置。

off

v2.5.0及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

ProxyProtocol攜帶額外信息

Annotation:多個(gè),如下表所示。

Annotation

描述

默認(rèn)值

支持的CCM版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol

是否開啟通過Proxy Protocol協(xié)議攜帶客戶端源地址到服務(wù)器。取值:

  • on:開啟。

  • off:關(guān)閉。

重要

啟用ProxyProtocol之前,請(qǐng)檢查后端服務(wù)是否已開啟Proxy Protocol v2。如未開啟,會(huì)導(dǎo)致訪問不通,請(qǐng)謹(jǐn)慎配置。

off

v2.5.0及以上版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-vpc-id-enabled

是否開啟通過 Proxy Protocol 協(xié)議攜帶 VpcId 到后端服務(wù)器。取值:

  • on:開啟。

  • off:關(guān)閉。

off

v2.9.1及以上版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-ep-id-enabled

是否開啟通過 Proxy Protocol 協(xié)議攜帶 PrivateLinkEpId 到后端服務(wù)器。取值:

  • on:開啟。

  • off:關(guān)閉。

off

v2.9.1及以上版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-eps-id-enabled

是否開啟通過 Proxy Protocol 協(xié)議攜帶 PrivateLinkEpsId 到后端服務(wù)器。取值:

  • on:開啟。

  • off:關(guān)閉。

off

v2.9.1及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-ep-id-enabled: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-eps-id-enabled: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ppv2-pvl-vpc-id-enabled: "on"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

設(shè)置監(jiān)聽每秒新建連接限速值

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-cps

描述

默認(rèn)值

支持的CCM版本

網(wǎng)絡(luò)型負(fù)載均衡實(shí)例每秒新建連接限速值。取值范圍[0, 1000000]。0表示不限速。

v2.5.0及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cps: "100"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

設(shè)置監(jiān)聽連接空閑超時(shí)時(shí)間

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout

描述

默認(rèn)值

支持的CCM版本

連接空閑超時(shí)時(shí)間。單位:秒。取值范圍[10, 900]。

900

v2.5.0及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout: "60"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

設(shè)置ALPN策略

Annotation:多個(gè),如下表所示。

注解

描述

默認(rèn)值

支持的CCM版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port

設(shè)置監(jiān)聽的協(xié)議類型。多個(gè)值之間由逗號(hào)分隔,例如TCP:80,TCPSSL:443

v2.5.0及以上版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id

服務(wù)器證書ID。可以登錄數(shù)字證書管理服務(wù)控制臺(tái)創(chuàng)建并查看。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn

是否啟用ALPN。取值:

  • on:開啟。

  • off:關(guān)閉。

off

v2.10.0及以上版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn-policy

ALPN策略。取值:

  • HTTP1Only:只協(xié)商使用 HTTP1.x 協(xié)議,優(yōu)先級(jí)為 HTTP1.1>HTTP1.0。

  • HTTP2Only:只協(xié)商使用 HTTP2.0 協(xié)議。

  • HTTP2Optional:優(yōu)先使用 HTTP1.x 協(xié)議,但也接受 HTTP2.0 協(xié)議,優(yōu)先級(jí)為 HTTP1.1>HTTP1.0>HTTP2.0。

  • HTTP2Preferred:優(yōu)先使用 HTTP2.0 協(xié)議,但也接受 HTTP1.x 協(xié)議,優(yōu)先級(jí)為 HTTP2.0>HTTP1.1>HTTP1.0。

關(guān)于該選項(xiàng)的更多取值,請(qǐng)參見CreateListener - 創(chuàng)建監(jiān)聽API中的AlpnPolicy字段。

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port: "tcpssl:443"
    # 如集群為中國內(nèi)地Region時(shí),組合后的證書ID為${your-cert-id}-cn-hangzhou。
    # 如集群為除中國內(nèi)地以外的其他Region時(shí),組合后的證書ID為${your-cert-id}-ap-southeast-1。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id: "${組合后的證書ID}" 
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn: "on"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-alpn-policy: "HTTP1Only" 
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 80
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

服務(wù)器組的典型操作

設(shè)置調(diào)度策略

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler

描述

默認(rèn)值

支持的CCM版本

調(diào)度算法。取值:

  • wrr(默認(rèn)值):加權(quán)輪詢,權(quán)重值越高的服務(wù)器,被輪詢到的概率也越高。

  • rr:輪詢,按照訪問順序依次將外部請(qǐng)求分發(fā)到服務(wù)器。

  • sch:源IP哈希,相同的源地址會(huì)調(diào)度到相同的服務(wù)器。

  • tch:四元組哈希,基于四元組(源IP、目的IP、源端口和目的端口)的一致性哈希,相同的流會(huì)調(diào)度到相同的服務(wù)器。

  • wlc:加權(quán)最小連接數(shù),除了根據(jù)每臺(tái)后端服務(wù)器設(shè)定的權(quán)重值來進(jìn)行輪詢,同時(shí)還考慮后端服務(wù)器的實(shí)際負(fù)載(即連接數(shù))。當(dāng)權(quán)重值相同時(shí),當(dāng)前連接數(shù)越小的后端服務(wù)器被輪詢到的概率也越高。

關(guān)于該選項(xiàng)的更多取值,請(qǐng)參見CreateServerGroup - 創(chuàng)建服務(wù)器組API中的Scheduler字段。

wrr

v2.5.0及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler: "sch"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

設(shè)置連接優(yōu)雅中斷

Annotation:多個(gè),如下表所示。

注解

描述

默認(rèn)值

支持的CCM版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain

是否開啟連接優(yōu)雅中斷。取值:

  • on:開啟。

  • off:關(guān)閉。

off

v2.5.0及以上版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout

設(shè)置連接優(yōu)雅中斷超時(shí)時(shí)間。單位:秒。取值范圍[10, 900]。

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    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:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

設(shè)置客戶端地址保持

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip

描述

默認(rèn)值

支持的CCM版本

是否開啟客戶端地址保持功能。取值:

  • on:開啟。

  • off:關(guān)閉。

off

v2.5.0及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip: "on"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

設(shè)置TCP類型的健康檢查

Annotation:多個(gè),如下表所示。設(shè)置TCP類型的健康檢查,以下所有Annotation必選。TCP端口默認(rèn)開啟健康檢查。

注解

描述

默認(rèn)值

支持的CCM版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag

是否開啟健康檢查,取值:

  • on:開啟。

  • off:關(guān)閉。

on

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type

健康檢查協(xié)議。取值:

  • tcp

  • http

tcp

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port

健康檢查的服務(wù)器端口。取值范圍[0, 65535]。默認(rèn)值:0,表示使用服務(wù)器的端口進(jìn)行健康檢查。

0

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout

健康檢查響應(yīng)的最大超時(shí)時(shí)間。單位:秒。取值范圍[1, 300]。

5

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold

健康檢查連續(xù)成功多少次后,將服務(wù)器的健康檢查狀態(tài)由失敗判定為成功。取值范圍[2, 10]。

2

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold

健康檢查連續(xù)失敗多少次后,將服務(wù)器的健康檢查狀態(tài)由成功判定為失敗。取值范圍[2, 10]。

2

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval

健康檢查的時(shí)間間隔。單位:秒。取值范圍[1, 50]。

10

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag: "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: "5"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

設(shè)置HTTP類型的健康檢查

Annotation:多個(gè),如下表所示。設(shè)置TCP類型的健康檢查,以下所有Annotation必選。TCP端口默認(rèn)開啟健康檢查。

注解

描述

默認(rèn)值

支持的CCM版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag

是否開啟健康檢查,取值:

  • on:開啟。

  • off:關(guān)閉。

on

v2.5.0及以上版本

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type

健康檢查協(xié)議。取值:

  • tcp

  • http

tcp

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri

健康檢查路徑。長度為1~80個(gè)字符,只能使用字母、數(shù)字、字符。 必須以正斜線(/)開頭。詳細(xì)信息請(qǐng)參見CreateServerGroup

說明

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-typeHTTP時(shí),該參數(shù)生效。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain

用于健康檢查的域名。取值:

  • $SERVER_IP:使用后端服務(wù)器內(nèi)網(wǎng)IP

  • domain:指定特定域名。長度限制1~80個(gè)字符,只能使用小寫字母、數(shù)字、短劃線(-)、半角句號(hào)(.)。

說明

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-typeHTTP時(shí),該參數(shù)生效。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port

健康檢查的服務(wù)器端口。取值范圍[0, 65535]。默認(rèn)值:0,表示使用服務(wù)器的端口進(jìn)行健康檢查。

0

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout

健康檢查響應(yīng)的最大超時(shí)時(shí)間。單位:秒。取值范圍[1, 300]。

5

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold

健康檢查連續(xù)成功多少次后,將服務(wù)器的健康檢查狀態(tài)由失敗判定為成功。取值范圍[2, 10]。

2

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold

健康檢查連續(xù)失敗多少次后,將服務(wù)器的健康檢查狀態(tài)由成功判定為失敗。取值范圍[2, 10]。

2

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval

健康檢查的時(shí)間間隔。單位:秒。取值范圍[1, 50]。

10

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method

健康檢查方法。取值:

  • GET

  • HEAD

說明

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-typeHTTP時(shí),該參數(shù)生效。

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    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-health-check-domain: "www.test.com"
    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-connect-timeout: "10"
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval: "5"
    # 設(shè)置健康檢查方法,該Annotation可選。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method: "head"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

設(shè)置服務(wù)器組類型

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type

描述

默認(rèn)值

支持的CCM版本

設(shè)置服務(wù)器組類型。取值:

  • Ip:IP地址類型,支持直接添加IP地址類型的后端服務(wù)器。

  • Instance(默認(rèn)值):服務(wù)器類型,支持添加ECS、ENI類型的實(shí)例。

關(guān)于NLB服務(wù)器組分類及說明,請(qǐng)參見NLB服務(wù)器組

Instance

v2.8.0及以上版本

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps: "${zone-A}:${vsw-A},${zone-B}:${vsw-B}" # 例如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321。
    service.beta.kubernetes.io/alibaba-cloud-loadbalancer-server-group-type: "Ip"
  name: nginx
  namespace: default
spec:
  externalTrafficPolicy: Local
  ports:
  - name: tcp
    port: 80
    protocol: TCP
    targetPort: 80
  - name: https
    port: 443
    protocol: TCP
    targetPort: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

復(fù)用已有服務(wù)器組

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-vgroup-port

支持復(fù)用已有虛擬服務(wù)器組,僅在復(fù)用已有NLB場(chǎng)景下生效。具體的使用示例,請(qǐng)參見通過復(fù)用已有負(fù)載均衡實(shí)現(xiàn)跨集群部署服務(wù)

設(shè)置Service接收流量的權(quán)重

Annotationservice.beta.kubernetes.io/alibaba-cloud-loadbalancer-weight

在多個(gè)Service復(fù)用同一個(gè)NLB的場(chǎng)景下,支持通過此Annotation設(shè)置當(dāng)前Service接收流量的權(quán)重。該Annotation僅在復(fù)用已有服務(wù)器組場(chǎng)景下生效。具體的使用示例,請(qǐng)參見通過復(fù)用已有負(fù)載均衡實(shí)現(xiàn)跨集群部署服務(wù)