为了方便您发现和解决各类配置的格式问题,本文列举了ALB Ingress支持的Annotation(注解)以及AlbConfig字段的具体内容和用法,包含ALB的配置信息,例如转发规则、会话保持策略、健康检查配置等。
ALB Ingress支持的Annotation
请根据需求将注解(Annotation)添加到ALB Ingress资源上,以配置与ALB相关的属性。
健康检查
注解项(Annotation) | 取值 | 默认值 | 说明 |
alb.ingress.kubernetes.io/healthcheck-enabled |
| false | 是否开启后端服务器组的健康检查。 |
alb.ingress.kubernetes.io/healthcheck-path | string | / | 健康检查路径。 |
alb.ingress.kubernetes.io/healthcheck-protocol |
| HTTP | 健康检查协议。 |
alb.ingress.kubernetes.io/healthcheck-method |
| HEAD | 健康检查的方法。 |
alb.ingress.kubernetes.io/healthcheck-httpcode | http_2xx、http_3xx、http_4xx、http_5xx | http_2xx | 健康检查状态码。 可以选择http_2xx、http_3xx、http_4xx、http_5xx范围内的一个或多个状态码。 |
alb.ingress.kubernetes.io/healthcheck-timeout-seconds | 1~300 | 5 | 健康检查超时时间,单位秒(s)。 |
alb.ingress.kubernetes.io/healthcheck-interval-seconds | 1~50 | 2 | 健康检查周期。 |
alb.ingress.kubernetes.io/healthy-threshold-count | 2~10 | 3 | 健康检查成功多少次判定为成功。 |
alb.ingress.kubernetes.io/unhealthy-threshold-count | 2~10 | 3 | 健康检查失败多少次判定为失败。 |
alb.ingress.kubernetes.io/healthcheck-connect-port | 0~65535 | 0 | 健康检查端口。 0表示使用后端服务器的端口进行健康检查。 |
重定向
注解项(Annotation) | 取值 | 默认值 | 说明 |
alb.ingress.kubernetes.io/ssl-redirect |
| false | 是否将HTTP请求(301)重定向到HTTPS(443)。 |
后端服务使用的协议
注解项(Annotation) | 取值 | 默认值 | 说明 |
alb.ingress.kubernetes.io/backend-protocol |
| http |
|
重写
注解项(Annotation) | 取值 | 默认值 | 说明 |
alb.ingress.kubernetes.io/rewrite-target | string | 无 | 路径重写的地址。 |
监听
注解项(Annotation) | 取值 | 默认值 | 说明 |
alb.ingress.kubernetes.io/listen-ports |
|
| 关联监听端口与协议。 |
优先级
注解项(Annotation) | 取值 | 默认值 | 说明 |
alb.ingress.kubernetes.io/order | 1~1000 | 10 | 转发规则的相对优先级。 |
灰度发布
注解项(Annotation) | 取值 | 默认值 | 说明 |
alb.ingress.kubernetes.io/canary |
| false | 是否启用Canary灰度。 |
alb.ingress.kubernetes.io/canary-by-header | string | 无 | 启用灰度时命中的请求标头。 |
alb.ingress.kubernetes.io/canary-by-header-value | string | 无 | 启用灰度时命中的请求标头对应的标头值。 |
alb.ingress.kubernetes.io/canary-by-cookie | string | 无 | 启用灰度时的Cookie标记。 |
alb.ingress.kubernetes.io/canary-weight | string | 无 | 启动灰度时请求到指定服务的百分比(值为0~100的整数)。 |
会话保持
注解项(Annotation) | 取值 | 默认值 | 说明 |
alb.ingress.kubernetes.io/sticky-session |
| false | 是否开启后端服务器组会话保持。 |
alb.ingress.kubernetes.io/sticky-session-type |
| Insert | 开启会话保持的类型。 |
alb.ingress.kubernetes.io/cookie-timeout | 1~86400 | 1000 | 会话保持超时时间,单位秒(s)。 |
负载均衡
注解项(Annotation) | 取值 | 默认值 | 说明 |
alb.ingress.kubernetes.io/backend-scheduler |
| wrr | 后端服务器组负载均衡算法。 |
alb.ingress.kubernetes.io/backend-scheduler-uch-value | string | 无 | 负载均衡算法为uch时的辅助参数。 |
跨域
注解项(Annotation) | 取值 | 默认值 | 说明 |
alb.ingress.kubernetes.io/enable-cors |
| false | 是否启用跨域配置。 |
alb.ingress.kubernetes.io/cors-allow-origin | string | * | 允许跨域的源。 |
alb.ingress.kubernetes.io/cors-expose-headers | stringArray | 无 | 允许暴露的Header列表。 |
alb.ingress.kubernetes.io/cors-allow-methods | 以下选项选择一项或多项:
|
| 允许跨域的请求方法。 |
alb.ingress.kubernetes.io/cors-allow-credentials |
| true | 跨域是否允许携带凭证信息。 |
alb.ingress.kubernetes.io/cors-max-age | -1~172800(秒) | 172800 | 预检请求在浏览器最大的缓存时间。 |
alb.ingress.kubernetes.io/cors-allow-headers | stringArray |
| 允许跨域的Header列表。 |
自定义转发
注解项(Annotation) | 取值 | 默认值 | 说明 |
alb.ingress.kubernetes.io/actions.{svcName} | json | 无 | 自定义转发动作。 |
alb.ingress.kubernetes.io/conditions.{svcName} | json | 无 | 自定义转发条件。 |
alb.ingress.kubernetes.io/rule-direction.{svcName} |
| Request | 自定义转发方向。 |
其他
注解项(Annotation) | 取值 | 默认值 | 说明 |
alb.ingress.kubernetes.io/backend-keepalive |
| false | 是否启用后端长链接。 |
alb.ingress.kubernetes.io/traffic-limit-qps | 1~100000 | 无 | QPS限速配置。 |
alb.ingress.kubernetes.io/use-regex |
| false | 允许Path字段使用正则,仅在Prefix类型下生效。 |
ALB Ingress的AlbConfig字段
AlbConfig是用来描述ALB实例及监听的自定义资源CRD,关于字段的详细描述,请参见下文。
Albconfig
字段 | 取值 | 默认值 | 说明 |
apiVersion | alibabacloud.com/v1 | 无 | APIVersion定义了该对象的版本化模式。 |
kind | AlbConfig | 无 | Kind表示该对象所代表的REST资源。 |
metadata | 无 | 标准对象的metadata。 关于metadata的更多信息,请参见metadata。 | |
spec | 无 | 用来描述ALB实例属性和监听属性的参数列表。 | |
status | 无 | 在调和成功后,会将实例状态写入 |
AlbConfigSpec
字段 | 取值 | 默认值 | 说明 |
config | 无 | ALB实例的属性。 | |
listeners | 无 | 实例下的监听属性。 |
LoadBalancerSpec
字段 | 取值 | 默认值 | 说明 |
id | string | "" | ALB实例ID,填写代表启用复用模式。 |
name | string | k8s-{namespace}-{name}-{hashCode} | ALB实例名。 |
addressAllocatedMode |
| Dynamic | 实例的地址模式。 |
addressType |
| Internet | ALB实例的IPv4网段地址类型。 |
ipv6AddressType |
| Intranet | ALB的IPv6网段地址类型。 |
addressIpVersion |
| IPv4 | 协议版本。 |
resourceGroupId | string | 默认资源组 | 实例所属的资源组ID。 |
edition |
| Standard | 实例功能版本。 |
deletionProtectionEnabled | *bool | null | 保留字段,目前不可调整,强制保留。 |
forceOverride | *bool | false | 复用模式下强制覆盖实例属性。 |
listenerForceOverride | *bool | null | 复用模式下强制覆盖监听属性。 |
zoneMappings | 无 | 可用区和EIP配置。 | |
accessLogConfig | 无 | 日志收集。 | |
billingConfig | 无 | 计费方式。 | |
modificationProtectionConfig | 无 | 配置修改保护。 | |
tags | 无 | 实例标签。 |
ZoneMapping
字段 | 取值 | 默认值 | 说明 |
vSwitchId | string | "" | 必填。 虚拟交换机的ID。 |
zoneId | string | "" | 自动装填。 虚拟交换机的可用区。 |
allocationId | string | "" | 弹性公网EIP的ID。 |
eipType | string | "" | 保留字段。 |
AccessLogConfig
字段 | 取值 | 默认值 | 说明 |
logStore | string | "" | SLS日志库的名称。 |
logProject | string | "" | SLS日志项目的名称。 |
BillingConfig
字段 | 取值 | 默认值 | 说明 |
internetBandwidth | int | 0 | 保留字段。 |
internetChargeType | string | "" | 保留字段。 |
payType | PostPay | PostPay | 计费方式。 |
bandWidthPackageId | string | "" | 绑定共享带宽包ID。绑定后不支持解绑。 |
ModificationProtectionConfig
字段 | 取值 | 默认值 | 说明 |
reason | string | "" | 保留字段。 |
status | string | "" | 保留字段。 |
Tag
字段 | 取值 | 默认值 | 说明 |
key | "" | "" | 标签的Key值。 |
value | "" | "" | 标签的Value值。 |
ListenerSpec
字段 | 取值 | 默认值 | 说明 |
gzipEnabled |
| null | 是否开启压缩。 |
http2Enabled |
| null | 是否开启HTTP2协议。 |
port |
| 0 | 必填。 监听端口。 |
protocol |
| "" | 必填。 监听协议。 |
securityPolicyId | string | "" | TLS安全策略的ID。 |
idleTimeout | int | 60 | 空闲链接超时时间。 说明 取值为0,表示使用默认的空闲超时值。 |
loadBalancerId | string | "" | 保留字段。 |
description | string |
| 监听名。 |
caEnabled | bool | false | 保留字段。 |
requestTimeout | int | 60 | 请求超时时间。 |
quicConfig | Quic监听配置。 | ||
defaultActions | Action | null | 保留字段。 |
caCertificates | null | 保留字段。 | |
certificates | null | 监听服务器证书。 | |
xForwardedForConfig | 无 | XForward字段配置信息。 | |
logConfig | LogConfig | 无 | 保留字段。 |
aclConfig | 无 | 访问控制。 |
QuicConfig
字段 | 取值 | 默认值 | 说明 |
quicUpgradeEnabled | bool | false | 是否开启Quic升级。 |
quicListenerId | string | "" | Quic的关联监听。 |
Certificate
字段 | 取值 | 默认值 | 说明 |
IsDefault | bool | false | 指示证书是否为默认证书。 说明 一个服务或系统只能指示一个证书为默认证书。 |
CertificateId | string | "" | 证书CertIdentifier的ID。 |
XForwardedForConfig
字段 | 取值 | 默认值 | 说明 |
XForwardedForClientCertSubjectDNAlias | string | "" | 自定义头名称。 仅当 |
XForwardedForClientCertSubjectDNEnabled | bool | false | 是否通过 |
XForwardedForProtoEnabled | bool | false | 是否通过 |
XForwardedForClientCertIssuerDNEnabled | bool | false | 是否通过 |
XForwardedForSLBIdEnabled | bool | false | 是否通过 |
XForwardedForClientSrcPortEnabled | bool | false | 是否通过 |
XForwardedForClientCertFingerprintEnabled | bool | false | 是否通过 |
XForwardedForEnabled | bool | false | 是否通过 |
XForwardedForSLBPortEnabled | bool | false | 是否通过 |
XForwardedForClientCertClientVerifyAlias | string | "" | 自定义头名称。 仅当 |
XForwardedForClientCertIssuerDNAlias | string | "" | 自定义头名称。 仅当 |
XForwardedForClientCertFingerprintAlias | string | "" | 自定义头名称。 仅当 |
XForwardedForClientCertClientVerifyEnabled | bool | false | 是否通过 |
AclConfig
字段 | 取值 | 默认值 | 说明 |
aclName | string | 无 | AclEntry模式下关联的ACL策略名。 |
aclType |
| "" | 策略类型,黑白名单。 |
aclEntries | string | null | 直接写访问策略条目的。 |
aclIds | stringArray | null | 关联已经存在的策略ID列表。 |
AlbConfigStatus
字段 | 输出内容 | 默认值 | 说明 |
loadBalancer | 无 | 负载均衡状态实例。 |
LoadBalancerStatus
字段 | 输出内容 | 默认值 | 说明 |
dnsname | string | 无 | ALB实例的DNS地址。 |
id | string | 无 | ALB实例ID。 |
listeners | 无 | ALB监听属性。 |
ListenerStatus
字段 | 输出内容 | 示例值 | 说明 |
portAndProtocol | string | 80/HTTP | 监听与协议。 |
certificates | 无 | 关联证书。 |
AppliedCertificate
字段 | 输出内容 | 示例值 | 说明 |
certificateId | string | xxxx-cn-hangzhou | 证书的标识符(certIdentifier)。 |
isDefault | bool | true | 是否为默认证书。 |
相关文档
ALB Ingress满足云原生应用在需要高度弹性和大规模七层流量管理时的各种需求。详细信息,请参见ALB Ingress快速入门。
关于ALB Ingress注解(Annotation)的具体用法,请参见ALB Ingress服务高级用法。