我正在使用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
命名空间中的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
重新创建所有内容而没有任何问题。
答案 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/