您可通过配置AlbConfig资源以自定义ALB实例的配置。本文列举了ALB Ingress支持的Annotation(注解)以及AlbConfig字段的具体内容和用法。
索引
Annotation字段
| 功能分类 | Ingress注解配置 | 
| Annotation YAML | |
| ALB Ingress配置 | |
| 监听/协议配置 | |
| 转发策略配置 | |
| 高级配置 | |
| 其他 | 
AlbConfig字段
| 字段分类 | 字段链接 | 
| AlbConfig YAML | |
| AlbConfig | |
| ALB实例 | |
| 监听配置 | |
| 虚拟交换机 | |
| 日志服务 | |
| QUIC监听 | |
| 配置证书 | |
| 访问控制 | |
| 链路追踪 | |
| X-Forwarded-配置 | |
| 日志使用自定义Header | |
| 保留字段 | 
Annotation YAML示例
以下是在Ingress中使用Annotation注解配置ALB的示例。关于注解的详细描述,请参见下文。
Ingress支持的Annotation
在使用ALB Ingress时,请根据需求将Annotation添加到Ingress类型资源中。
健康检查
| Annotation | 说明 | 
| alb.ingress.kubernetes.io/healthcheck-enabled | 是否开启后端服务器组的健康检查。健康检查的配置示例,请参见配置健康检查。 
 默认值: | 
| alb.ingress.kubernetes.io/healthcheck-path | 健康检查路径。 默认值: | 
| alb.ingress.kubernetes.io/healthcheck-protocol | 健康检查使用的协议。 
 默认值: | 
| alb.ingress.kubernetes.io/healthcheck-httpversion | HTTP协议版本, 
 默认值: | 
| alb.ingress.kubernetes.io/healthcheck-method | 健康检查的方法。 
 默认值: 重要  
 | 
| alb.ingress.kubernetes.io/healthcheck-httpcode | 健康检查状态码。仅当探测请求成功且返回指定状态码时,才认为该后端服务器状态正常。 可以填入以下选项中的任意一个或多个组合,多个状态码用英文半角逗号(,)分隔: 
 默认值: | 
| alb.ingress.kubernetes.io/healthcheck-code | 健康检查状态码,仅当探测请求成功且返回指定状态码时,才认为该后端服务器状态正常。 与 可选参数依赖于 
 | 
| alb.ingress.kubernetes.io/healthcheck-timeout-seconds | 健康检查超时时间,单位秒(s)。 取值范围:[1, 300]。 默认值: | 
| alb.ingress.kubernetes.io/healthcheck-interval-seconds | 健康检查间隔周期,单位秒(s)。 取值范围:[1, 50]。 默认值: | 
| alb.ingress.kubernetes.io/healthy-threshold-count | 健康检查成功多少次判定为成功。 取值范围:[2, 10]。 默认值: | 
| alb.ingress.kubernetes.io/unhealthy-threshold-count | 健康检查失败多少次判定为失败。 取值范围:[2, 10]。 默认值: | 
| alb.ingress.kubernetes.io/healthcheck-connect-port | 健康检查使用的端口。 默认值: 说明  
 | 
重定向
| Annotation | 说明 | 
| alb.ingress.kubernetes.io/ssl-redirect | 是否对HTTP请求返回308状态码,重定向到HTTPS监听(443端口)。重定向的配置示例,请参见配置HTTP重定向至HTTPS。 
 默认值: | 
后端服务使用的协议
| Annotation | 说明 | 
| alb.ingress.kubernetes.io/backend-protocol | 后端服务器组所使用的协议。配置示例请参见支持后端HTTPS和gRPC协议。 
 默认值: 说明  各种监听所支持的后端服务器组协议如下: 
 | 
重写
| Annotation | 说明 | 
| alb.ingress.kubernetes.io/rewrite-target | 路径重写的地址。使用重写的配置示例,请参见Rewrite重写。 | 
监听
| Annotation | 说明 | 
| alb.ingress.kubernetes.io/listen-ports | Ingress资源关联的监听端口与协议。配置示例请参见配置自定义监听端口。 可以填写希望ingress规则配置的监听协议及监听端口(下方为示例): 
 | 
