您可通過配置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服務高級用法。