可观测性问题
在 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_ADMIN
和 NET_RAW
权限的需求。Istio CNI 插件取代了 istio-init
容器提供的功能。
验证
istio-cni-node
Pod 是否正在运行。$ kubectl -n kube-system get pod -l k8s-app=istio-cni-node
如果您的集群中正在强制执行
PodSecurityPolicy
,请确保istio-cni
服务帐户可以使用一个允许NET_ADMIN
和NET_RAW
权限的PodSecurityPolicy
。