全部產品
Search
文件中心

Container Service for Kubernetes:ALB Ingress異常問題排查

更新時間:Nov 13, 2025

ALB Ingress Controller是一種用於Kubernetes叢集的Ingress Controller,用於將外部流量匯入到叢集內部的服務。當使用ALB Ingress訪問服務時,ALB Ingress Controller會監聽Service關聯的Endpoint資源的變化,即時將後端節點的狀態同步到對應的後端伺服器組中,並將變更同步到ALB執行個體。本文介紹在使用ALB Ingress過程中遇到的各種例外狀況事件的診斷和解決方案。

工作原理

通過ALB Ingress訪問服務時,ALB Ingress Controller組件會監控各類資源的變更,並將變更同步至關聯的ALB執行個體。同步過程中可能會因為各項限制或配置錯誤導致同步過程失敗,不同資源的邏輯對應關係和同步情況如下圖所示。

步驟一:查看例外狀況事件

  • 控制台方式:在左側導覽列,選擇網路 > 路由。選擇目標命名空間,單擊目標Ingress名稱進入基本資料頁面,然後切換到事件頁簽。

  • kubectl方式:

    kubectl describe ingress <ingress-name> -n <namespace>

    預期輸出:

    ...
    Events:
      Type     Reason                  Age                     From     Message
      ----     ------                  ----                    ----     -------
      Warning  FailedBuildModel        2m28s (x10 over 6m43s)  ingress  listener is not exist in alb, port: 443, protocol: HTTPS
      Normal   Sync                    19s (x32 over 11d)      ingress  Scheduled for sync
      Normal   SuccessfullyReconciled  4s (x20 over 11d)       ingress  Successfully reconciled

在事件詳細描述或者Message中尋找與Ingress相關的事件資訊。

步驟二:分析和解決例外狀況事件

常見例外狀況事件的報錯原因及解決方案見下表。

為避免老版本ALB Ingress Controller組件不相容新功能導致的例外狀況事件,診斷前可參考發布記錄將組件升級至目標版本。

報錯資訊(Message)

報錯原因

解決方案

listener is not exist in alb, port: 80, protocol: HTTP

對於2.11.0及以上版本的ALB Ingress Controller組件,Ingress上的監聽只會進行關聯,不會自動建立。若您未在AlbConfig中建立對應的監聽,卻在Ingress中使用了監聽,就會產生報錯資訊。

若您使用的是2.11.0及以上版本的ALB Ingress Controller組件,請在AlbConfig中建立Ingress資源所需的監聽。具體操作,請參見通過AlbConfig配置ALB監聽

listener not found for (80/HTTP), with ingresses 1

對於2.11.0及以上版本的ALB Ingress Controller組件,如果在AlbConfig中直接移除了Ingress仍在關聯的監聽,將會產生報錯,並顯示缺失的監聽和關聯的Ingress個數。

如需移除監聽,請將監聽關聯的Ingress全部移除。

重要

如果移除了預期外的監聽,則需重新添加已移除的監聽。

none certificate found for host

開啟了TLS且有網域名稱使用了自動探索認證功能,但是在認證中心沒有發現該網域名稱可用的認證。

The param of Rules.1.RuleConditions.2.PathConfig.Values.1 is illegal

建立或修改轉寄規則時包含非法路徑參數。

  • 如果您在ALB Ingress中使用了Rewrite註解,需要將pathType欄位的參數值修改為Prefix

  • 如果您未在ALB Ingress使用Rewrite註解,那麼有可能path欄位中包含了特殊字元。

    說明

    非Regex類型的路徑必須以/開頭,支援大小寫字母、數字和貨幣符號($)、加號(+)、正斜線(/)、and(&)、波浪線(~)、at(@)、底線(_)、短劃線(-)、英文半形句號(.)、英文半形冒號(:),還支援星號(*)和英文半形問號(?)作為萬用字元使用。

The param of ServerGroupName is illegal

報錯說明ALB後端伺服器組命名格式不正確。

請按照正確的格式命名伺服器組名稱。

當前伺服器組名稱的產生格式是命名空間+Service名稱+連接埠。其中,伺服器組名稱的字元長度為[2, 128],必須以大小寫字母或中文開頭,可包含數字、英文半形句號(.)、底線(_)和短劃線(-)。

The specified resource sgp-vz2fb219vv792flx3u is in use

報錯說明該ACK託管的ALB後端伺服器組被另一個ALB執行個體引用。

登入應用型負載平衡ALB控制台,在左側導覽列選擇應用型負載平衡 ALB > 伺服器組,在伺服器組頁面找到對應的後端伺服器組,根據需求解除關聯的ALB執行個體。

Message: 無效參數,請檢查參數輸入

常見於AlbConfig指定認證時,認證ID配置錯誤。

請檢查認證ID是否使用了資源ID或數字ID,應當使用由CertIdentifier指定的認證ID。

Message: Failed to create SSL Certificate with name default-https-secret-1-b585e6 ({namespace}-{name}-{identity}). Error: 認證已經到期

Secret認證已到期。異常資訊中認證名稱由三部分組成:{namespace}-{name}-{identity}

  • {namespace}:異常Secret所在命名空間,樣本值:default

  • {name}:異常Secret名稱,樣本值:https-secret-1

  • {identity}:異常Secret內容雜湊值,樣本值:b585e6

  1. 更新Ingress中配置在secretName中已到期的認證。新認證的有效期間至少超過當前日期 1 天以上。

  2. 刪除Ingress中的secretName配置,使用認證自動探索。

詳細配置方式,請參見配置HTTPS認證以實現加密通訊

failed to createSSLCertificateWithName: XXX

ErrorCode: NameRepeat

Message: 名稱重複,請重新輸入。

Ingress使用Secret認證,認證到期後使用配置AlbConfig方式上傳認證會複用到期認證的名稱,導致SSL認證名稱重複。

invalid server group Cookie:

  • 未配置Cookie

    當會話保持配置了重寫Cookie方式(sticky-session-type: "Server")時,不填寫Cookie值會產生報錯。錯誤樣本如下:

    ...
    alb.ingress.kubernetes.io/sticky-session: "true"
    alb.ingress.kubernetes.io/sticky-session-type: "Server"   
    alb.ingress.kubernetes.io/cookie-timeout: "1800"
    alb.ingress.kubernetes.io/cookie: "" # 不允許為空白

使用重寫Cookie方式時,需配置實際的Cookie值:

...
alb.ingress.kubernetes.io/cookie: "test" 

更多參數說明,請參見通過註解實現會話保持

  • ALB Ingress Controller版本較低

    v2.15.0-aliyun.1以下版本的ALB Ingress Controller中,伺服器組會話保持不支援自訂Cookie。

通過組件管理升級ALB Ingress Controller組件

The quota of alb_quota_server_added_num is exceeded for resource eni-xxxx, usage 202/200

觸發了ALB的quota alb_quota_server_added_num配額限制,即同一個後端伺服器(IP)可被添加到ALB後端伺服器組的次數限制。

通過配額中心提升伺服器組配額

常見問題

ALB Ingress無例外狀況事件,但是變更不生效怎麼辦?

當出現未執行AlbConfig相關的調諧事件,或者變更事件沒有成功處理時,原因可能是IngressClass和AlbConfig的綁定關係錯誤。請參考使用IngressClass關聯AlbConfig與Ingress檢查IngressClass中指定的spec.parameters參數是否關聯了正確的AlbConfig資來源物件名稱。