為了方便您發現和解決各類配置的格式問題,本文列舉了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服務進階用法。