可観測性の問題

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コンテナによって提供される機能を置き換えます。

  1. istio-cni-node Podが実行されていることを確認してください。

    $ kubectl -n kube-system get pod -l k8s-app=istio-cni-node
    
  2. クラスタでPodSecurityPolicyが適用されている場合は、istio-cniサービスアカウントがNET_ADMINおよびNET_RAW機能を許可するPodSecurityPolicyを使用できることを確認してください。

この情報は役に立ちましたか?
改善点のご提案はありますか?

ご意見ありがとうございました!