慢启动
| Annotation | 说明 | 
| alb.ingress.kubernetes.io/slow-start-enabled | 是否启用慢启动功能。启用慢启动后,ALB Ingress在新增Pod被添加到Service后端时,会逐步将流量分配到新增Pod中,以避免造成Pod启动后瞬时CPU与内存高压造成的异常。慢启动的配置示例请参见后端慢启动。 
 默认不开启。 | 
| alb.ingress.kubernetes.io/slow-start-duration | 慢启动完成流量逐步增加所花费的时间越长,流量增加的速度越慢,单位秒(s)。 取值范围:[30, 900]。 默认值: | 
优先级
| Annotation | 说明 | 
| alb.ingress.kubernetes.io/order | 转发规则的相对优先级,数值越小优先级越高。优先级的配置示例,请参见配置转发规则优先级。 取值范围:[1, 1000]。 默认值: | 
灰度
| Annotation | 说明 | 
| alb.ingress.kubernetes.io/canary | 是否启用Canary灰度。使用Canary进行灰度发布的具体操作,请参见通过ALB Ingress实现灰度发布。 
 默认值: | 
| alb.ingress.kubernetes.io/canary-by-header | 启用灰度时所命中的请求标头。 | 
| alb.ingress.kubernetes.io/canary-by-header-value | 启用灰度时命中的请求标头对应的标头值。 | 
| alb.ingress.kubernetes.io/canary-by-cookie | 启用灰度时的Cookie标记。 | 
| alb.ingress.kubernetes.io/canary-weight | 设置请求到指定服务的百分比(值为0~100的整数)。具体操作请参见灰度权重。 | 
会话保持
| Annotation | 说明 | 
| alb.ingress.kubernetes.io/sticky-session | 是否开启后端服务器组会话保持。会话保持的配置示例,请参见通过注解实现会话保持。 
 默认值: | 
| alb.ingress.kubernetes.io/sticky-session-type | 开启会话保持的类型。 
 默认值: | 
| alb.ingress.kubernetes.io/cookie-timeout | 会话保持超时时间,单位秒(s)。 取值范围:[1, 86400]。 默认值: | 
| alb.ingress.kubernetes.io/cookie | 自定义Cookie值。类型:字符串;默认值: | 
连接优雅中断
| Annotation | 说明 | 
| alb.ingress.kubernetes.io/connection-drain-enabled | 是否开启连接优雅中断。开启优雅中断后,ALB Ingress在后端Pod进入Terminating状态或健康检查报告异常时保持一定时间的正常传输,在到达超时时间后再中断连接,可以防止后端突然移除对业务的影响。优雅中断的具体工作原理请参见连接优雅中断。 
 默认不开启。 | 
| alb.ingress.kubernetes.io/connection-drain-timeout | 优雅中断超时时间,单位秒(s)。 取值范围:[0, 900]。 默认值: | 
负载均衡
| Annotation | 说明 | 
| alb.ingress.kubernetes.io/backend-scheduler | 后端服务器组负载均衡算法。负载均衡算法的配置示例,请参见指定服务器组负载均衡算法。 
 默认值: | 
| alb.ingress.kubernetes.io/backend-scheduler-uch-value | 负载均衡算法为“uch”时,使用的URL哈希参数。 | 
跨域
| Annotation | 说明 | 
| alb.ingress.kubernetes.io/enable-cors | 是否启用跨域配置。配置示例,请参见跨域配置。 
 默认值: | 
| alb.ingress.kubernetes.io/cors-allow-origin | 允许跨域的源。 默认值: | 
| alb.ingress.kubernetes.io/cors-expose-headers | 允许暴露的Header列表。 | 
| alb.ingress.kubernetes.io/cors-allow-methods | 允许跨域的请求方法。 可以填入以下选项中的任意一个或多个组合: 
 默认值: | 
