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