You need to enable JavaScript to run this app.
导航
使用 Annotation 配置负载均衡服务
最近更新时间:2024.10.31 10:23:04首次发布时间:2022.02.08 17:53:49

服务(Serivce)支持通过注解(Annotation)实现更加丰富的四层负载均衡(CLB)能力。本文主要介绍使用 Annotation 配置负载均衡服务的配置方法。

注意

创建服务

对接已有 CLB 实例

使用如下 YAML 配置,创建服务并对接已有的负载均衡实例。

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/volcengine-loadbalancer-id: "clb-mim02n8g5kw05smt1b******"
    # 必填,已有负载均衡实例的 ID
  name: clb-service # 服务的名称
  namespace: default # 服务所属的命名空间
spec:
  externalTrafficPolicy: Cluster
  selector:
    app: nginx # 通过标签选择器将服务与后端容器组(Pod)绑定
  ports:
  - name: test # 端口映射策略命名
    port: 80 # 服务端口
    protocol: TCP  # 端口通信协议 TCP/UDP
    targetPort: 80 # 容器端口
  type: LoadBalancer # 服务的类型

Annotation 说明如下表所示。

Key类型是否必须描述默认值是否支持修改
service.beta.kubernetes.io/volcengine-loadbalancer-idString已存在的负载均衡实例 ID。

新建 CLB 实例

使用如下 YAML 配置,创建服务并同时创建新的负载均衡实例。

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/volcengine-loadbalancer-name: "clb-demo"
    # 非必填,新创建的负载均衡实例名称
    service.beta.kubernetes.io/volcengine-loadbalancer-subnet-id: "subnet-mizw4xqzpssg5smt1b******"
    # 必填,负载均衡实例所属的子网 ID
    service.beta.kubernetes.io/volcengine-loadbalancer-address-type: "PUBLIC"
    # 非必填,负载均衡实例的网络类型。不设置时,默认网络类型为 PUBLIC
    service.beta.kubernetes.io/volcengine-loadbalancer-isp-type: "BGP"
    # 非必填,负载均衡实例的线路类型
    service.beta.kubernetes.io/volcengine-loadbalancer-billing-type: "2"
    # 非必填,负载均衡实例计费类型
    service.beta.kubernetes.io/volcengine-loadbalancer-eip-billing-type: "3"
    # 非必填,公网 IP(EIP)计费类型
    service.beta.kubernetes.io/volcengine-loadbalancer-bandwidth: "25" 
    # 非必填,公网类型负载均衡实例需要指定公网 IP(EIP)带宽峰值。  
    service.beta.kubernetes.io/volcengine-loadbalancer-ip-version: "ipv4"
    # 非必填,负载均衡实例的 IP 地址类型,目前仅支持 IPv4
    service.beta.kubernetes.io/volcengine-loadbalancer-spec: "small_1"
    # 非必填,负载均衡实例的规格
    service.beta.kubernetes.io/volcengine-loadbalancer-sync-fields: "spec"
    # 更新 CLB 实例规格时必填,填写该字段为 spec 时,会根据 loadbalancer-spec 字段更新 CLB 的实例规格
    service.beta.kubernetes.io/volcengine-loadbalancer-master-zone-id: "cn-beijing-a"
    # 非必填,负载均衡实例的主可用区 ID
    service.beta.kubernetes.io/volcengine-loadbalancer-slave-zone-id: "cn-beijing-b"
    # 非必填,负载均衡实例的备可用区 ID
    service.beta.kubernetes.io/volcengine-loadbalancer-modification-protection-status: "ConsoleProtection"
    # 非必填,负载均衡实例的修改保护功能
    service.beta.kubernetes.io/volcengine-loadbalancer-eip-BandwidthPackageId: "bwp-2d63yyj3ki4u858oz***" 
    # 非必填,共享带宽资源包 ID
    service.beta.kubernetes.io/volcengine-loadbalancer-eni-address-number: "2"
    # 非必填,配置负载均衡实例的私网 IPv4 地址数量
    service.beta.kubernetes.io/volcengine-loadbalancer-eni-address: "192.168.0.1" 
    # 非必填,配置负载均衡实例的私网 IPv4 地址,该地址必须包含在所选子网的 IPv4 网段中,且未被占用
  name: clb-service # 服务的名称
  namespace: default # 服务所属的命名空间
