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

通過Annotation配置網絡型負載均衡NLB

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

索引

主要內容

跳轉鏈接

注意事項

NLB的典型操作

創建公網類型的NLB

創建私網類型的NLB

指定負載均衡名稱

指定負載均衡所屬的資源組

創建雙棧類型的NLB

為負載均衡添加額外標簽

使用已有的負載均衡

綁定共享帶寬包

開啟刪除保護

開啟配置修改保護

指定IPv6公私網類型

監聽的典型操作

設置監聽安全組

為監聽同時配置TCP及UDP協議

創建TCP類型監聽

創建UDP類型監聽

創建TCPSSL類型監聽

開啟雙向認證

設置TLS安全策略

設置ProxyProtocol

ProxyProtocol攜帶額外信息

設置監聽每秒新建連接限速值

設置監聽連接空閑超時時間

服務器組的典型操作

設置調度策略

設置連接優雅中斷

設置客戶端地址保持

設置TCP類型的健康檢查

設置HTTP類型的健康檢查

設置服務器組類型

注意事項

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

  • Service中spec.loadBalancerClass需要指定為alibabacloud.com/nlb。如不指定,則默認創建什么是傳統型負載均衡CLB

  • Service一旦創建后spec.loadBalancerClass不支持更改,CLB及NLB資源無法相互轉換。

  • 暫不支持通過容器服務控制臺管理NLB,請通過kubectl命令操作。

NLB的典型操作

創建公網類型的NLB

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

描述

默認值

支持的CCM版本

指定NLB的可用區。

NLB支持的地域及可用區可以登錄NLB控制臺查看,至少需要兩個可用區。多個可用區間用逗號分隔,例如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

創建私網類型的NLB

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

描述

默認值

支持的CCM版本

指定NLB為私網類型。可以更改此Annotation取值,實現NLB的公私網轉變。取值:

  • internet:公網NLB。

  • intranet:私網NLB。

NLB支持的地域及可用區可以登錄NLB控制臺查看,至少需要兩個可用區。多個可用區間用逗號分隔,例如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

指定負載均衡名稱

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

描述

默認值

支持的CCM版本

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

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

指定負載均衡所屬的資源組

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

描述

默認值

支持的CCM版本

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

可以登錄阿里云資源管理平臺查詢資源組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

創建雙棧類型的NLB

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

描述

默認值

支持的CCM版本

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

  • ipv4:IPv4類型。

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

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

    • 生成的IPv6地址僅可在支持IPv6的環境中訪問。

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

為負載均衡添加額外標簽

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

描述

默認值

支持的CCM版本

支持額外添加Tag標簽。多個Tag間使用英文半角逗號(,)分隔,例如k1=v1,k2=v2

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

使用已有的負載均衡

Annotation:多個,如下表所示。

Annotation

描述

默認值

支持的CCM版本

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

添加已有負載均衡的ID。

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

決定是否根據Service同步NLB監聽配置。取值:

  • true:CCM會根據Service配置,創建、更新、刪除NLB監聽。

  • false:CCM不會對NLB監聽做任何處理。

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

描述

默認值

支持的CCM版本

綁定的共享帶寬包ID。

您可登錄VPC控制臺查詢共享帶寬包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

開啟刪除保護

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

描述

默認值

支持的CCM版本

是否開啟NLB刪除保護。取值:

  • on

  • off

重要

對于LoadBalancer類型的Service創建的負載均衡,如果手動在NLB控制臺開啟了刪除保護,仍可通過kubectl delete svc {your-svc-name}的方式刪除Service關聯的負載均衡。

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

開啟配置修改保護

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

描述

默認值

支持的CCM版本

是否開啟NLB配置修改保護。取值:

  • 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公私網類型

Annotation:多個,如下表所示。

Annotation

描述

默認值

支持的CCM版本

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

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

  • ipv4:IPv4類型。

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

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

    • 生成的IPv6地址僅可在支持IPv6的環境中訪問。

ipv4

v2.5.0及以上版本

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

指定NLB的IPv6網絡類型。取值:

  • intranet:私網IPv6

  • internet:公網IPv6

說明

啟用IPv6公網時,NLB實例所在的VPC下需要存在IPv6網關。詳情請見創建和管理IPv6網關

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網絡類型為公網
  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-security-group-ids

描述

默認值

支持的CCM版本

設置監聽安全組。多個值之間使用英文半角逗號(,)分隔,例如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" # 多個安全組使用逗號分隔。
  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

為監聽同時配置TCP及UDP協議

描述

默認值

支持的CCM版本

該功能要求Kubernetes集群版本不低于v1.24。關于如何升級集群版本,請參見升級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

創建TCP類型監聽

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

創建UDP類型監聽

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

創建TCPSSL類型監聽

Annotation:多個,如下表所示。

Annotation

描述

默認值

支持的CCM版本

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

設置監聽的協議類型。多個值之間由逗號分隔,例如TCP:80,TCPSSL:443

v2.5.0及以上版本

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

服務器證書ID。可以登錄數字證書管理服務控制臺創建并查看。

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"
    # 如集群為中國內地Region時,組合后的證書ID為${your-cert-id}-cn-hangzhou。
    # 如集群為除中國內地以外的其他Region時,組合后的證書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: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

開啟雙向認證

