Role与ClusterRole是基于角色访问控制的重要概念,Role可以理解为一组权限的集合,如果授予了权限则允许相应的操作,如果未授予则不允许访问。将Role建好后一定要创建Rolebinding,将ClusterRole建好后一定要创建ClusterRolebinding,这样才可以在集群对象中使用。所不同的是Role用来在命名空间设置权限,ClusterRole在集群中设置权限。
那么什么是网络策略呢?
NetworkPolicy 是 K8s 用来做 Pod 之间网络访问控制 的规则,相当于给 Pod 加"网络防火墙/白名单"。
它能规定:哪些 Pod 可以访问我(Ingress 入站)
我可以访问哪些 Pod/地址(Egress 出站)
访问范围按标签选择器(podSelector/namespaceSelector)和 端口/协议 来限制。
需要注意的是:默认情况下,K8s 里 Pod 之间通常是"全互通"的;一旦对某些 Pod 应用了 NetworkPolicy,这些 Pod 在被策略覆盖的方向上会变成 默认拒绝,只允许策略放行的流量。NetworkPolicy 是否生效取决于 CNI 网络插件是否支持(比如 Calico 一般支持;有的简单插件可能不支持)。
k8s中Role与networkpolicy区别
网络策略与RBAC都是用来限制访问的,所不同的是role是由k8s中APIServer资源进行控制,是否可以访问取决于APIServer;而网络策略一般是单向或者双向的通讯限制,大多数不需要APIServer参与,网络策略资源对象是集群,监控着命名空间中2个pod,pod之间的通讯不经过API。