spec:
  externalTrafficPolicy: Cluster
  selector:
    app: nginx # 通过标签选择器将服务与后端容器组(Pod)绑定
  ports:
  - name: test # 端口映射策略命名
    port: 80 # 服务端口
    protocol: TCP # 端口通信协议,支持 TCP/UDP
    targetPort: 80 # 容器端口
  type: LoadBalancer # 服务的类型

Annotation 说明如下表所示。

Key类型是否必须描述默认值是否支持修改
service.beta.kubernetes.io/volcengine-loadbalancer-nameString创建的负载均衡实例名称,不指定则自动生成名称。
service.beta.kubernetes.io/volcengine-loadbalancer-subnet-idString负载均衡实例所属的子网 ID。

service.beta.kubernetes.io/volcengine-loadbalancer-address-type

String

负载均衡实例的网络访问类型。取值:

  • PUBLIC:公网类型的负载均衡实例。
  • PRIVATE:私网类型的负载均衡实例。

PUBLIC

service.beta.kubernetes.io/volcengine-loadbalancer-isp-type

String

负载均衡实例的线路类型。包括:BGP、SingleLine_BGP、Static_BGP、Fusion_BGP、ChinaMobile、ChinaTelecom、ChinaUnicom、ChinaMobile_Value、ChinaUnicom_Value 和 ChinaTelecom_Value。详细参数解释,请参见 EIP 产品文档

注意

除 BGP 外,其他线路类型均为 EIP 产品的邀测功能,如需使用,请 提交工单 或联系客户经理申请。

BGP

service.beta.kubernetes.io/volcengine-loadbalancer-billing-type

Integer

负载均衡实例的计费类型。取值:

  • 2:按量计费-按规格计费。指定实例规格,并按照实例的使用时长计费。
  • 3:按量计费-按使用量计费。无需指定实例规格,按照实例实际消耗的性能容量计费。

注意

  • 按量计费-按使用量计费 为负载均衡产品的邀测功能,如需使用,请 提交工单 或联系客户经理申请。
  • 当负载均衡选择 按量计费-按使用量计费 类型时,无需配置实例规格类型,即loadbalancer-spec参数。

2

service.beta.kubernetes.io/volcengine-loadbalancer-eip-billing-type

Integer

公网 IP(EIP)计费类型。取值:

  • 2:按量计费-按带宽上限,指定带宽上限后,将按照使用时长计费,与实际流量无关。
  • 3:按量计费-按实际流量,指定带宽上限后,将按照实际使用的出公网流量计费,与使用时长无关。

3

service.beta.kubernetes.io/volcengine-loadbalancer-bandwidth

Integer

负载均衡实例的公网带宽峰值,单位为 Mbps,取值:

  • eip-billing-type为 2 时,取值范围为 1~500。
  • eip-billing-type为 3 时,取值范围为 1~200。

10

service.beta.kubernetes.io/volcengine-loadbalancer-ip-versionString负载均衡实例的 IP 地址类型。当前仅支持 ipv4ipv4

service.beta.kubernetes.io/volcengine-loadbalancer-spec

String

负载均衡实例的规格类型。取值:

  • small_1:小型I
  • small_2:小型II
  • medium_1:中型I
  • medium_2:中型II
  • large_1:大型I
  • large_2:大型II

注意

  • 负载均衡实例规格类型的详细说明,请参见 产品类型与规格
  • loadbalancer-billing-type配置为3,即负载均衡实例采用 按量计费-按使用量计费 类型时,不支持配置本参数。

small_1

service.beta.kubernetes.io/volcengine-loadbalancer-sync-fields

String

需要更新 CLB 实例的规格时,必选

