CKA [Installation] – NetworkPolicy的讲解

在Kubernetes的NetworkPolicy 就类似于服务器的Firewall, 或者云服务器的Security Group 可以指定Inbound 和 Outbound rule 。 但是在Kubernetes的NetworkPolicy来看的话是指定Pod和Pod之前的访问规则。

你的Kubernetes Cluster 是否能够设置NetworkPolicy 是看你安装什么CNI 插件而定,不是所有的CNI 都支持NetworkPolicy。Calico或Cilium 支持NetworkPolicy , 而Kubenet或Flannel不支持NetworkPolicy。如果你使用的是Managed k8s (AKS,EKS, GKE) 这些默认都自带CNI,所以基本上都支持NetworkPolicy。

根于以上的这图是如果我们没有设置NetworkPolicy的话,那么如果Pod-1被攻击,那么黑客就能顺着Pod-1去访问Pod-2或Pod3。

举例根据以上的3个Pod, 有 test-pod , app-pod 和 db-pod 。test-pod是无法访问任何的pod,而app-pod能够访问db-pod , 但是由于db-pod没有设限所以能够访问任何的pod。

在NetworkPolicy 来看Ingress就是inbound rule,而Egress就是outbound rule

NetworkPolicy能够设定3种限制。分别是pod level , namespace level 或是根据 ipBlock。

Pod 等级的限制可以使用podSelector和namespaceSelector。而ipBlock对于ingress就是block 外部访问的ip,比如只允许办公司ip访问,对于egress来看的话就是只能访问什么ip的endpoint。

podSelector的显示是使用label来定义的。

namespaceSelector的话,就是整个namespace底下所有的pod都被setting成同样的限制。

Loading

Facebook评论