Kubernetes Ingress Annotations 是與特定 Ingress 控制器(如 Nginx、Traefik、HAProxy 等)配合使用,用于擴展和定制 Ingress 資源行為的關鍵配置項。它們通常以鍵值對的形式添加在 Ingress 資源的?metadata
部分。
Ingress Annotations參數速查表
下面我用一個表格匯總常見的、主要用于 ?Nginx Ingress 控制器?? 的 Annotations,并按其功能分類,方便你快速查閱:
功能分類 | 注解名稱 (Annotation) | 類型 | 說明與示例值 |
路由與路徑? |
| URI | 重寫請求路徑?。例:? |
| string | 將根路徑重定向?。例: 訪問? | |
| bool | 啟用正則表達式匹配路徑?。例:? | |
SSL/TLS? |
| bool | 將HTTP請求重定向到HTTPS? (需配置TLS)。例:? |
| bool | 強制所有HTTP重定向到HTTPS? (即使未配置TLS)。例:? | |
| bool | SSL流量直接透傳到后端?。例:? | |
認證與安全? |
| string | 認證類型?。例:? |
| string | 包含認證憑據的Secret?。例:? | |
| string | 認證域提示信息?。例:? | |
| string | 外部認證服務URL?。例:? | |
| string | IP白名單?。例:? | |
流量控制? |
| number | 限制每秒請求數?。例:? |
| number | 限制單個IP的并發連接數?。例:? | |
| string | 請求體最大大小?。例:? | |
| number | 與上游服務器連接超時時間(秒)?。例:? | |
| number | 讀取上游響應的超時時間(秒)?。例:? | |
會話保持? |
| string | 啟用會話保持?。例:? |
| string | 自定義會話Cookie名稱?。例:? | |
| string | 會話保持模式?。例:? | |
Canary發布? |
| bool | 啟用金絲雀發布?。例:? |
| number | 流量權重 (0-100)?。例:? | |
| string | 基于請求頭路由?。例:? | |
| string | 指定請求頭的值?。例:? | |
| string | 基于Cookie路由?。例:? | |
CORS? |
| bool | 啟用跨域資源共享(CORS)?。例:? |
| string | 允許的跨域來源?。例:? | |
| string | 允許的HTTP方法?。例:? | |
| string | 允許的請求頭?。例:? | |
后端協議? |
| string | 指定與后端服務通信的協議?。例:? |
自定義配置? |
| string | 在Nginx的server塊中插入自定義配置?? |
| string | 在Nginx的location塊中插入自定義配置?? |
使用注意事項
注解值格式?:所有注解的鍵和值都必須是字符串。??布爾值??(如 true/false)或??數字??(如權重、超時時間)必須用??引號??包裹(例如?
"true"
、"100"
)。控制器特異性?:絕大多數注解都依賴于特定的 Ingress 控制器(如 Nginx、Traefik、HAProxy),??不同控制器的注解前綴和名稱可能不同??(例如 Nginx 使用?
nginx.ingress.kubernetes.io/
,Traefik 使用?traefik.ingress.kubernetes.io/
,AWS ALB 使用?alb.ingress.kubernetes.io/
)。使用時請確認你的集群使用的控制器類型,并查閱其官方文檔 。金絲雀發布優先級?:當同時配置多種金絲雀規則(如按頭、按Cookie、按權重)時,??優先級通常為:請求頭 > Cookie > 權重??。
會話保持?:基于 Cookie 的會話保持是目前常見的方式,可通過?
affinity-mode
選擇?balanced
(均衡)或?persistent
(持久)模式?。