逐步排查 Cloud Service Mesh 问题
本部分介绍如何排查和解决使用 Cloud Service Mesh 时遇到的问题。如果您需要其他帮助,请参阅获取支持。
问题排查步骤
请按照以下常规步骤来排查 Cloud Service Mesh 问题:
- 使用自动配置验证工具。
- 检查遇到的常见问题是否存在已知的解决方案。
- 缩小问题的范围。
- 查看相关日志和信息。
- 收集诊断日志并寻求帮助。
使用自动验证工具
Cloud Service Mesh 包含自动诊断和配置验证工具 这样有助于解决问题,并帮助您避免以后再出现。下面几个部分将介绍如何使用这些工具。
istioctl analyze
istioctl analyze
诊断工具可以检测常见的配置问题。按照这些说明安装 istioctl
。
istioctl analyze
会读取集群配置;如果发现问题,则提供信息性消息并提出补救建议。它适用于活跃集群或一组本地配置文件,也可用于这两者的组合,帮助您在将更改应用到集群之前发现问题。如需了解详情,请参阅使用 istioctl analyze
诊断配置。如需详细了解 istioctl analyze
检测到的错误,请参阅配置分析消息。
分析活跃集群
使用以下命令分析活跃集群。
istioctl analyze -A
如果 istioctl analyze
检测到您的配置存在问题,则会显示一条消息,提供有用的信息来帮助您解决问题(如果已知)。例如,如果您在启用 Istio Sidecar 注入时未正确标记命名空间,则该工具会产生以下消息:
Warn [IST0102] (Namespace default) The namespace is not enabled for Istio injection. Run 'kubectl label namespace default istio-injection=enabled' to enable it, or 'kubectl label namespace default istio-injection=disabled' to explicitly mark it as not needing injection
如果问题仍然存在,请参阅下一部分以检查您的问题是否为已知问题。
检查常见问题和解决方案
您可以检查自己的症状是否与以下常见问题相符,从而节省时间 问题和解决方案部分,按 Cloud Service Mesh 功能分组 领域:
如果没有解决您的问题,请参阅下一部分。
缩小问题的范围
Cloud Service Mesh 由多种技术协同工作,这意味着 某些类型的问题与特定功能领域相关 或组件。每个组件都会生成各自有用的日志。在尝试手动分析其提供的信息之前,请先回答以下问题来缩小问题排查的范围:
- 问题发生在控制层面还是数据平面(例如
istiod
或 Envoy 代理)? - 问题与哪个功能(例如网络、遥测、安全等)相关?
- 是否存在服务网格流量丢失,或特定部署中的流量丢失?
- 问题是否因无法扩缩服务网格中的流量而出现或更加严重?
- 问题是否会导致延迟或其他性能问题?
- 您能否根据需要重现该问题?
- 问题是否在 Istio 和 GKE 进行配置变更后出现?
- 服务网格内的流量是否增长或出现高峰?
- 此集群是否启用了任何显著功能或拥有非典型部署?
- 您是否观察到 CPU 利用率或内存利用率较高的情况?如果是,预期利用率是多少?
- 是否存在配额限制?
查看控制平面状态
以下命令可帮助您了解 Cloud Service Mesh 控制平面的状态:
kubectl get pods -n istio-system
kubectl describe -n istio-system
- 针对 istio-system 中的所有 pod:
kubectl logs -n istio-system -l istio --all-containers
istioctl version
istioctl proxy-status
kubectl get configmap istio -o yaml && kubectl get configmap istio-sidecar-injector -o yaml
kubectl top pods -n istio-system
使用以下命令可了解部署的规模:
kubectl get nodes
kubectl get services --all-namespaces
kubectl get pods --all-namespaces
查看相关日志和信息
缩小问题范围后,您可以更高效地分析某些日志和信息。如需了解 Cloud Service Mesh 生成的日志以及如何解读其中包含的信息,请参阅解读 Cloud Service Mesh 日志。