waypoint 问题故障排除
本指南说明如果您已经将命名空间、服务或工作负载注册到 waypoint 代理中,但未看到预期的行为时应该如何操作。
流量路由或安全策略问题
通过 productpage
服务将一些请求从 curl
Pod 发送到 reviews
服务:
将一些请求从 curl
Pod 发送到 reviews
v2
Pod:
到 reviews
服务的请求应由 reviews-svc-waypoint
强制执行所有 L7 策略。
到 reviews
v2
Pod 的请求应由 reviews-v2-pod-waypoint
强制执行所有 L7 策略。
如果您的 L7 配置未应用,请先运行
istioctl analyze
以检查您的配置是否存在校验问题。确定哪个 waypoint 正在为您的服务或 Pod 实现 L7 配置。
如果您的源使用服务的主机名或 IP 调用目标,请使用
istioctl experimental ztunnel-config service
命令确认您的 waypoint 由目标服务所使用。 根据早前的示例,reviews
服务应该使用reviews-svc-waypoint
, 而default
命名空间中的所有其他服务应使用waypoint
命名空间。如果您的源使用 Pod IP 调用目标,请使用
istioctl ztunnel-config workload
命令确认您的 waypoint 由目标 Pod 所使用。 根据早前的示例,reviews
v2
Pod 应使用reviews-v2-pod-waypoint
, 而default
命名空间中的所有其他 Pod 不应有任何 waypoint, 因为默认情况下 waypoint 仅处理面向服务的流量。如果 Pod 的 waypoint 一栏的值不正确,请验证您的 Pod 是否带有
istio.io/use-waypoint
标签, 并且此标签的值可以处理工作负载流量的 waypoint 的名称。 例如,如果您的reviews
v2
Pod 使用的 waypoint 只能处理服务流量, 那么您将不会看到该 Pod 使用的所有 waypoint。 如果您的 Pod 上的istio.io/use-waypoint
标签看起来正确, 请验证您的 waypoint 的 Gateway 资源是否带有istio.io/waypoint-for
的兼容值。 对于 Pod 来说,合适的值可能是all
或workload
。通过
istioctl proxy-status
命令检查 waypoint 的代理状态。启用 Envoy 的访问日志5并在发送一些请求后检查 waypoint 代理的日志:
如果信息不够,您可以为 waypoint 代理启用调试日志:
通过
istioctl proxy-config
命令检查 waypoint 的 Envoy 配置, 该命令显示与 waypoint 相关的所有信息,如集群、端点、监听器、路由和密钥:
有关如何调试 Envoy 的更多信息, 请参阅深入了解 Envoy 配置一节, 因为 waypoint 代理是基于 Envoy 的。