操作和疑難排解
監控、維護和疑難排解模型閘道部署,包括模型設定更新、憑證輪換、健康監控、日誌收集,以及常見連線和身分驗證問題的解決方案。
部署後,對模型閘道的持續操作管理有助於確保對已設定 AI 模型的可靠存取,並將服務中斷降至最低。管理員可以檢閱活動的模型設定、更新供應商憑證、輪換 Secret、監控閘道健康狀態,以及在發生問題時收集診斷資訊。
檢視已設定的模型
檢視模型有兩個層次——設定檔中的內容,以及 bob-inference 在執行時實際載入的內容。
- 設定層次 — 從推論 ConfigMap 擷取目前的模型閘道設定:
oc get cm bob-inference-config -n <bob-namespace> -o yaml | yq '.data."config.yaml"' - 執行時層次 —
bob-inference已註冊且正在主動路由的模型:oc exec -n <bob-namespace> deploy/bob-gateway -- \ curl -sk https://bob-inference.<bob-namespace>.svc.cluster.local:7330/v1/model/info | jq .
執行時的 /v1/model/info 端點只列出 exposed: true 的模型。設定檔是查看已設定模型完整集合的唯一方式。
更新供應商憑證
憑證儲存在 config.yaml 的 bob.modelGateway.secrets 下。使用 bobctl update-model-config --update-secrets 將更新後的憑證推送到叢集。
更新憑證
在 config.yaml 的 bob.modelGateway.secrets 下更新憑證。
將更新後的 Secret 推送到叢集
bobctl update-model-config --update-secretsibm-bob-operator 會調解 bob-inference 部署並自動掛載新的 Secret。
如果你同時更新模型設定檔和憑證,可以用單一指令一次推送兩者:
bobctl update-model-config --model-config ./my-model-config.yaml --update-secrets輪換 Secret
Secret 輪換遵循與憑證更新相同的模式,但需要特別注意時機以避免停機。
建議的零停機輪換順序:
- 在
config.yaml的bob.modelGateway.secrets中更新新的憑證值。 - 將新的 Secret 推送到叢集:
bobctl update-model-config --update-secrets。 - 重啟 Inference Service 以套用新的 Secret:
oc rollout restart deploy/inference-service -n <bob-namespace> - 使用安裝後驗證中的推論測試確認新憑證有效。
- 確認部署健康後,才在供應商端撤銷舊憑證。
供應商特定注意事項:
openai_compatible/ API 金鑰 — 更新 Secret 後新金鑰立即生效。一旦部署確認健康,即可安全撤銷舊金鑰。bedrock— 執行update-model-config之前,確保新的 IAM 存取金鑰在 AWS 中已生效。IAM 傳播可能需要幾秒鐘。vertex— 生成並以 base64 編碼新的服務帳戶金鑰,更新config.yaml,執行bobctl update-model-config --update-secrets,驗證後在 GCP 中刪除舊金鑰。ca_cert_pem— 憑證更新時,在套用前確認新憑證未過期。請參閱 TLS 憑證驗證。
監控閘道健康狀態
Pod 重啟次數 — 重啟次數持續上升是週期性啟動失敗的早期信號(Bad Secret 掛載、設定解析錯誤):
oc get pods -n <bob-namespace> -l app=bob-inference \
-o custom-columns='NAME:.metadata.name,RESTARTS:.status.containerStatuses[0].restartCount'存活和就緒探測 — 檢查目前的探測設定和狀態:
oc describe deploy/bob-inference -n <bob-namespace> | grep -A 10 "Liveness\|Readiness"定期健康檢查 — /v1/model/info 端點可作為簡單的存活檢查。如果它返回有效的模型清單,表示閘道正在運作。這可以從監控工具或叢集內的 cron job 進行輪詢。
收集日誌和診斷資訊
特定時間窗口的日誌(在調查已回報的事件時最有用):
oc logs -n <bob-namespace> deploy/bob-inference \
--since-time="2025-01-01T12:00:00Z" > bob-inference.log前一個 Pod 實例的日誌(如果 Pod 已重啟且失敗日誌已消失):
oc logs -n <bob-namespace> deploy/bob-inference --previous完整診斷套件組合,供支援使用:
oc describe pod -n <bob-namespace> -l app=bob-inference >> diagnostics.txt
oc get events -n <bob-namespace> --sort-by='.lastTimestamp' >> diagnostics.txt
oc logs -n <bob-namespace> deploy/bob-inference --since=1h >> diagnostics.txt診斷套件組合包含 Pod 環境變數名稱,但不包含 Secret 值(Secret 是掛載的,不會列印到日誌中)。在傳送給支援人員之前,請檢閱日誌是否有任何意外輸出的憑證。
疑難排解連線和身分驗證問題
模型未出現在 /v1/model/info 中
- 檢查是否設定了
exposed: false——如果是,這是預期行為。 - 在啟動日誌中檢查該
model_name的註冊錯誤。 - 驗證供應商區塊——正確的
base_url、modelID 和憑證。
推論請求出現 401 Unauthorized
- 確認
bob.modelGateway.secrets中的 Secret 值正確且是最新的。 - 確認模型設定中的
env.<VAR>參照與 Secret 金鑰名稱完全相符(區分大小寫)。 - 重啟 Inference Service 並重試——Secret 可能已更新但未重啟。
- 在外部測試憑證。請參閱身分驗證驗證。
502 Bad Gateway 或 connection refused
- 確認模型端點已啟動,且可從叢集存取。請參閱連線能力測試。
- 檢查
base_url問題——結尾斜線、錯誤的協定(http與https)、錯誤的連接埠。 - 檢查可能在安裝後阻止出站流量的網路原則變更。
certificate signed by unknown authority
- 確認
ca_cert_pem已設定且參照有效的環境變數。 - 確認環境變數存在於
bob.modelGateway.secrets中。 - 驗證憑證未過期:
openssl x509 -noout -dates。 - 透過檢查主體別名確認憑證覆蓋端點的主機名稱。
Inference Service Pod 處於 CrashLoopBackOff
- 從前一個實例檢查日誌:
oc logs --previous。 - 尋找設定解析錯誤——模型閘道設定中格式錯誤的 YAML。
- 在事件區段中尋找缺少的 Secret 掛載:
oc describe pod。 - 在重新套用之前確認模型閘道設定 YAML 有效。