可观测性问题

在 Mac 上本地运行 Istio 时,Zipkin 中没有出现跟踪

Istio 已安装,并且一切似乎都在正常工作,但当应该有跟踪时,Zipkin 中没有显示任何跟踪。

这可能是由于已知的 Docker 问题 导致的,其中容器内的时钟可能与主机上的时钟存在很大偏差。如果是这种情况,当您在 Zipkin 中选择一个很长的日期范围时,您会看到跟踪出现的时间早了几天。

您还可以通过比较 Docker 容器内部和外部的日期来确认此问题

$ docker run --entrypoint date gcr.io/istio-testing/ubuntu-16-04-slave:latest
Sun Jun 11 11:44:18 UTC 2017
$ date -u
Thu Jun 15 02:25:42 UTC 2017

要解决此问题,您需要先关闭然后重新启动 Docker,然后再重新安装 Istio。

缺少 Grafana 输出

如果您在从本地 Web 客户端远程连接到 Istio 时无法获得 Grafana 输出,则应验证客户端和服务器的日期和时间是否匹配。

Web 客户端(例如 Chrome)的时间会影响 Grafana 的输出。解决此问题的一个简单方法是验证 Kubernetes 集群中是否正确运行了时间同步服务,并且 Web 客户端机器也正确使用了时间同步服务。一些常见的时间同步系统包括 NTP 和 Chrony。这在带有防火墙的工程实验室中尤其成问题。在这些情况下,NTP 可能未正确配置为指向基于实验室的 NTP 服务。

验证 Istio CNI Pod 是否正在运行(如果使用)

Istio CNI 插件在 Kubernetes Pod 生命周期的网络设置阶段执行 Istio 网格 Pod 流量的重定向,从而消除了用户将 Pod 部署到 Istio 网格中对NET_ADMINNET_RAW 权限的需求。Istio CNI 插件取代了 istio-init 容器提供的功能。

  1. 验证 istio-cni-node Pod 是否正在运行。

    $ kubectl -n kube-system get pod -l k8s-app=istio-cni-node
    
  2. 如果您的集群中正在强制执行 PodSecurityPolicy,请确保 istio-cni 服务帐户可以使用一个允许 NET_ADMINNET_RAW 权限的 PodSecurityPolicy

这些信息是否有用?
您是否有任何改进建议?

感谢您的反馈!