更新 YAML 时,是否感知 loadbalancer-spec字段的变更,并更新 CLB 实例。取值:

  • spec:感知loadbalancer-spec字段的变更,并更新 CLB 实例的规格。

service.beta.kubernetes.io/volcengine-loadbalancer-master-zone-id

String

负载均衡实例的主可用区 ID。

  • 取值不能与slave-zone-id参数取值相同。
  • 不配置该参数或该参数为空时,默认分配子网所在可用区为主可用区。

说明

均衡负载在各地域支持的可用区情况以及可用区 ID,请参见 地域与可用区

service.beta.kubernetes.io/volcengine-loadbalancer-slave-zone-id

String

负载均衡实例的备可用区 ID。

  • 取值不能与master-zone-id参数取值相同。
  • 如果配置该参数,则参数master-zone-id必须一并配置,否则会报错。
  • 不配置该参数或该参数为空时,根据地域可用区部署情况按照如下逻辑处理:
    • 指定地域为单可用区部署时,该参数默认为空,创建单可用区负载均衡实例。
    • 指定地域为多可用区部署时,默认根据指定地域支持的可用区随机分配备可用区。

service.beta.kubernetes.io/volcengine-loadbalancer-modification-protection-status

String

负载均衡实例的修改保护功能,取值:

  • NonProtection:不开启控制台修改保护功能,表示允许通过控制台修改实例或删除实例。
  • ConsoleProtection:开启控制台修改保护功能,表示禁止通过控制台修改实例或删除实例。
  • 不配置该参数或该参数为空时,默认为空,表示开启控制台修改保护功能。

service.beta.kubernetes.io/volcengine-loadbalancer-eip-BandwidthPackageId

String

共享带宽资源包 ID。

注意

  • 仅在service.beta.kubernetes.io/volcengine-loadbalancer-address-type=PUBLIC时生效。
  • 生效后原先的付费方式(按流量计费或按固定带宽计费)会被覆盖。

service.beta.kubernetes.io/volcengine-loadbalancer-eni-address-number

String

配置负载均衡实例的私网 IPv4 地址数量。

说明

  • 仅私网实例支持使用此参数。
  • volcengine-loadbalancer-eni-address参数不能同时配置。

service.beta.kubernetes.io/volcengine-loadbalancer-eni-address

String

配置负载均衡实例的私网 IPv4 地址,该地址必须包含在所选子网的 IPv4 网段中,且未被占用。

说明

volcengine-loadbalancer-eni-address-number参数不能同时配置。

新建 CLB 实例并对接 VCI 工作负载

使用如下 YAML 配置,创建一个新的负载均衡服务并关联以弹性容器实例(VCI)方式部署的工作负载。

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/volcengine-loadbalancer-name: "clb-demo"
    # 非必填,新创建的负载均衡实例名称
    service.beta.kubernetes.io/volcengine-loadbalancer-subnet-id: "subnet-mizw4xqzpssg5smt1b******"   
    # 必填,负载均衡实例所属的子网 ID
    service.beta.kubernetes.io/volcengine-loadbalancer-pass-through: "true"
    # 必填,开启负载均衡器直通 Pod 模式。关联 VCI 工作负载时必须开启
  name: clb-service # 服务的名称
  namespace: default # 服务所属的命名空间
spec:
  externalTrafficPolicy: Cluster
  selector:
    app: nginx # 通过标签选择器将服务与后端容器组(Pod)绑定
  ports:
  - name: test # 端口映射策略命名
    port: 80 # 服务端口
    protocol: TCP # 端口通信协议,支持 TCP/UDP
    targetPort: 80 # 容器端口
  type: LoadBalancer # 服务的类型

Annotation 说明如下表所示。

Key类型是否必须描述默认值是否支持修改
service.beta.kubernetes.io/volcengine-loadbalancer-nameString创建的负载均衡实例名称,不指定则自动生成名称。
service.beta.kubernetes.io/volcengine-loadbalancer-subnet-idString负载均衡实例所属的子网 ID。

