可觀測性問題
在 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 輸出
如果您在從本機網頁用戶端連線到遠端託管的 Istio 時無法取得 Grafana 輸出,則應驗證用戶端和伺服器的日期和時間是否相符。
網頁客戶端(例如 Chrome)的時間會影響 Grafana 的輸出。這個問題的一個簡單解決方案是驗證時間同步服務在 Kubernetes 叢集中是否正確運行,並且網頁客戶端機器也正確使用時間同步服務。一些常見的時間同步系統是 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
。