我正在使用weave
aws
kubernetes
集群上部署应用程序
我还有一个额外的(除了default
(命名空间:my-staging
.
我想应用并测试库伦特建议的以下拒绝所有策略:
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)
为什么会这样?
附言如果这有任何意义,我将在应用程序已经部署时应用NetworkPolicy
。
更新:当删除我的集群并重新创建时,这一定是一个编织的原因,--networking calico
一切都解决了,没有任何问题。
为了使您的命名空间具有默认拒绝策略,您需要对其进行注释:
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/