我已经有了自己的微服务,到目前为止,我已经通过 https 将服务以及 helm 图表公开type: NodePort
到nginx-ingress
我自己的公共 IP;我注意到在我的微服务 helm 图表上运行 linter 时,它不安全(使用 NodePort),我应该使用 ClusterIP - 有人可以解释为什么吗?
如果您的集群设置为可以从集群外部直接访问工作节点,那么您设置为 NodePort 类型服务的任何内容也都可以访问。特别是,这意味着http://any-node.k8s.example.com:32345/
可以绕过您在入口层中设置的任何控制,到达您的后端服务。你通常不希望这样。
这里的一个合理方法(可能也是您的 linter 所鼓励的)是仅将 NodePort 或 LoadBalancer 类型的服务用于您的入口服务。其他任何东西都应该向该入口服务注册(使用本机 Kubernetes Ingress 对象或 Istio VirtualService 等),但具有用于集群内访问的 ClusterIP 类型服务。
+------------+ NP +---------+ CIP +-------------+
---> | (any node) | ---> | ingress | ---> | application |
+------------+ +---------+ +-------------+
|__________________________^
a NodePort application service would allow this path
(bypassing the ingress)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1420 次 |
最近记录: |