アプリケーションの保護と可視化
アンビエントメッシュにアプリケーションを追加するのは、アプリケーションが存在する名前空間にラベルを付けるのと同じくらい簡単です。アプリケーションをメッシュに追加することで、アプリケーション間の通信が自動的に保護され、IstioはTCPテレメトリーの収集を開始します。しかも、アプリケーションを再起動したり、再デプロイしたりする必要はありません!
Bookinfoをメッシュに追加する
名前空間にラベルを付けるだけで、特定の名前空間内のすべてのポッドをアンビエントメッシュの一部として有効にできます。
$ kubectl label namespace default istio.io/dataplane-mode=ambient
namespace/default labeled
おめでとうございます!デフォルトの名前空間内のすべてのポッドをアンビエントメッシュに正常に追加しました。🎉
ブラウザでBookinfoアプリケーションを開くと、以前と同じように製品ページが表示されます。今回異なるのは、Bookinfoアプリケーションのポッド間の通信がmTLSを使用して暗号化されていることです。さらに、Istioはポッド間のすべてのトラフィックについてTCPテレメトリーを収集しています。
アプリケーションとメトリクスを可視化する
Istioのダッシュボード、Kiali、およびPrometheusメトリクスエンジンを使用して、Bookinfoアプリケーションを可視化できます。両方をデプロイします。
$ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/addons/prometheus.yaml
$ kubectl apply -f https://raw.githubusercontent.com/istio/istio/release-1.24/samples/addons/kiali.yaml
次のコマンドを実行してKialiダッシュボードにアクセスできます。
$ istioctl dashboard kiali
Bookinfoアプリケーションにトラフィックを送信して、Kialiがトラフィックグラフを生成するようにしましょう。
$ for i in $(seq 1 100); do curl -s https://127.0.0.1:8080/productpage; done
次に、トラフィックグラフをクリックすると、Bookinfoアプリケーションが表示されます。
ダッシュボード上の2つのサービスを接続する線をクリックすると、Istioによって収集されたインバウンドおよびアウトバウンドトラフィックのメトリクスを確認できます。
TCPメトリクスに加えて、Istioは各サービスに強力なID(SPIFFE ID)を作成しました。このIDは、承認ポリシーを作成するために使用できます。
次のステップ
サービスにIDが割り当てられたので、アプリケーションへのアクセスを保護するために承認ポリシーを適用しましょう。