列出路由资源
本文档适用于使用服务路由 API 配置服务网格的网格管理员。
在服务路由 API 模型中,Route 资源会附加到 Mesh 或 Gateway 资源。在其配置中,Mesh 或 Gateway 资源引用一个或多个 Route 资源。
如果您是 Mesh 或 Gateway 资源的所有者,则可以列出关联到 Mesh 或 Gateway 的 Route 资源。
每个 Mesh 或 Gateway 资源都有一个由 RouteView 资源组成的合成子集合。每个 RouteView 都对应于一个 Route。RouteView 对象与 Route 对象一起创建。
在下图中,Gateway A 的 RouteView 由项目 A 中的 TCPRoute 资源组成。Gateway B 的 RouteView 包含项目 B 的 HTTPRoute 资源和项目 C 的 GRPCRoute 资源。
此功能的范围限定为 Mesh 或 Gateway 级别。Gateway 或 Mesh 的 RouteView 会列出附加到该 Gateway 或 Mesh 的路由,而不是列出附加到关联范围的所有路由。
如需列出 RouteView 资源,请发出以下命令:
gcloud alpha network-services route-views list \
--location=global \
--[mesh | gateway]=[ MESH_NAME | GATEWAY_NAME ]
如需详细了解 Route 本身,请发出以下命令:
gcloud alpha network-services route-views describe --route-view=ROUTEVIEW_FULLNAME
常见的工作流是列出 Mesh 或 Gateway 的 RouteViews,然后逐一描述,以全面了解附加的 Route。
您无法创建、更新或删除 RouteView 资源。当相应的 Route 资源创建、更新和删除时,RouteView 资源也会相应地创建、更新和删除。
问题排查
如果 route-views 命令未能列出路由的 RouteView(例如 Listed 0 items.),或者未列出所有已知的路由,请执行以下操作:
- 验证
route-views list中使用的 Mesh 或 Gateway 是否在 Route 的meshes或gateways字段中引用,方法分别是: gcloud network-services [http-routes|grpc-routes|tcp-routes|tls-routes] describe \ --location global ROUTE_ID
- 对于拥有许多资源的客户,创建支持服务工单以获取帮助。
- 手动触发 Route 更新
- 重新导入路由
gcloud network-services http-routes export my-route --location=global \ --destination=export.yaml
gcloud network-services http-routes import my-route --location=global \ --source=export.yaml
- 对于使用生成的 NetworkServices 客户端的客户,请调用相应的 NetworkServices.Update*Route API。
- 修改说明以触发 Terraform 自动化操作。