您可通过配置AlbConfig资源以自定义ALB实例的配置。本文列举了ALB Ingress支持的Annotation(注解)以及AlbConfig字段的具体内容和用法。
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标记。 |
会话保持
Annotation | 说明 |
alb.ingress.kubernetes.io/sticky-session | 是否开启后端服务器组会话保持。会话保持的配置示例,请参见通过注解实现会话保持。
默认值: |
alb.ingress.kubernetes.io/sticky-session-type | 开启会话保持的类型。
默认值: |
alb.ingress.kubernetes.io/cookie-timeout | 会话保持超时时间,单位秒(s)。 取值范围:[1, 86400]。 默认值: |
连接优雅中断
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} | 自定义转发方向。
默认值: |
其他
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实例及监听的自定义资源CRD,关于字段的详细描述,请参见下文。
Albconfig
字段 | 取值类型 | 说明 |
apiVersion | 固定取值 | APIVersion定义了该对象的版本化模式。 固定取值: |
kind | 固定取值 | Kind表示该对象所代表的REST资源。 固定取值: |
metadata | 标准对象的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。 默认值: |
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服务高级用法。