Service Annotations说明 本文主要介绍 Service Annotations说明。 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,取值范围:1100字符。在关联已有ELB时:必填。获取方法:在控制台的“服务列表”中, 单击“网络 > 弹性负载均衡 ELB”,单击ELB的名称,在ELB详情页的“基本信息”页签下找到“ID”字段复制即可。 无 v1.9及以上 kubernetes.io/elb.protocolport String Service使用7层能力配置端口。详细使用请参见Service使用HTTP。 无 v1.19.16及以上 kubernetes.io/elb.certid String Service使用7层能力配置HTTPS证书。详细使用请参见Service使用HTTP。 无 v1.19.16及以上 kubernetes.io/elb.subnetid String 为集群所在子网的ID,取值范围:1100字符。l Kubernetes v1.11.7r0及以下版本的集群自动创建时:必填l Kubernetes v1.11.7r0以上版本的集群:可不填。 无 v1.11.7r0以下必填v1.11.7r0以上该字段废弃 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","bandwidthname":"ccebandwidth1551163379627","bandwidthchargemode": "bandwidth","bandwidthsize":5,"bandwidthsharetype":"PER","eiptype":"5bgp","name":"james"}'l 私网自动创建: 值为'{"type":"inner", "name": "Alocationdtest"}' 无 v1.9及以上 kubernetes.io/elb.adaptiveweight String 根据Pod动态调整ELB后端云主机的权重。每个Pod收到的负载请求更加均衡。 开启:truel 关闭:false该参数仅1.21及以上集群适用,且ELB直通Pod场景下无效。 无 v1.21及以上 kubernetes.io/elb.lbalgorithm String 后端云主机组的负载均衡算法。取值范围: ROUNDROBIN:加权轮询算法。 LEASTCONNECTIONS:加权最少连接算法。 SOURCEIP:源IP算法。当该字段的取值为SOURCEIP时,后端云主机组绑定的后端的weight字段无效。云主机 ROUNDROBIN v1.9及以上 kubernetes.io/elb.healthcheckflag String 是否开启ELB健康检查功能。 开启:“(空值)”或“on” 关闭:“off”开启时需同时填写kubernetes.io/elb.healthcheckoption字段。 off v1.9及以上 kubernetes.io/elb.healthcheckoption ELB健康检查配置选项。 无 v1.9及以上 kubernetes.io/elb.passthrough String 集群内访问Service是否经过ELB。 无 v1.19及以上 kubernetes.io/elb.sessionaffinitymode String 负载均衡监听是基于IP地址的会话保持,即来自同一IP地址的访问请求转发到同一台后端服务器上。 不启用:不填写该参数。 开启会话保持:需增加该参数,取值“SOURCEIP”,表示基于源IP地址。 无 v1.9及以上 kubernetes.io/elb.aclid String 为ELB设置IP地址黑名单或白名单时需填写,参数值为ELB的IP地址组ID。 该参数仅独享型ELB生效,且仅在新建Service或指定新的服务端口(监听器)时生效。 无 v1.19.16v1.21.4 kubernetes.io/elb.aclstatus String 为ELB设置IP地址黑名单或白名单时需填写,取值为'on',表示开启访问控制。 无 v1.19.16v1.21.4 kubernetes.io/elb.acltype String 为ELB设置IP地址黑名单或白名单时需填写。l black:表示黑名单,所选IP地址组无法访问ELB地址。 white:表示白名单,仅所选IP地址组可以访问ELB地址。该参数仅独享型ELB生效,且仅在新建Service或指定新的服务端口(监听器)时生效。 无 v1.19.16v1.21.4 kubernetes.io/elb.sessionaffinityoption ELB会话保持配置选项,可设置会话保持的超时时间。 无 v1.9及以上 kubernetes.io/hwshostNetwork Boolean 为标记工作负载服务是否使用主机网络模式。如果Pod使用的主机网络,开启这个annotation会ELB转发到主机网络的方式对接。 取值范围:“true”或者“false”默认是“false”,表示未使用主机网络。 无 v1.9及以上 elb.autocreate字段数据结构说明 参数 是否必填 参数类型 描述 name 否 String 自动创建的负载均衡的名称。取值范围:164个字符,小写字母,数字,下划线,小写字母开头, 小写字母或者数字结尾。默认名称:ccelb+service.UID type 否 String 负载均衡实例网络类型,公网或者私网。 public:公网型负载均衡l inner:私网型负载均衡默认类型:inner bandwidthname 公网型负载均衡必填 String 带宽的名称,默认值为:ccebandwidth。取值范围:164个字符,小写字母, 数字,下划线,小写字母开头,小写字母或者数字结尾。 bandwidthchargemode 否 String 带宽付费模式。 bandwidth:按带宽 traffic:按流量默认类型:bandwidth bandwidthsize 公网型负载均衡必填 Integer 带宽大小,默认1Mbit/s~2000Mbit/s,请根据Region带宽支持范围设置。 bandwidthsharetype 公网型负载均衡必填 String 带宽共享方式。 PER:独享带宽 eiptype 公网型负载均衡必填 String 弹性公网IP类型。 vipsubnetcidrid 否 String 指定ELB所在的子网。1.21及以上版本支持。如不指定,则ELB与集群在同一个子网。 availablezone 是 Array of strings 负载均衡所在可用区。独享型负载均衡器独有字段。 l4flavorname 是 String 四层负载均衡实例规格名称。独享型负载均衡器独有字段。 l7flavorname 否 String 七层负载均衡实例规格名称。独享型负载均衡器独有字段。 elbvirsubnetids 否 Array of strings 负载均衡后端所在子网,不填默认集群子网。不同实例规格将占用不同数量子网IP,不建议使用其他资源(如集群,节点等)的子网网段。 独享型负载均衡器独有字段。示例:"elbvirsubnetids": [ "14567f278ae442b8ae479f847a4690dd" ] elb.healthcheckoption字段数据结构说明 参数 是否必填 参数类型 描述 delay 否 String 开始健康检查的初始等待时间(秒)默认值:5,取值范围:150 timeout 否 String 健康检查的超时时间(秒)默认值:10,取值范围150 maxretries 否 String 健康检查的最大重试次数默认值:3,取值范围110 protocol 否 String 健康检查的协议默认值:取关联服务的协议取值范围:“TCP”、“UDP”或者“HTTP” path 否 String 健康检查的URL,协议是“HTTP”时配置默认值:“/”取值范围:110000字符 elb.sessionaffinityoption字段数据结构说明 参数 是否必填 参数类型 描述 persistencetimeout 是 String 当elb.sessionaffinitymode是“SOURCEIP”时生效,设置会话保持的超时时间(分钟)。默认值为:60,取值范围:160。