kubernetes:NetworkPolicy拒绝 - 所有不否认

时间:2018-01-12 12:37:56

标签: kubernetes weave kubernetes-security

我正在使用kubernetes

awsweave群集上部署应用程序

我还有一个额外的(default)命名空间:my-staging

我想申请并测试kubernetes建议的以下拒绝所有政策:

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: staging-default-deny-all
  namespace: my-staging
spec:
  podSelector: {}
  policyTypes:
  - Ingress

然后我在默认命名空间中启动busybox以进行测试:

kubectl run busybox --rm -ti --image=busybox /bin/sh  --namespace=default

... ui命名空间中的80服务(应该在端口my-staging上侦听)是可以访问的!

/ # wget --spider ui.staging-els.svc.cluster.local
Connecting to ui.staging-els.svc.cluster.local (100.68.222.37:80)

为什么会这样?

P.S。如果这有任何重要意义,我在部署应用程序时应用NetworkPolicy

更新:这必须是 weave 因为删除我的群集并使用--networking calico重新创建所有内容而没有任何问题。

1 个答案:

答案 0 :(得分:0)

为了使您的命名空间具有默认拒绝策略,您需要对其进行注释:

kind: Namespace
apiVersion: v1
metadata:
  name: my-staging
  annotations:
    net.beta.kubernetes.io/network-policy: |
      {
        "ingress": {
          "isolation": "DefaultDeny"
        }
      }

然后,您只需要用于明确启用pod之间连接的策略。

有关详细信息,请参阅文档:https://kubernetes.io/docs/tasks/administer-cluster/weave-network-policy/