排解 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 分鐘且沒有附加事件,請參閱「Controller 似乎無法調解 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 服務網格的中心功能:
停用這項功能:
gcloud container hub ingress disable
重新啟用這項功能:
gcloud container hub ingress enable \ --config-membership=/projects/PROJECT_ID/locations/global/memberships/gke-1