详情页标题前

阿里云负载均衡通过Annotation配置网络型负载均衡NLB-云淘科技

详情页1

通过Service YAML文件中的Annotation(注解),可以实现丰富的负载均衡功能。网络型负载均衡NLB(Network Load Balancer)是阿里云面向万物互联时代推出的新一代四层负载均衡,支持超高性能和自动弹性能力。本文从NLB、监听和服务器组三种资源维度介绍通过注解可以对NLB进行的常见配置操作。

背景信息

关于NLB的更多信息,请参见
什么是网络型负载均衡NLB。

注意事项

  • Kubernetes版本不低于v1.24且CCM版本不低于v2.5.0。
  • Service中spec.loadBalancerClass需要指定为alibabacloud.com/nlb, 如不指定则默认创建CLB。
  • Service一旦创建后spec.loadBalancerClass不支持更改,CLB及NLB资源无法相互转换。
  • 暂不支持通过容器服务控制台管理NLB,请通过kubectl命令操作。

NLB

创建公网类型的NLB

  • NLB支持的地域及可用区可以登录NLB控制台查看,至少需要两个可用区。
  • 多个可用区间用逗号分隔,如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
apiVersion: v1kind: Servicemetadata:  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: defaultspec:  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

  • NLB支持的地域及可用区可以登录NLB控制台查看,至少需要两个可用区。
  • 多个可用区间用逗号分隔,如cn-hangzhou-k:vsw-i123456,cn-hangzhou-j:vsw-j654321
  • 可以更改service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type取值,实现NLB的公私网转变。
apiVersion: v1kind: Servicemetadata:  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: defaultspec:  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名称长度为2~128个英文或中文字符,必须以大小写字母或中文开头,可包含数字、点号(.)、下划线(_)和短横线(-)。

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

指定负载均衡所属的资源组

登录
阿里云资源管理平台查询资源组ID,然后使用以下Annotation为负载均衡实例指定资源组。

说明 资源组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-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

  • 集群的kube-proxy代理模式需要是IPVS。
  • service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps中指定的两个vSwitch均需开启IPv6。
  • 创建后IP类型不可更改。
  • 生成的IPv6地址仅可在支持IPv6的环境中访问。
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

为负载均衡添加额外标签

多个Tag以逗号分隔,例如
k1=v1,k2=v2

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
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners决定是否根据Service同步NLB监听配置。取值:

  • true:CCM会根据Service配置,创建、更新、删除NLB监听。
  • false:CCM不会对NLB监听做任何处理。
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

监听

创建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类型监听

登录数字证书管理服务控制台创建并记录证书ID,然后使用如下Annotation创建一个TCPSSL类型监听。

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

开启双向认证

登录数字证书管理服务控制台查看证书ID及CA证书ID,然后使用如下Annotation为监听开启双向认证。

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安全策略

登录数字证书管理服务控制台查看证书ID,然后使用如下Annotation设置TLS安全策略。

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_2"
  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

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

设置监听每秒新建连接限速值

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

设置监听连接空闲超时时间

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

服务器组

设置调度策略

调度算法。取值:

  • wrr(默认值):加权轮询,权重值越高的服务器,被轮询到的概率也越高。
  • rr:轮询,按照访问顺序依次将外部请求分发到服务器。
  • sch:源IP哈希,相同的源地址会调度到相同的服务器。
  • tch:四元组哈希,基于四元组(源IP、目的IP、源端口和目的端口)的一致性哈希,相同的流会调度到相同的服务器。
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

设置连接优雅中断

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

设置客户端地址保持

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端口默认开启健康检查。
    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类型的健康检查。
    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

常用注解

NLB常用注解

注解 类型 描述 默认值 支持的CCM版本
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-zone-maps string 指定NLB的可用区。NLB支持的地域及可用区可以登录NLB控制台查看,至少需要两个可用区。 v2.5.0及以上版本
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-address-type string 取值:

  • internet:公网NLB。
  • intranet:私网NLB。
internet
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-name string 负载均衡实例名称。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-resource-group-id string 负载均衡所属资源组ID。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-ip-version string 协议版本。取值:

  • ipv4:IPv4类型。
  • DualStack:双栈类型。
ipv4
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-additional-resource-tags string 需要添加的Tag列表,多个标签用逗号分隔。例如:k1=v1,k2=v2
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-id string 负载均衡实例的ID。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-force-override-listeners string 是否根据Service同步NLB监听。取值:

  • true
  • false
false

监听常用注解

注解 类型 描述 默认值 支持的CCM版本
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-protocol-port string 设置监听的协议类型。多个值之间由逗号分隔,例如:TCP:80,TCPSSL:443 v2.5.0及以上版本
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cert-id string 服务器证书ID,可以登录数字证书管理服务控制台查看。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert-id string CA证书ID,可以登录数字证书管理服务控制台查看。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cacert string 是否启动双向认证。取值:

  • true:启动。
  • false:关闭。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-tls-cipher-policy string 安全策略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
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-proxy-protocol string 是否开启通过Proxy Protocol协议携带客户端源地址到服务器。取值:

  • true:开启。
  • false:关闭。
false
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-cps string 网络型负载均衡实例每秒新建连接限速值。取值范围:0~1000000。0表示不限速。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-idle-timeout string 连接空闲超时时间。单位:秒。取值范围:10~900。 900

服务器组常用注解

注解 类型 描述 默认值 支持的CCM版本
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-scheduler string 调度算法。取值:

  • wrr:加权轮询,权重值越高的服务器,被轮询到的概率也越高。
  • rr:轮询,按照访问顺序依次将外部请求分发到服务器。
  • sch:源IP哈希:相同的源地址会调度到相同的服务器。
  • tch:四元组哈希,基于四元组(源IP、目的IP、源端口和目的端口)的一致性哈希,相同的流会调度到相同的服务器。