service.beta.kubernetes.io/volcengine-loadbalancer-pass-through

Boolean

是否开启负载均衡器直通 Pod 模式。取值:

  • true:开启,直接关联 Pod 作为负载均衡器的后端。
  • false:不开启。

false

注意

  • 仅在 VPC-CNI 网络模型的集群中支持配置为true。修改该字段会导致流量断流,请谨慎操作。
  • 负载均衡服务关联基于弹性容器实例(VCI)方式部署的工作负载时,必须开启直通 Pod 模式,否则会导致服务不可用。

监听器配置

基础配置

说明

监听器支持在对接已有 CLB 实例时配置,也支持在创建新的 CLB 实例时配置。本例以对接已有 CLB 实例为例。

负载均衡服务支持通过 Annotation 配置 CLB 实例的监听器,示例和说明如下:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/volcengine-loadbalancer-id: "clb-mim02n8g5kw05smt1b******"
    # 必填,已有负载均衡实例的 ID
    service.beta.kubernetes.io/volcengine-loadbalancer-scheduler: "wrr"
    # 非必填,监听器的调度算法
    service.beta.kubernetes.io/volcengine-loadbalancer-established-timeout: 100
    # 非必填,监听器的超时时间
    service.beta.kubernetes.io/volcengine-loadbalancer-listener-bandwidth: 10
    # 非必填,监听器的带宽峰值
    service.beta.kubernetes.io/volcengine-loadbalancer-persistence-timeout: 3600
    # 非必填,监听器的会话保持功能
    service.beta.kubernetes.io/volcengine-loadbalancer-drain-timeout: 500
    # 非必填,监听器的连接优雅中断
  name: clb-service # 服务的名称
  namespace: default # 服务所属的命名空间
spec:
  externalTrafficPolicy: Cluster
  selector:
    app: nginx # 通过标签选择器将服务与后端容器组(Pod)绑定
  ports:
  - name: test # 端口映射策略命名
    port: 80 # 服务端口
    protocol: TCP  # 端口通信协议 TCP/UDP
    targetPort: 80 # 容器端口
  type: LoadBalancer # 服务的类型

Annotation 说明如下表所示。

Key类型是否必须描述默认值是否支持修改

service.beta.kubernetes.io/volcengine-loadbalancer-scheduler

String

配置监听器的调度算法。取值:

  • wrr:加权轮询。权重值越高的后端服务器,被轮询到的次数(概率)越高。
  • wlc:加权最小连接数。将请求分发给当前连接/权重比值最小的后端服务器。
  • sh:源地址哈希。基于源 IP 地址的一致性哈希,相同的源地址会调度到相同的后端服务器。

wrr

service.beta.kubernetes.io/volcengine-loadbalancer-established-timeout

Integer

配置监听器的连接超时时间,当前仅针对 TCP 和 UDP 监听器生效。取值范围:

  • TCP 协议:10~900 秒,默认为 900 秒。
  • UDP 协议:1~300 秒,默认为 90 秒。

service.beta.kubernetes.io/volcengine-loadbalancer-listener-bandwidth

Integer

配置监听器的带宽峰值,单位为 Mbps。

  • -1:(默认值)此监听器不独占 CLB 的带宽,与其他监听器共享 CLB 实例未被独占的带宽
  • 取值范围:1~CLB 实例未被独占的带宽。 CLB 实例的规格带宽请参见 产品规格

service.beta.kubernetes.io/volcengine-loadbalancer-persistence-timeout

Integer

配置监听器的会话保持功能和超时时间。开启后,将支持基于源 IP 的会话保持能力。取值范围为 0~3600,单位为秒。其中:

  • 取值为 0 时,表示关闭监听器的会话保持功能。
  • 取值为 1~3600 时,表示开启监听器的会话保持功能,并配置超时时间。

service.beta.kubernetes.io/volcengine-loadbalancer-drain-timeout

Integer

