NetworkPolicy
随着业务逻辑的复杂化,越来越多的应用需要大量模块之间的网络调用。传统的单一外部防火墙,或依照应用分层的防火墙已渐渐无法满足需求。在一个大的集群里面,各模块、业务逻辑层,或各职能团队之间的网络策略需求越来越强。
CCE基于Kubernetes的网络策略功能进行了加强,通过配置网络策略,允许在同个集群内实现网络的隔离,也就是可以在某些实例(Pod)之间架起防火墙。
使用场景例如:某个用户有支付系统,且严格要求只能某几个组件能访问该支付系统,否则有被攻破的安全风险,通过配置网络策略可免除该风险。
约束与限制
- 当前仅容器隧道网络模式的集群支持网络策略(NetworkPolicy)。
- 网络策略(NetworkPolicy)暂不支持设置出方向(egress)。
- 不支持对IPv6地址网络隔离。
使用说明
若工作负载(例如名称为workload1)未配置网络策略,那“当前集群内的其它工作负载”都可以访问“名为workload1的工作负载”。
设置网络策略
- 登录CCE控制台,在左侧导航栏中选择“资源管理 > 网络管理”。在NetworkPolicy页签,单击“添加NetworkPolicy”。
- NetworkPolicy名称:自定义输入NetworkPolicy名称。
- 集群名称:选择网络策略所在集群。
- 命名空间:选择网络策略所在命名空间。
- 关联工作负载:
- 规则:单击“添加规则”,参数设置请参见表1。
表1 添加规则 参数
参数说明
方向
当前仅支持入方向。即“其它工作负载”访问“当前的工作负载(即当前案例中的workload-1)”。
协议
请选择对应的协议类型,目前支持TCP和UDP协议,不支持ICMP协议。
目的容器端口
容器镜像中应用程序实际监听端口,需用户确定。nginx程序实际监听的端口为80。
若不填写容器端口,默认所有端口都可被访问。
远端
选择可访问“当前工作负载”的“其它工作负载”。通过目的容器端口来访问。
- 命名空间:若选择某个命名空间,则该命名空间下的所有工作负载都会加入白名单,即都可访问workload-1。
- 工作负载:若选择某个工作负载,即该工作负载可以访问workload-1。仅支持选择与workload-1同个命名空间下的“其它工作负载”。
- 设置完成后,单击“创建”。
- 若需要为当前工作负载添加更多网络策略,例如其它端口需要被某个工作负载访问,可单击“添加NetworkPolicy”,继续添加更多策略。
创建成功后,“仅远端中配置好的命名空间或工作负载”可以访问“当前工作负载”。