wrr v2.5.0及以上版本
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain string 是否开启连接优雅中断。取值:

  • true:开启。
  • false:关闭。
false
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-connection-drain-timeout string 设置连接优雅中断超时时间。单位:秒。取值范围:10~900。
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-preserve-client-ip string 是否开启客户端地址保持功能。取值:

  • true:开启。
  • false:关闭。
false
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-flag string 是否开启健康检查,取值:

  • true:开启。
  • false:关闭。
true
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type string 健康检查协议。取值:

  • tcp
  • http
tcp
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-port string
  • 健康检查的服务器的端口。
  • 范围:0~65535。
  • 默认值:0,表示使用服务器的端口进行健康检查。
0
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-connect-timeout string
  • 健康检查响应的最大超时时间。
  • 单位:秒。取值范围:1~300。
5
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-healthy-threshold string 健康检查连续成功多少次后,将服务器的健康检查状态由失败判定为成功。取值范围:2~10。 2
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-unhealthy-threshold string 健康检查连续失败多少次后,将服务器的健康检查状态由成功判定为失败。取值范围:2~10。 2
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-interval string 健康检查的时间间隔。单位:秒。取值范围:5~50。 10
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-uri string 健康检查路径。长度为1~80个字符,只能使用字母、数字、字符。 必须以正斜线(/)开头。详细信息请参见CreateServerGroup。

说明
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type
HTTP时,该参数生效。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-domain string 用于健康检查的域名。取值:

  • $_ip:使用服务器内网IP。
  • domain:指定特定域名。长度限制1~80个字符,只能使用小写字母、数字、短划线(-)、半角句号(.)。

说明
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type
HTTP时,该参数生效。

service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-method string 健康检查方法,取值:GET或HEAD。

说明
service.beta.kubernetes.io/alibaba-cloud-loadbalancer-health-check-type
HTTP时,该参数生效。

GET

内容没看懂? 不太想学习?想快速解决? 有偿解决: 联系专家

阿里云企业补贴进行中: 马上申请

腾讯云限时活动1折起,即将结束: 马上收藏

同尘科技为腾讯云授权服务中心。

购买腾讯云产品享受折上折,更有现金返利:同意关联,立享优惠

转转请注明出处:https://www.yunxiaoer.com/170198.html

(0)
上一篇 2023年12月10日
下一篇 2023年12月10日
详情页2

相关推荐

  • 阿里云负载均衡借助RAM角色实现跨云账号访问负载均衡资源-云淘科技

    使用企业A的阿里云账号创建RAM角色并为该角色授权,并允许企业B的RAM用户扮演该角色,即可实现企业B的RAM用户访问企业A的阿里云负载均衡资源的目的。 背景信息 假设企业A购买了多种云资源来开展业务,并需要授权企业B代为开展部分业务,则可以利用RAM角色来实现此目的。RAM角色是一种虚拟用户,没有确定的身份认证密钥,需要被一个受信的实体用户扮演才能正常使用…

    2023年12月10日
  • 阿里云负载均衡NLB实例变配-云淘科技

    本文为您介绍NLB实例更新可用区、变更可用区状态和调整公网带宽峰值的变配规则和操作。 更新实例可用区 编辑可用区/子网的变配限制、生效时间、计费影响等相关信息请参见下表。 变配限制 生效时间 计费影响 适用场景 当前NLB实例可用区数量小于或等于2个时,不支持减少实例可用区。 公网NLB实例编辑可用区限制: 同一个NLB实例不同可用区分配的EIP类型需保持一…

    阿里云负载均衡 2023年12月10日
  • 阿里云负载均衡快速入门-云淘科技

    如果您是初次使用负载均衡SLB(Server Load Balancer)产品,您可以根据本文内容快速了解并使用本产品。 通常情况下,您可以通过以下几个步骤快速实现负载均衡服务的应用,详细操作可参见对应子产品的快速入门文档。 快速入门索引 说明 负载均衡系列各产品对比可参考负载均衡SLB产品家族介绍。 如果您需要使用七层负载均衡,推荐您使用应用型负载均衡AL…

    阿里云负载均衡 2023年12月10日
  • 信息流广告,信息流部分建议宽度830px,只针对默认列表样式,顺序随机
  • 阿里云负载均衡使用服务关联角色-云淘科技

    使用负载均衡访问其他云资源时,负载均衡会在获得您的授权后,创建一个对应的服务关联角色,用于允许负载均衡访问其他云资源。本文为您分别介绍ALB、NLB和CLB产品的服务关联角色。 多数情况下,在您使用特定功能时,关联的云服务会在您的授权下自动创建或删除服务关联角色,不需要您主动创建或删除。通过服务关联角色可以更好地配置云服务正常操作所必需的权限,避免误操作带来…

    阿里云负载均衡 2023年12月10日
  • 阿里云容器服务ACKECI Pod Annotation-云淘科技

    在Kubernetes集群中创建ECI类型的Pod(即ECI实例)时,为充分使用ECI提供的功能,在不改变Kubernetes语义的前提下,您可以根据需求为Pod添加Annotation。 本文为您介绍ECI实例支持的和追加的Annotation及其配置示例。 ECI Pod支持的Annotation 创建ECI Pod时,支持添加的Annotation如下…

    阿里云容器服务 2023年12月10日

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
本站为广大会员提供阿里云、腾讯云、华为云、百度云等一线大厂的购买,续费优惠,保证底价,买贵退差。