【发布时间】:2018-07-31 09:06:09
【问题描述】:
我是 Kubernetes 网络的新手。
我们将 Kubernetes 集群分成一组命名空间(例如namespace-a、namespace-b)。每个命名空间都有一组 Kubernetes pod。每个 pod 都有一个服务,可通过 my-svc.namespace-x.svc.cluster.local 获得。
现在,我们希望防止命名空间 namespace-a 的 Pod 与属于 namespace-b 的服务或 Pod 通信,反之亦然。命名空间内的通信应该不受限制。
这是我在网络策略文档中找到的示例: https://kubernetes.io/docs/concepts/services-networking/network-policies/#the-networkpolicy-resource
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: default-deny
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
据我了解,对于跨命名空间的所有 pod,这完全阻止了网络通信。
- 如何允许所有网络流量,但只允许在特定命名空间内?
- 是否需要网络插件,例如 Calico、Flannel 或 Weave?我应该选择哪一个?
【问题讨论】:
-
您可以在此处找到许多网络策略示例:github.com/ahmetb/kubernetes-network-policy-recipes
标签: networking kubernetes kubernetes-networkpolicy