保護應用程式並視覺化
將應用程式新增至 Ambient 網格,只需標記應用程式所在的命名空間即可。將應用程式新增至網格後,您會自動保護它們之間的通訊,而 Istio 開始收集 TCP 遙測資料。而且,您不需要重新啟動或重新部署應用程式!
將 Bookinfo 新增至網格
您可以透過簡單地標記命名空間,來啟用給定命名空間中的所有 Pod 成為 Ambient 網格的一部分
$ kubectl label namespace default istio.io/dataplane-mode=ambient
namespace/default labeled
恭喜!您已成功將預設命名空間中的所有 Pod 新增至 Ambient 網格。🎉
如果您在瀏覽器中開啟 Bookinfo 應用程式,您會看到產品頁面,就像之前一樣。這次的不同之處在於,Bookinfo 應用程式 Pod 之間的通訊使用 mTLS 進行加密。此外,Istio 正在收集 Pod 之間所有流量的 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://#:8080/productpage; done
接著,按一下「流量圖」,您應該會看到 Bookinfo 應用程式
如果您點擊儀表板上連接兩個服務的線條,您可以看到 Istio 收集的入站和出站流量指標。
除了 TCP 指標外,Istio 還為每個服務建立了一個強大的身份:SPIFFE ID。這個身份可用於創建授權策略。
後續步驟
既然我們已經為服務分配了身份,讓我們強制執行授權策略,以保護對應用程式的存取。