配置监听器的连接优雅中断功能和超时时间。启用连接优雅中断后,您可以在删除后端服务器或者健康检查失败后,使现有连接在一定时间内正常传输。取值范围为 0~900,单位为秒。其中:

  • 取值为 0 时,表示关闭监听器的连接优雅中断功能。
  • 取值为 1~900 时,表示开启监听器的连接优雅中断功能,并配置超时时间。

健康检查

说明

监听器的健康检查功能支持在对接已有 CLB 实例时配置,也支持在创建新的 CLB 实例时配置。本例以对接已有 CLB 实例为例。

负载均衡服务支持通过 Annotation 配置监听器的健康检查功能,示例和说明如下:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/volcengine-loadbalancer-id: "clb-mim02n8g5kw05smt1b******"
    # 必填,已有负载均衡实例的 ID
    service.beta.kubernetes.io/volcengine-loadbalancer-health-check-flag: "on" 
    # 必填,是否开启健康检查
    service.beta.kubernetes.io/volcengine-loadbalancer-health-check-connect-timeout: "2" 
    # 非必填,等待健康检查的响应时间
    service.beta.kubernetes.io/volcengine-loadbalancer-health-check-interval: "2" 
    # 非必填,健康检查的时间间隔
    service.beta.kubernetes.io/volcengine-loadbalancer-healthy-threshold: "3" 
    # 非必填,后端服务器正常的健康检查次数
    service.beta.kubernetes.io/volcengine-loadbalancer-unhealthy-threshold: "3" 
    # 非必填,后端服务器异常的健康检查次数
    service.beta.kubernetes.io/volcengine-loadbalancer-health-check-udp-request: "healthcheckrequest"
    # 非必填,配置健康检查的请求字符串,仅监听器协议为 UDP 时支持
    service.beta.kubernetes.io/volcengine-loadbalancer-health-check-udp-expect: "ok"
    # 非必填,配置健康检查的响应字符串,仅监听器协议为 UDP 时支持
  name: clb-service # 服务的名称
  namespace: default # 服务所属的命名空间
spec:
  externalTrafficPolicy: Cluster
  selector:
    app: nginx # 通过标签选择器将服务与后端容器组(Pod)绑定
  ports:
  - name: test # 端口映射策略命名
    port: 80 # 服务端口
    protocol: TCP  # 端口通信协议 TCP/UDP
    targetPort: 80 # 容器端口
  type: LoadBalancer # 服务的类型

Annotation 说明如下表所示。

Key类型是否必须描述默认值是否支持修改

service.beta.kubernetes.io/volcengine-loadbalancer-health-check-flag

String

是否开启健康检查。取值:

  • on:开启健康检查。
  • off:不开启健康检查。

off

service.beta.kubernetes.io/volcengine-loadbalancer-health-check-interval

Integer

健康检查的时间间隔。

  • 取值范围:1~300
  • 单位:秒

2

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

Integer

健康检查的超时时间。

  • 取值范围:1~60
  • 单位:秒

2

service.beta.kubernetes.io/volcengine-loadbalancer-healthy-threshold

Integer

健康检查连续成功多少次后,将后端服务器的健康检查状态由 Fail 判定为 Success。

  • 取值范围:3~10
  • 单位:次

3

service.beta.kubernetes.io/volcengine-loadbalancer-unhealthy-threshold

Integer

健康检查连续失败多少次后,将后端服务器的健康检查状态由 Success 判定为 Fail。

  • 取值范围:3~10
  • 单位:次

3

service.beta.kubernetes.io/volcengine-loadbalancer-health-check-udp-request

String

健康检查的请求字符串,仅监听器协议为 UDP 时支持。

  • 必须与volcengine-loadbalancer-health-check-udp-expect同时配置。
  • 只允许包含字母和数字,最大长度限制为 64 个字符。

service.beta.kubernetes.io/volcengine-loadbalancer-health-check-udp-expect

String

健康检查的响应字符串,仅监听器协议为 UDP 时支持。

  • 必须与volcengine-loadbalancer-health-check-udp-request同时配置。
  • 只允许包含字母和数字,最大长度限制为 64 个字符。

