我正在研究 Istio,但我认为我缺少一些基本的东西。
我一直在关注文档,并且在 AWS 中有一个用于一些虚拟服务的工作区。我有一个网关配置为发送到虚拟服务,该服务通过对应于 K8s 服务的主机定义进行路由。这一切正常。
让我感到困惑的是,这将如何帮助限制内部集群流量。我研究 Istio 的部分原因是它的 mTLS 和外部授权功能,但在我看来,如果我可以去服务 X 而不必通过 Istio 的虚拟服务 X,那么至少在内部,这是一个不太令人信服的解决方案.
例如,为了路由到服务 amazing
,我们需要一个类似这样的虚拟服务:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: amazing
namespace: amazing-app
spec:
hosts:
- "amazing.internal"
gateways:
- amazing
http:
- match:
- uri:
prefix: /
- uri:
prefix: /
route:
- destination:
port:
number: 80
host: amazing
这一切都很好,但是是什么阻止了集群中的任何东西直接访问主机 amazing
(由 K8s 服务 amazing
提供)?我知道这不是 Istio 的责任,但是我不确定它会如何完成,只要需要公开服务以便虚拟服务路由到它。应该用 NetworkPolicy
完成吗?