可観測性の問題
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トラフィックのリダイレクトを実行することにより、IstioメッシュにPodをデプロイするユーザーにとって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
を使用できることを確認してください。