| alb.ingress.kubernetes.io/cors-allow-credentials | 跨域是否允许携带凭证信息。 
 默认值: | 
| alb.ingress.kubernetes.io/cors-max-age | 预检请求在浏览器中的最大的缓存时间,单位秒(s)。 取值范围:[-1, 172800]。 默认值: 说明  
 | 
| alb.ingress.kubernetes.io/cors-allow-headers | 允许跨域的Header列表。 默认值: | 
自定义转发
| Annotation | 说明 | 
| alb.ingress.kubernetes.io/actions.{svcName} | 自定义转发动作。自定义转发的具体操作,请参见自定义ALB Ingress的转发规则。 | 
| alb.ingress.kubernetes.io/conditions.{svcName} | 自定义转发条件。 | 
| alb.ingress.kubernetes.io/rule-direction.{svcName} | 自定义转发方向。 
 默认值: | 
服务器组支持IPV6挂载
| Annotation | 说明 | 
| alb.ingress.kubernetes.io/enable-ipv6 | 是否启用服务器组的IPv6挂载功能。配置示例,请参见服务器组支持IPv6挂载。 
 默认值: | 
其他
| Annotation | 说明 | 
| alb.ingress.kubernetes.io/backend-keepalive | 是否启用后端长链接。配置示例请参见后端长连接。 默认值: | 
| alb.ingress.kubernetes.io/traffic-limit-qps | QPS限速配置。 取值范围:[1, 100000]。 | 
| alb.ingress.kubernetes.io/use-regex | 允许Path字段使用正则,仅在Prefix类型下生效。 默认值: | 
AlbConfig字段
AlbConfig是用来描述ALB实例及监听的自定义资源,以下是全量字段的AlbConfig示例。关于字段的详细描述,请参见下文。
Albconfig
| 字段 | 取值类型 | 说明 | 
| apiVersion | 固定取值 | APIVersion定义了该对象的版本化模式。 固定取值: | 
| kind | 固定取值 | Kind表示该对象所代表的REST资源。 固定取值: | 
| metadata | 标准对象的metadata。更多信息,请参见metadata。 | |
| spec | 用来描述ALB实例属性和监听属性的参数列表。 | |
| status | 在调和成功后,会将实例状态写入 | 
AlbConfigSpec
| 字段 | 取值类型 | 说明 | 
| config | ALB实例的属性。 | |
| listeners | 实例下的监听属性。 | 
LoadBalancerSpec
| 字段 | 取值类型 | 说明 | 
| id | string | ALB实例ID,填写代表启用复用模式。置空表示不指定,会由controller创建一个ALB实例。创建新ALB实例或复用已有实例的具体操作,请参见创建AlbConfig。 默认值: | 
| name | string | ALB实例名。 默认值:使用以下规则自动生成: | 
| addressAllocatedMode | enum | ALB实例的地址模式。 
 默认值: | 
| addressType | enum | ALB实例的IPv4网段地址类型。 
 默认值: | 
| ipv6AddressType | enum | ALB的IPv6网段地址类型。不需要与IPv4网段地址类型保持一致。 
 默认值: | 
| addressIpVersion | enum | ALB实例是否支持双栈。 
 默认值: | 
| resourceGroupId | string | 实例所属的资源组ID。 默认值: | 
| edition | enum | 实例的功能版本。复用模式不支持修改实例的功能版本。 
 默认值: | 
| deletionProtectionEnabled | bool | 保留字段,请勿修改。 | 
| forceOverride | bool | 复用模式下强制覆盖实例属性。 
 默认值: | 
| listenerForceOverride | bool | 复用模式下强制覆盖监听属性。 
 默认值: | 
