排查 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