網域路由由應用程式設定管理,需要 Operator 或 Admin。管理員應先啟用 Pingress,並準備可存取的 HTTP/HTTPS 入口。
設定 Pingress
先確認應用程式在預期容器連接埠提供服務,再設定入口。
管理員打開 Pingress,選擇可用版本及部署位置,可以指定伺服器或伺服器標籤。目標伺服器需滿足網路條件,HTTP/HTTPS 入口通常使用 TCP 80 和 443。
儲存後確認實例數量和執行狀態。選擇標籤時,應把 DNS 或前置負載均衡指向實際執行 Pingress 的可達伺服器;給一台伺服器加標籤不會自動修改外部 DNS。
應用程式網域路由由 Operator 或 Admin 在應用程式設定中管理;Pingress 組件和憑證管理需要 Admin。
網域記錄、應用程式路由和憑證是分別管理的對象。只添加 DNS 不會自動建立應用程式路由,只打開 HTTPS 開關也不代表憑證已簽發。
綁定一個網域
網域字段不包含 http://、https://、連接埠或路徑。當前網域輸入使用 ASCII 網域;國際化網域應使用對應的 ASCII 表示。不要將 IP 地址或通配符當作普通網域填寫。
條件路由
| 條件 | 用途 |
|---|---|
| 路徑前綴 | 將某個路徑分支交給指定目標連接埠 |
| 請求頭 | 根據指定請求頭存在或值匹配選擇規則 |
| Cookie | 根據指定 Cookie 存在或值匹配選擇規則 |
| HTTPS | 為該網域規則啟用 HTTPS 行為 |
同一條規則中填寫的條件需要同時滿足。填寫請求頭或 Cookie 的名稱、但不指定匹配值時,表達的是存在性條件;指定值後則按該值判斷。
路徑前綴按路徑邊界匹配:/api 匹配 /api 和 /api/users,不匹配 /apix。轉送時保留原請求路徑。
示例:前端與 API
可以讓網站預設規則指向前端連接埠,再讓 /api 前綴規則指向提供 API 的目標。設定前確認後端實際接受帶 /api 的請求路徑。
多條規則重疊時,條件數量及前綴等會影響選擇。應盡量讓規則職責清晰,並分別驗證命中與不命中的請求,不要依賴清單顯示順序充當任意優先級設定。
驗證 DNS 與入口
curl -I http://app.example.com
curl -I https://app.example.com替換為實際網域。DNS 尚未傳播時,可以使用支援指定解析地址的用戶端做定向測試,但最終仍要驗證公開 DNS 的結果。
如果設定了 AAAA 記錄,必須確認 IPv6 路徑同樣可用。只驗證 IPv4 成功不足以證明所有用戶端都能存取。
故障定位
請求未到達 Pingress 時檢查 DNS、地址和防火牆。到達但未匹配時檢查網域、路徑、請求頭及 Cookie。匹配後上游失敗時檢查容器連接埠、實際副本和應用程式監聽地址。