| zoneMappings | 可用区和EIP配置。 | |
| accessLogConfig | 日志收集。 | |
| billingConfig | 计费方式。 | |
| modificationProtectionConfig | 配置修改保护。 | |
| tags | 实例标签。 | 
ZoneMapping
| 字段 | 取值类型 | 说明 | 
| vSwitchId | string | (必填)虚拟交换机的ID。 默认值: | 
| zoneId | string | 虚拟交换机的可用区,保持默认值。 默认值: | 
| allocationId | string | 弹性公网EIP的ID。配置示例请参见通过AlbConfig配置ALB实例。 默认值: | 
| eipType | string | 保留字段,请勿修改。 | 
AccessLogConfig
| 字段 | 取值类型 | 说明 | 
| logProject | string | SLS日志项目的名称。 默认值: | 
| logStore | string | SLS日志库的名称,必须以 默认值: | 
BillingConfig
| 字段 | 取值类型 | 说明 | 
| internetBandwidth | int | 保留字段,请勿修改。 | 
| internetChargeType | string | 保留字段,请勿修改。 | 
| payType | enum | 保留字段,请勿修改。 | 
| bandWidthPackageId | string | 绑定共享带宽包ID。绑定后不支持解绑。配置示例请参见共享带宽包配置。 默认值: | 
ModificationProtectionConfig
| 字段 | 取值类型 | 说明 | 
| reason | string | 保留字段。 | 
| status | string | 保留字段。 | 
Tag
| 字段 | 取值类型 | 说明 | 
| key | string | 标签的Key值。 默认值: | 
| value | string | 标签的Value值。 默认值: | 
ListenerSpec
| 字段 | 取值类型 | 说明 | 
| gzipEnabled | bool | 是否开启数据压缩功能。数据压缩的配置示例,请参见使用数据压缩功能。 
 默认值: | 
| http2Enabled | bool | 是否开启HTTP/2协议。 
 默认值: | 
| port | int | (必填)监听使用的端口。 默认值: | 
| protocol | enum | (必填)监听使用的协议。 
 | 
| securityPolicyId | string | TLS安全策略的ID。 默认值: | 
| idleTimeout | int | 空闲链接超时时间,单位秒(s)。 默认值: 说明  取值为0,表示使用默认的空闲超时值。 | 
| loadBalancerId | string | 保留字段,请勿修改。 | 
| description | string | 监听的名称。 默认值:使用以下规则自动生成: | 
| caEnabled | bool | 是否开启双向认证功能。 
 默认值: | 
| requestTimeout | int | 请求超时时间,单位秒(s)。 默认值: | 
| quicConfig | Quic监听配置。 | |
| defaultActions | Action[] | 保留字段,请勿修改。 | 
| caCertificates | 监听的根CA证书。 | |
| certificates | 监听的服务器证书。 | |
| xForwardedForConfig | XForward字段配置信息。 | |
| logConfig | 监听日志相关配置。 | |
| aclConfig | 访问控制。 | 
QuicConfig
| 字段 | 取值类型 | 说明 | 
| quicUpgradeEnabled | bool | 是否开启QUIC升级。在联合使用QUIC与HTTPS监听的场景中,quicUpgradeEnabled用于关联或解关联QUIC与HTTPS监听。详细操作,请参见使用QUIC监听兼容HTTP/3协议。 
 默认值: | 
| quicListenerId | string | QUIC监听关联的HTTPS监听。 默认值: | 
Certificate
| 字段 | 取值类型 | 说明 | 
| IsDefault | bool | 指定证书是否为默认证书。配置证书的具体操作,请参见配置HTTPS证书以实现加密通信。 
 默认值: 重要  仅支持指定一个证书为默认证书。 | 
| CertificateId | string | 证书的CertIdentifier。 默认值: | 
XForwardedForConfig
| 字段 | 取值类型 | 说明 | 
| XForwardedForClientCertSubjectDNEnabled | bool | 是否在经过ALB实例转发的HTTP报文的请求头中添加 
 默认值: | 
| XForwardedForProtoEnabled | bool | 是否在经过ALB实例转发的HTTP报文的请求头中添加 
 默认值: | 
| XForwardedForClientCertIssuerDNEnabled | bool | 是否在经过ALB实例转发的HTTP报文的请求头中添加 
 默认值: | 
| XForwardedForSLBIdEnabled | bool | 是否在经过ALB实例转发的HTTP报文的请求头中添加 
 默认值: | 
