CCE提供一些使用Service的高级功能,这些功能使用时可以通过给YAML添加注解Annotation实现。具体的Annotation如下表所示。
Service的Annotation主要是Service对接ELB时需要指定的参数。
Service Annotation
参数 | 类型 | 描述 | 控制台默认取值 | 支持的集群版本 |
---|---|---|---|---|
kubernetes.io/elb.class | String | 请根据不同的应用场景和功能需求选择合适的负载均衡器类型。取值如下: union:共享型负载均衡。 performance:独享型负载均衡,仅支持1.17及以上集群 |
performance | v1.9及以上 |
kubernetes.io/elb.id | String | 为负载均衡实例的ID,取值范围:1-100字符。在关联已有ELB时:必填。获取方法:在控制台的“服务列表”中, 单击“网络 > 弹性负载均衡 ELB”,单击ELB的名称,在ELB详情页的“基本信息”页签下找到“ID”字段复制即可。 |
无 | v1.9及以上 |
kubernetes.io/elb.protocol-port | String | Service使用7层能力配置端口。详细使用请参见Service使用HTTP。 | 无 | v1.19.16及以上 |
kubernetes.io/elb.cert-id | String | Service使用7层能力配置HTTPS证书。详细使用请参见Service使用HTTP。 | 无 | v1.19.16及以上 |
kubernetes.io/elb.subnet-id | String | 为集群所在子网的ID,取值范围:1-100字符。l Kubernetes v1.11.7-r0及以下版本的集群自动创建时:必填l Kubernetes v1.11.7-r0以上版本的集群:可不填。 | 无 | v1.11.7-r0以下必填v1.11.7-r0以上该字段废弃 |
kubernetes.io/elb.enterpriseID | String | v1.15及以上版本的集群支持此字段,v1.15以下版本默认创建到default项目下。 为ELB企业项目ID,选择后可以直接创建在具体的ELB企业项目下。该字段不传(或传为字符串'0'),则将资源绑定给默认企业项目。 获取方法:登录控制台后,单击顶部菜单右侧的“企业 > 项目管理”,在打开的企业项目列表中单击要加入的企业项目名称, 进入企业项目详情页,找到“ID”字段复制即可。 |
无 | v1.15及以上 |
kubernetes.io/elb.autocreate | 自动创建service关联的ELB**示例: 公网自动创建:值为'{"type":"public","bandwidth_name":"cce-bandwidth-1551163379627","bandwidth_chargemode": "bandwidth","bandwidth_size":5,"bandwidth_sharetype":"PER","eip_type":"5_bgp","name":"james"}'l 私网自动创建: 值为'{"type":"inner", "name": "A-location-d-test"}' |
无 | v1.9及以上 | |
kubernetes.io/elb.adaptive-weight | String | 根据Pod动态调整ELB后端云主机的权重。每个Pod收到的负载请求更加均衡。 开启:truel 关闭:false该参数仅1.21及以上集群适用,且ELB直通Pod场景下无效。 |
无 | v1.21及以上 |
kubernetes.io/elb.lb-algorithm | String | 后端云主机组的负载均衡算法。取值范围: ROUND_ROBIN:加权轮询算法。 LEAST_CONNECTIONS:加权最少连接算法。 SOURCE_IP:源IP算法。当该字段的取值为SOURCE_IP时,后端云主机组绑定的后端的weight字段无效。云主机 |
ROUND_ROBIN | v1.9及以上 |
kubernetes.io/elb.health-check-flag | String | 是否开启ELB健康检查功能。 开启:“(空值)”或“on” 关闭:“off”开启时需同时填写kubernetes.io/elb.health-check-option字段。 |
off | v1.9及以上 |
kubernetes.io/elb.health-check-option | ELB健康检查配置选项。 | 无 | v1.9及以上 | |
kubernetes.io/elb.pass-through | String | 集群内访问Service是否经过ELB。 | 无 | v1.19及以上 |
kubernetes.io/elb.session-affinity-mode | String | 负载均衡监听是基于IP地址的会话保持,即来自同一IP地址的访问请求转发到同一台后端服务器上。 不启用:不填写该参数。 开启会话保持:需增加该参数,取值“SOURCE_IP”,表示基于源IP地址。 |
无 | v1.9及以上 |
kubernetes.io/elb.acl-id | String | 为ELB设置IP地址黑名单或白名单时需填写,参数值为ELB的IP地址组ID。 该参数仅独享型ELB生效,且仅在新建Service或指定新的服务端口(监听器)时生效。 |
无 | v1.19.16v1.21.4 |
kubernetes.io/elb.acl-status | String | 为ELB设置IP地址黑名单或白名单时需填写,取值为'on',表示开启访问控制。 | 无 | v1.19.16v1.21.4 |
kubernetes.io/elb.acl-type | String | 为ELB设置IP地址黑名单或白名单时需填写。l black:表示黑名单,所选IP地址组无法访问ELB地址。 white:表示白名单,仅所选IP地址组可以访问ELB地址。该参数仅独享型ELB生效,且仅在新建Service或指定新的服务端口(监听器)时生效。 |
无 | v1.19.16v1.21.4 |
kubernetes.io/elb.session-affinity-option | ELB会话保持配置选项,可设置会话保持的超时时间。 | 无 | v1.9及以上 | |
kubernetes.io/hws-hostNetwork | Boolean | 为标记工作负载服务是否使用主机网络模式。如果Pod使用的主机网络,开启这个annotation会ELB转发到主机网络的方式对接。 取值范围:“true”或者“false”默认是“false”,表示未使用主机网络。 |
无 | v1.9及以上 |
elb.autocreate字段数据结构说明
参数 | 是否必填 | 参数类型 | 描述 |
---|---|---|---|
name | 否 | String | 自动创建的负载均衡的名称。取值范围:1-64个字符,小写字母,数字,下划线,小写字母开头, 小写字母或者数字结尾。默认名称:cce-lb+service.UID |
type | 否 | String | 负载均衡实例网络类型,公网或者私网。 public:公网型负载均衡l inner:私网型负载均衡默认类型:inner |
bandwidth_name | 公网型负载均衡必填 | String | 带宽的名称,默认值为:cce-bandwidth-******。取值范围:1-64个字符,小写字母, 数字,下划线,小写字母开头,小写字母或者数字结尾。 |
bandwidth_chargemode | 否 | String | 带宽付费模式。 bandwidth:按带宽 traffic:按流量默认类型:bandwidth |
bandwidth_size | 公网型负载均衡必填 | Integer | 带宽大小,默认1Mbit/s~2000Mbit/s,请根据Region带宽支持范围设置。 |
bandwidth_sharetype | 公网型负载均衡必填 | String | 带宽共享方式。 PER:独享带宽 |
eip_type | 公网型负载均衡必填 | String | 弹性公网IP类型。 |
vip_subnet_cidr_id | 否 | String | 指定ELB所在的子网。1.21及以上版本支持。如不指定,则ELB与集群在同一个子网。 |
available_zone | 是 | Array of strings | 负载均衡所在可用区。独享型负载均衡器独有字段。 |
l4_flavor_name | 是 | String | 四层负载均衡实例规格名称。独享型负载均衡器独有字段。 |
l7_flavor_name | 否 | String | 七层负载均衡实例规格名称。独享型负载均衡器独有字段。 |
elb_virsubnet_ids | 否 | Array of strings | 负载均衡后端所在子网,不填默认集群子网。不同实例规格将占用不同数量子网IP,不建议使用其他资源(如集群,节点等)的子网网段。 独享型负载均衡器独有字段。示例:"elb_virsubnet_ids": [ "14567f27-8ae4-42b8-ae47-9f847a4690dd" ] |
elb.health-check-option字段数据结构说明
参数 | 是否必填 | 参数类型 | 描述 |
---|---|---|---|
delay | 否 | String | 开始健康检查的初始等待时间(秒)默认值:5,取值范围:1-50 |
timeout | 否 | String | 健康检查的超时时间(秒)默认值:10,取值范围1-50 |
max_retries | 否 | String | 健康检查的最大重试次数默认值:3,取值范围1-10 |
protocol | 否 | String | 健康检查的协议默认值:取关联服务的协议取值范围:“TCP”、“UDP”或者“HTTP” |
path | 否 | String | 健康检查的URL,协议是“HTTP”时配置默认值:“/”取值范围:1-10000字符 |
elb.session-affinity-option字段数据结构说明
参数 | 是否必填 | 参数类型 | 描述 |
---|---|---|---|
persistence_timeout | 是 | String | 当elb.session-affinity-mode是“SOURCE_IP”时生效,设置会话保持的超时时间(分钟)。默认值为:60,取值范围:1-60。 |