Kubernetes中的网络策略仅可通过Ingress访问

时间:2018-10-30 10:39:15

标签: kubernetes kubernetes-ingress kubernetes-networkpolicy

我是Kubernetes的新手。我们有三个名称空间(dev,uat,prod)。

我们的容器具有其他服务,我们希望通过Ingress(使用客户端身份验证)将其提供给外部世界。一切正常。

但是现在,我们只需使用K8s服务名称就可以从其他命名空间上的其他容器调用rest服务。我们想阻止这种访问。

我们只允许通过各自的k8s Ingress访问Pod。我们如何实现这一目标?

我试图创建两个网络策略来实现此目的,但这不起作用。

政策1

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: default-deny-all
  namespace: ns1
spec:
  podSelector: {}
  ingress: []

政策2

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  name: allow-external
spec:
  podSelector:
    matchLabels:
      tier: backend
  ingress:
  - from: []

应用第一个策略后,我将无法通过Ingress访问我的休息服务。 应用第二个策略后,只需使用k8s服务名称即可通过所有容器再次访问rest服务,而无需通过Ingress。

有什么方法可以实现这一目标吗?

(此外,也不可以在名称空间中添加标签)

0 个答案:

没有答案