| XForwardedForClientSrcPortEnabled | bool | 是否在经过ALB实例转发的HTTP报文的请求头中添加 
 默认值: | 
| XForwardedForClientCertFingerprintEnabled | bool | 是否在经过ALB实例转发的HTTP报文的请求头中添加 
 默认值: | 
| XForwardedForEnabled | bool | 是否在经过ALB实例转发的HTTP报文的请求头中添加 | 
| XForwardedForSLBPortEnabled | bool | 是否在经过ALB实例转发的HTTP报文的请求头中添加 
 默认值: | 
| XForwardedForClientCertClientVerifyEnabled | bool | 是否在经过ALB实例转发的HTTP报文的请求头中添加 
 默认值: | 
| XForwardedForClientCertSubjectDNAlias | string | 自定义字段名称。填入值后,会将 仅当 默认值: | 
| XForwardedForClientCertClientVerifyAlias | string | 自定义字段名称。填入值后,会将 仅当 默认值: | 
| XForwardedForClientCertIssuerDNAlias | string | 自定义字段名称。填入值后,会将 仅当 默认值: | 
| XForwardedForClientCertFingerprintAlias | string | 自定义字段名称。填入值后,会将 仅当 默认值: | 
| XForwardedForClientSourceIpsEnabled | bool | 是否允许ALB从 
 默认值: | 
| XForwardedForClientSourceIpsTrusted | string | 指定可信的代理IP。 请输入正确格式的IP或网段,并以英文半角分号 
 示例值: | 
AclConfig
| 字段 | 取值类型 | 说明 | 
| aclName | string | AclEntry模式下关联的ACL策略名。配置ACL的具体操作,请参见配置ACL实现访问控制。 默认值: | 
| aclType | enum | 访问控制的模式。 
 | 
| aclEntries | string | 访问策略条目。 默认值: 重要  
 | 
| aclIds | string | 关联已经存在的策略ID列表。 默认值: | 
LogConfig
| 字段 | 取值类型 | 说明 | 
| accessLogRecordCustomizedHeadersEnabled | bool | 是否在ALB实例的访问日志中使用自定义Header。 
 默认值: | 
| accessLogTracingConfig | 链路追踪相关配置参数。链路追踪的具体操作,请参见通过AlbConfig开启Xtrace实现链路追踪。 | 
AccessLogTracingConfig
| 字段 | 取值类型 | 说明 | 
| tracingEnabled | bool | 是否启用链路追踪功能。 
 默认值: | 
| tracingSample | int | 链路追踪采样率,单位为 取值范围:[1, 10000]。 | 
| tracingType | enum | 链路追踪的采样算法。 
 | 
AlbConfigStatus
下方的AlbConfigStatus、LoadBalancerStatus、ListenerStatus、AppliedCertificate字段都为保留字段,为ALB Ingress自动记录状态使用,请勿进行修改。
| 字段 | 输出内容 | 说明 | 
| loadBalancer | 保留字段,请勿修改。 ALB实例的状态。 | 
LoadBalancerStatus
| 字段 | 输出内容 | 说明 | 
| dnsname | string | 保留字段,请勿修改。 ALB实例的DNS地址。 | 
| id | string | 保留字段,请勿修改。 ALB实例的ID。 | 
| listeners | 保留字段,请勿修改。 ALB实例的监听属性。 | 
ListenerStatus
| 字段 | 输出内容 | 说明 | 
| portAndProtocol | string | 保留字段,请勿修改。 监听使用的端口与协议。 | 
| certificates | 保留字段,请勿修改。 监听关联的证书。 | 
AppliedCertificate
| 字段 | 输出内容 | 说明 | 
| certificateId | string | 保留字段,请勿修改。 证书的CertIdentifier。 | 
| isDefault | bool | 保留字段,请勿修改。 证书是否为默认证书。 | 
相关文档
- 关于AlbConfig中的具体设置,请参见通过AlbConfig配置ALB实例。 
- 关于ALB Ingress的Annotation具体用法,请参见ALB Ingress服务高级用法。