使用Annotation配置ELB Ingress
通过在YAML中添加注解Annotation(注解),您可以实现更多的Ingress高级功能。本文介绍在创建ELB类型的Ingress时可供使用的Annotation。
对接ELB
参数 |
类型 |
描述 |
支持的集群版本 |
---|---|---|---|
kubernetes.io/elb.class |
String |
请根据不同的应用场景和功能需求选择合适的负载均衡器类型。 取值如下:
|
v1.9及以上 |
kubernetes.io/ingress.class |
String |
通过API接口创建Ingress时必须增加该参数。 v1.23及以上集群使用ingressClassName参数代替,详情请参见通过Kubectl命令行创建ELB Ingress。 |
仅v1.21及以下集群 |
kubernetes.io/elb.port |
Integer |
界面上的对外端口,为注册到负载均衡服务地址上的端口。 取值范围:1~65535。
说明:
部分端口为高危端口,默认被屏蔽,如21端口。 |
v1.9及以上 |
kubernetes.io/elb.id |
String |
仅关联已有ELB的场景:必填。 为负载均衡实例的ID。 获取方法: 在控制台的“服务列表”中,单击“网络 > 弹性负载均衡 ELB”,单击ELB的名称,在ELB详情页的“基本信息”页签下找到“ID”字段复制即可。 |
v1.9及以上 |
kubernetes.io/elb.ip |
String |
仅关联已有ELB的场景:必填。 为负载均衡实例的服务地址,公网ELB配置为公网IP,私网ELB配置为私网IP。 |
v1.9及以上 |
kubernetes.io/elb.autocreate |
表5 Object |
仅自动创建ELB的场景:必填。 示例: |
v1.9及以上 |
kubernetes.io/elb.enterpriseID |
String |
仅自动创建ELB的场景:选填。 v1.15及以上版本的集群支持此字段,v1.15以下版本默认创建到default项目下。 为ELB企业项目ID,选择后可以直接创建在具体的ELB企业项目下。 该字段不传(或传为字符串'0'),则将资源绑定给默认企业项目。 获取方法: 登录企业项目管理控制台,在左侧导航栏中选择“项目管理”,在企业项目列表中单击要加入的企业项目名称,进入企业项目详情页,找到“ID”字段复制即可。 |
v1.15及以上 |
kubernetes.io/elb.subnet-id |
String |
仅自动创建ELB的场景:选填。 为集群所在子网的ID,取值范围:1-100字符。
|
v1.11.7-r0以下必填 v1.11.7-r0以上该字段废弃 |
- 关联已有ELB场景:详情请参见添加Ingress-对接已有ELB
- 自动创建ELB场景:详情请参见添加Ingress-自动创建ELB
使用HTTP/2
参数 |
类型 |
描述 |
支持的集群版本 |
---|---|---|---|
kubernetes.io/elb.http2-enable |
String |
表示HTTP/2功能的开启状态。开启后,可提升客户端与LB间的访问性能,但LB与后端服务器间仍采用HTTP1.X协议。v1.19.16-r0、v1.21.3-r0及以上版本的集群支持此字段。 取值范围:
注意:只有当监听器的协议为HTTPS时,才支持开启或关闭HTTP/2功能。当监听器的协议为HTTP时,该字段无效,默认将其设置为false。 |
v1.19.16-r0、v1.21.3-r0及以上 |
具体使用场景和说明请参见ELB Ingress使用HTTP/2。
对接HTTPS协议的后端服务
参数 |
类型 |
描述 |
支持的集群版本 |
---|---|---|---|
kubernetes.io/elb.pool-protocol |
String |
对接HTTPS协议的后端服务,取值为'https'。 |
v1.23.8、v1.25.3及以上 |
具体使用场景和说明请参见ELB Ingress对接HTTPS协议的后端服务。
配置Ingress超时时间
参数 |
类型 |
描述 |
支持的集群版本 |
---|---|---|---|
kubernetes.io/elb.keepalive_timeout |
Integer |
客户端连接空闲超时时间,在超过keepalive_timeout时长一直没有请求, 负载均衡会暂时中断当前连接,直到下一次请求时重新建立新的连接。 取值:
UDP监听器不支持此字段。 |
v1.19.16-r30、v1.21.10-r10、v1.23.8-r10、v1.25.3-r10及以上 |
kubernetes.io/elb.client_timeout |
Integer |
等待客户端请求超时时间,包括两种情况:
取值范围为1-300s,默认值为60s。 使用说明:仅协议为HTTP/HTTPS的监听器支持该字段。 最小值:1 最大值:300 缺省值:60 |
v1.19.16-r30、v1.21.10-r10、v1.23.8-r10、v1.25.3-r10及以上 |
kubernetes.io/elb.member_timeout |
Integer |
等待后端服务器响应超时时间。请求转发后端服务器后,在等待超时member_timeout时长没有响应,负载均衡将终止等待,并返回 HTTP504错误码。 取值:1-300s,默认为60s。 使用说明:仅支持协议为HTTP/HTTPS的监听器。 最小值:1 最大值:300 缺省值:60 |
v1.19.16-r30、v1.21.10-r10、v1.23.8-r10、v1.25.3-r10及以上 |
具体使用场景和说明请参见ELB Ingress设置超时时间。
数据结构
参数 |
是否必填 |
参数类型 |
描述 |
---|---|---|---|
name |
否 |
String |
自动创建的负载均衡的名称。 取值范围:只能由中文、英文字母、数字、下划线、中划线、点组成,且长度范围为1-64个字符。 默认名称:cce-lb+service.UID |
type |
否 |
String |
负载均衡实例网络类型,公网或者私网。
默认类型:inner |
bandwidth_name |
公网型负载均衡必填 |
String |
带宽的名称,默认值为:cce-bandwidth-******。 取值范围:只能由中文、英文字母、数字、下划线、中划线、点组成,且长度范围为1-64个字符。 |
bandwidth_chargemode |
否 |
String |
带宽模式。
默认类型:bandwidth |
bandwidth_size |
公网型负载均衡必填 |
Integer |
带宽大小,默认1Mbit/s~2000Mbit/s,请根据Region带宽支持范围设置。
调整带宽时的最小单位会根据带宽范围不同存在差异。
|
bandwidth_sharetype |
公网型负载均衡必填 |
String |
带宽共享方式。
|
eip_type |
公网型负载均衡必填 |
String |
弹性公网IP类型。
具体类型以各区域配置为准,详情请参见弹性公网IP控制台。 |
available_zone |
是 |
Array of strings |
负载均衡所在可用区。 独享型负载均衡器独有字段。 |
l4_flavor_name |
是 |
String |
四层负载均衡实例规格名称。 独享型负载均衡器独有字段。 |
l7_flavor_name |
否 |
String |
七层负载均衡实例规格名称。 独享型负载均衡器独有字段,必须与l4_flavor_name对应规格的类型一致,即都为弹性规格或都为固定规格。 |
elb_virsubnet_ids |
否 |
Array of strings |
负载均衡后端所在子网,不填默认集群子网。不同实例规格将占用不同数量子网IP,不建议使用其他资源(如集群,节点等)的子网网段。 独享型负载均衡器独有字段。 示例: "elb_virsubnet_ids": [ "14567f27-8ae4-42b8-ae47-9f847a4690dd" ] |