排解 Cloud Service Mesh GKE 服務網格部署問題
本指南提供相關資訊,協助解決 Gateway API 服務網格部署作業的問題。
status 欄位中的資訊
所有 Gateway API 資源都有 status 欄位,可從控制器角度反映資源狀態。除了 status 欄位,控制器也會將事件附加至 Gateway API 資源,提供其對這些資源執行的作業相關資訊。
舉例來說,使用下列指令檢查 TDMesh 的狀態和事件:
kubectl describe tdmesh td-mesh
輸出結果會與下列內容相似:
...
Status:
Conditions:
Last Transition Time: 1970-01-01T00:00:00Z
Message: Waiting for controller
Reason: NotReconciled
Status: False
Type: Scheduled
Events:
...
先前的狀態表示控制器尚未開始調解這個特定網格。如果這個狀態持續超過 5 分鐘,且沒有附加任何事件,請參閱下一節「控制器似乎無法調解 TDMesh 資源」,進一步排解問題。
您可以使用類似的方法,偵錯與其他資源相關的問題,例如 HTTPRoute、TCPRoute 和其他路由資源。
通常狀態和事件會指出根本問題。
控制器似乎不會調解 TDMesh 資源
如要診斷問題,請確認存在 gke-td GatewayClass:
kubectl get gatewayclasses
輸出內容應包含名為 gke-td 的 GatewayClass。
NAME CONTROLLER gke-td networking.gke.io/gateway
如果系統未傳回該名稱的 GatewayClass,請按照「安裝必要的自訂資源定義」一文的說明,確認所有必要的 CRD 都已安裝在設定叢集中,然後使用下列指令重新啟用 Cloud Service Mesh Google Kubernetes Engine 服務網格的 Hub 功能:
停用這項功能:
gcloud container hub ingress disable
重新啟用這項功能:
gcloud container hub ingress enable \ --config-membership=/projects/PROJECT_ID/locations/global/memberships/gke-1