排解 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 資源」一節,進一步排解問題。

您可以使用類似的方法,對其他資源 (例如 HTTPRouteTCPRoute 和其他路徑資源) 相關的問題進行偵錯。

通常狀態和事件會指出潛在問題。

控制器似乎無法調解 TDMesh 資源

如要診斷問題,請確認是否存在 gke-td GatewayClass

kubectl get gatewayclasses

輸出內容應包含名稱為 gke-tdGatewayClass

NAME             CONTROLLER
gke-td           networking.gke.io/gateway

如果沒有傳回該名稱的 GatewayClass,請按照「安裝必要的自訂資源定義」中的步驟確認設定叢集中已安裝所有必要的 CRD,然後使用下列指令重新啟用 Cloud Service Mesh Google Kubernetes Engine 服務網格的中心功能:

  1. 停用這項功能:

    gcloud container hub ingress disable
    
  2. 重新啟用這項功能:

    gcloud container hub ingress enable \
      --config-membership=/projects/PROJECT_ID/locations/global/memberships/gke-1