如何在网络方面进行隔离和联通,比如容器平台上有多个用户,有的用户之间需要相互访问,有的需要相互隔离,这些策略应该在哪里进行限制与放行。
收起1、根据选择好K8S集群的容器网络方案,启用相应K8S集群内的 NetworkPolicy特性,能够支持按Namespace级别的网络隔离。
2、每个用户分配不同的 Namespace 。
-- 譬如以 Calico 网络方案为例,安装 Calico 网络方案需要预先配置如下:
--. kube-proxy不得启用--masquerade-all,这会跟calico冲突
然后开启配置NetworkPolicy 特性。
首先在K8S集群中,设置全局不可通
然后设置同一个ns下的pod可以互通 ,不同ns之间的pod不可以访问*
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: isolate-namespace
namespace: ns-calico1
spec:
podSelector: {}
policyTypes:
- Ingress
- Egress
ingress:
- from:
- namespaceSelector:
matchLabels:
nsname: ns-calico1
egress:
- to:
- namespaceSelector:
matchLabels:
nsname: ns-calico1