安全并可视化应用程序

将应用程序添加到环境网格就像标记应用程序所在的命名空间一样简单。通过将应用程序添加到网格,您会自动保护它们之间的通信,并且 Istio 会开始收集 TCP 遥测数据。而且,您无需重启或重新部署应用程序!

将 Bookinfo 添加到网格

只需标记命名空间,即可将给定命名空间中的所有 Pod 加入环境网格。

$ kubectl label namespace default istio.io/dataplane-mode=ambient
namespace/default labeled

恭喜!您已成功将 default 命名空间中的所有 Pod 添加到环境网格。🎉

如果您在浏览器中打开 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 http://localhost:8080/productpage; done

接下来,单击流量图,您应该会看到 Bookinfo 应用程序。

Kiali dashboard
Kiali 仪表盘

如果您单击仪表盘上连接两个服务的线,您可以看到 Istio 收集的入站和出站流量指标。

L4 traffic
L4 流量

除了 TCP 指标之外,Istio 还为每个服务创建了一个强身份:SPIFFE ID。此身份可用于创建授权策略。

下一步

现在我们已经为服务分配了身份,让我们 执行授权策略 来保护对应用程序的访问。

这些信息对您有用吗?
您有什么改进建议吗?

感谢您的反馈!