Annotation:多個,如下表所示。

注解

描述

默認值

支持的CCM版本

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

設置監聽的協議類型。多個值之間由逗號分隔,例如TCP:80,TCPSSL:443

v2.5.0及以上版本

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

服務器證書ID。可以登錄數字證書管理服務控制臺查看。

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

CA證書ID,可以登錄數字證書管理服務控制臺查看。

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

是否啟動雙向認證。取值:

  • on:啟動。

  • off:關閉。

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"   
    # 如集群為中國內地Region時,組合后的證書ID為${your-cert-id}-cn-hangzhou。
    # 如集群為除中國內地以外的其他Region時,組合后的證書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: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

設置TLS安全策略

Annotation:多個,如下表所示。

注解

描述

默認值

支持的CCM版本

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

設置監聽的協議類型。多個值之間由逗號分隔,例如TCP:80,TCPSSL:443

v2.5.0及以上版本

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

服務器證書ID。可以登錄數字證書管理服務控制臺查看。

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

安全策略ID。支持系統安全策略和自定義安全策略。取值:

  • 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"
    # 如集群為中國內地Region時,組合后的證書ID為${your-cert-id}-cn-hangzhou。
    # 如集群為除中國內地以外的其他Region時,組合后的證書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: 443
  selector:
    app: nginx
  loadBalancerClass: "alibabacloud.com/nlb"
  type: LoadBalancer

設置ProxyProtocol

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

描述

默認值

支持的CCM版本

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

  • on:開啟。

  • off:關閉。

重要

啟用ProxyProtocol之前,請檢查后端服務是否已開啟Proxy Protocol v2。如未開啟,會導致訪問不通,請謹慎配置。

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:多個,如下表所示。

Annotation

描述

默認值

支持的CCM版本

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

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

  • on:開啟。

  • off:關閉。

重要

啟用ProxyProtocol之前,請檢查后端服務是否已開啟Proxy Protocol v2。如未開啟,會導致訪問不通,請謹慎配置。

off

v2.5.0及以上版本

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

是否開啟通過 Proxy Protocol 協議攜帶 VpcId 到后端服務器。取值:

  • on:開啟。

  • off:關閉。

off

v2.9.1及以上版本

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

是否開啟通過 Proxy Protocol 協議攜帶 PrivateLinkEpId 到后端服務器。取值:

  • on:開啟。

  • off:關閉。

off

v2.9.1及以上版本

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

是否開啟通過 Proxy Protocol 協議攜帶 PrivateLinkEpsId 到后端服務器。取值:

  • on:開啟。

  • off:關閉。

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

設置監聽每秒新建連接限速值

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

描述

默認值

支持的CCM版本

網絡型負載均衡實例每秒新建連接限速值。取值范圍[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

設置監聽連接空閑超時時間

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

描述

默認值

支持的CCM版本

連接空閑超時時間。單位:秒。取值范圍[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

服務器組的典型操作

設置調度策略

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

描述

默認值

支持的CCM版本

調度算法。取值:

  • wrr(默認值):加權輪詢,權重值越高的服務器,被輪詢到的概率也越高。

  • rr:輪詢,按照訪問順序依次將外部請求分發到服務器。

  • sch:源IP哈希,相同的源地址會調度到相同的服務器。

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

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

設置連接優雅中斷

Annotation:多個,如下表所示。

注解

描述

默認值

支持的CCM版本

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

是否開啟連接優雅中斷。取值:

  • on:開啟。

  • off:關閉。

off

v2.5.0及以上版本

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

設置連接優雅中斷超時時間。單位:秒。取值范圍[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

設置客戶端地址保持

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

描述

默認值

支持的CCM版本

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

  • on:開啟。

  • off:關閉。

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

設置TCP類型的健康檢查

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

注解

描述

默認值

支持的CCM版本

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

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

  • on:開啟。

  • off:關閉。

on

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

健康檢查協議。取值:

  • tcp

  • http

tcp

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

健康檢查的服務器端口。取值范圍[0, 65535]。默認值:0,表示使用服務器的端口進行健康檢查。

0

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

健康檢查響應的最大超時時間。單位:秒。取值范圍[1, 300]。

5

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

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

2

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

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

2

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

健康檢查的時間間隔。單位:秒。取值范圍[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

設置HTTP類型的健康檢查

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

注解

描述

默認值

支持的CCM版本

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

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

  • on:開啟。

  • off:關閉。

on

v2.5.0及以上版本

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

健康檢查協議。取值:

  • tcp

  • http

tcp

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

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

說明

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

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

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

  • $_ip:使用服務器內網IP。

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

說明

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

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

健康檢查的服務器端口。取值范圍[0, 65535]。默認值:0,表示使用服務器的端口進行健康檢查。

0

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

健康檢查響應的最大超時時間。單位:秒。取值范圍[1, 300]。

5

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

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

2

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

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

2

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

健康檢查的時間間隔。單位:秒。取值范圍[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時,該參數生效。

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"
    # 設置健康檢查方法,該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

設置服務器組類型

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

描述

默認值

支持的CCM版本

設置服務器組類型。取值:

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

  • Instance(默認值):服務器類型,支持添加ECS、ENI類型的實例。

關于NLB服務器組分類及說明,請參見NLB服務器組概述

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