访问控制

说明

监听器的访问控制功能支持在对接已有 CLB 实例时配置,也支持在创建新的 CLB 实例时配置。本例以对接已有 CLB 实例为例。

负载均衡服务支持通过 Annotation 配置监听器的访问控制功能,示例和说明如下:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/volcengine-loadbalancer-id: "clb-mim02n8g5kw05smt1b******"
    # 必填,已有负载均衡实例的 ID
    service.beta.kubernetes.io/volcengine-loadbalancer-acl-status: "on"
    # 必填,是否开启监听器的访问控制
    service.beta.kubernetes.io/volcengine-loadbalancer-acl-type: "white"
    # 必填,开启访问控制的方式(白名单、黑名单)
    service.beta.kubernetes.io/volcengine-loadbalancer-acl-id: "acl-3cj44nv0jhhxc6c6rrtet****,acl-2febxt4pu0zy85oxruw0t****"
    # 必填,监听器绑定的访问控制策略组 ID
  name: clb-service # 服务的名称
  namespace: default # 服务所属的命名空间
spec:
  externalTrafficPolicy: Cluster
  selector:
    app: nginx # 通过标签选择器将服务与后端容器组(Pod)绑定
  ports:
  - name: test # 端口映射策略命名
    port: 80 # 服务端口
    protocol: TCP  # 端口通信协议 TCP/UDP
    targetPort: 80 # 容器端口
  type: LoadBalancer # 服务的类型

Annotation 说明如下表所示。

Key类型是否必须描述默认值是否支持修改

service.beta.kubernetes.io/volcengine-loadbalancer-acl-status

String

监听器是否开启访问控制。取值:

  • off:不开启。
  • on:开启。

off

service.beta.kubernetes.io/volcengine-loadbalancer-acl-type

String

监听器开启访问控制的方式。取值:

  • black:黑名单方式。表示仅拒绝来自所选访问控制策略组中设置的 IP 地址或地址段的请求。

    说明

    如果所选策略组中没有添加 IP,则监听器会转发所有请求。

  • white:白名单方式。表示监听器仅转发来自所选访问控制策略组中设置的 IP 地址或地址段的请求。

    说明

    如果所选策略组中没有添加 IP,则监听器不会转发任何请求。

black

service.beta.kubernetes.io/volcengine-loadbalancer-acl-id

String

监听器绑定的访问控制策略组(ACL)ID。策略组相关信息,请参见 管理访问控制策略组
最多支持传入 5 个策略组 ID,多个策略组 ID 间使用英文逗号(,)分隔。

Proxy Protocol 源 IP 透传

说明

监听器的 Proxy Protocol 源 IP 透传功能支持在对接已有 CLB 实例时配置,也支持在创建新的 CLB 实例时配置。本例以对接已有 CLB 实例为例。

负载均衡服务支持通过 Annotation 配置监听器的 Proxy Protocol 源 IP 透传功能,示例和说明如下:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/volcengine-loadbalancer-id: "clb-mim02n8g5kw05smt1b******"
    # 必填,已有负载均衡实例的 ID
    service.beta.kubernetes.io/volcengine-loadbalancer-proxy-protocol: "standard"
    # 必填,开启 Proxy Protocol 源 IP 透传
  name: clb-service # 服务的名称
  namespace: default # 服务所属的命名空间
spec:
  externalTrafficPolicy: Cluster
  selector:
    app: nginx # 通过标签选择器将服务与后端容器组(Pod)绑定
  ports:
  - name: test # 端口映射策略命名
    port: 80 # 服务端口
    protocol: TCP  # 端口通信协议 TCP/UDP
    targetPort: 80 # 容器端口
  type: LoadBalancer # 服务的类型

Annotation 说明如下表所示。

Key类型是否必须描述默认值是否支持修改

service.beta.kubernetes.io/volcengine-loadbalancer-proxy-protocol

String

