IanZeng 首先我想说下Calico是支持同namespace下pod的隔离的,namespace对应kubesphere中则为“项目”,在项目中可以开启“网络隔离”,开启后会在集群中默认创建一个网络策略-即开启了项目隔离,但同项目中的pod可以随意访问,这个在客户环境中是不允许的,需要做到细颗粒度控制-即同一项目下pod间的隔离。如何实现尼?我尝试了很多次,发现是可以实现的。 那就是不开启项目隔离,直接编写网络策略,如下: 这样就隔离了项目kubesphere-sample-dev中所有pod的通信,然后再单独添加一个策略,比如: 只开放kubesphere-sample-dev中带有标签app: nginx-v1入口访问流量,而且只能是带有标签为app:nginx-v2的pod才能访问,nginx-v1和nginx-v2两个pod在同一项目下。 问题来了,我开启项目隔离后,有一条默认策略: 开启网络隔离 这条策略则开启了同一项目中pod间访问不受限制,相当于前面设置的pod间隔离策略自动失效,即使能改默认策略,但过会自动又刷新了。 这有点不符合常理,开启项目隔离反而把权限都开放,无法做到细颗粒的控制,想要细颗粒度控制就得把网络隔离关了,自己编写网络策略。 我认为既然集成了Calico,就应该把服务,pod,端口的隔离都能够通过kubesphere图像界面实现,而不是手动编写yaml文件,这个是否后续会有改进? 另外创建的策略不能修改,只能删除重来。。。 @Feynman