0

我在kubernetes集群上aws部署一个应用程序weave

我有一个额外的(除了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服务(应该正在侦听 port 80my-staging

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

为什么会这样?

ps 如果这有任何意义,我正在应用该NetworkPolicy应用程序已经部署的情况。

更新:当删除我的集群并重新创建一切都没有任何问题时,这一定是一个编织问题。--networking calico

4

1 回答 1

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/

于 2018-01-12T12:58:14.423 回答