是否开启 Proxy Protocol 源 IP 透传,取值:

  • standard:开启 proxy protocol 源 IP 透传。
  • off:关闭 proxy protocol 源 IP 透传。

off

其他配置

直通 Pod 模式

注意

  • 该配置支持在对接已有 CLB 实例时配置,也支持在创建新的 CLB 实例时配置。本例以对接已有 CLB 实例为例。
  • 仅在 VPC-CNI 网络模型的集群中支持配置为true。修改该字段会导致流量断流,请谨慎操作。
  • 负载均衡服务关联基于弹性容器实例(VCI)方式部署的工作负载时,必须开启直通 Pod 模式,否则会导致服务不可用。

负载均衡服务支持通过 Annotation 配置直通 Pod 模式,示例和说明如下:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/volcengine-loadbalancer-id: "clb-mim02n8g5kw05smt1b******"
    # 必填,已有负载均衡实例的 ID
    service.beta.kubernetes.io/volcengine-loadbalancer-pass-through: "true"
    # 必填,是否开启负载均衡器直通 Pod 模式
  name: clb-service # 服务的名称
  namespace: default # 服务所属的命名空间
spec:
  externalTrafficPolicy: Cluster
  selector:
    app: nginx # 通过标签选择器将服务与后端容器组(Pod)绑定
  ports:
  - name: test # 端口映射策略命名
    port: 80 # 服务端口
    protocol: TCP  # 端口通信协议 TCP/UDP
    targetPort: 80 # 容器端口
  type: LoadBalancer # 服务的类型

Annotation 说明如下表所示。

Key类型是否必须描述默认值是否支持修改

service.beta.kubernetes.io/volcengine-loadbalancer-pass-through

Boolean

是否开启负载均衡器直通 Pod 模式。取值:

  • true:开启,直接关联 Pod 作为负载均衡器的后端。
  • false:不开启。

false

展示公网 CLB 的私网 IP 地址

注意

  • 该配置支持在对接已有 CLB 实例时配置,也支持在创建新的 CLB 实例时配置。本例以对接已有 CLB 实例为例。
  • 该配置仅在 CLB 为公网类型时生效。对于私网类型的 CLB 实例,无论是否配置该参数,均仅允许查看 CLB 实例的私网 IP 地址。
  • 该配置仅支持单栈集群,不支持双栈集群。

负载均衡服务支持通过 Annotation 配置是否展示公网 CLB 的私网 IP 地址,示例和说明如下:

apiVersion: v1
kind: Service
metadata:
  annotations:
    service.beta.kubernetes.io/volcengine-loadbalancer-id: "clb-mim02n8g5kw05smt1b******"
    # 必填,已有负载均衡实例的 ID
    service.beta.kubernetes.io/volcengine-loadbalancer-display-internal-ip: "true"
    # 必填,是否展示公网 CLB 的私网 IP 地址
  name: clb-service # 服务的名称
  namespace: default # 服务所属的命名空间
spec:
  externalTrafficPolicy: Cluster
  selector:
    app: nginx # 通过标签选择器将服务与后端容器组(Pod)绑定
  ports:
  - name: test # 端口映射策略命名
    port: 80 # 服务端口
    protocol: TCP  # 端口通信协议 TCP/UDP
    targetPort: 80 # 容器端口
  type: LoadBalancer # 服务的类型

Annotation 说明如下表所示。

Key类型是否必须描述默认值是否支持修改

service.beta.kubernetes.io/volcengine-loadbalancer-display-internal-ip

Boolean

是否展示公网 CLB 的私网 IP 地址。取值:

  • true:开启。即当 CLB 为公网类型时,展示 CLB 的公网和内网 IP 地址。
  • false:不开启。即当 CLB 为公网类型时,仅展示 CLB 的公网 IP 地址。
  • 未配置该参数时,默认为不开启。即当 CLB 为公网类型时,仅展示 CLB 的公网 IP 地址。

false

配置完成后,支持通过控制台或 YAML 配置,查看 CLB 实例的公网和私网 IP 地址。
alt
alt

相关文档