配置并管理集群安全组

ACK集群使用安全组来约束控制面节点和Worker节点之间的网络流量。安全组还用于控制节点、VPC资源和外部IP地址之间的流量。创建集群或节点池时,系统会默认自动为您分配一个安全组,您也可以指定关联已有安全组。指定已有安全组时,系统默认不会为安全组配置额外的访问规则,请自行管理并收敛安全组规则。

您可以通过添加安全组规则,允许或禁止安全组内的ECS实例对公网或私网的访问。更多信息,请参见安全组概述添加安全组规则

集群安全组出、入规则推荐配置

普通安全组

入方向

集群访问规则

协议

端口

授权对象

推荐范围

ICMP

-1/-1(不限制端口)

0.0.0.0/0

所有协议

-1/-1(不限制端口)

  • 集群默认安全组ID

  • 集群Pod网络地址段(Flannel网络模式添加安全组规则,Terway网络模式不添加安全组规则)

最小范围

所有协议

53/53(DNS)

  • 集群默认安全组ID

  • 集群Pod网络地址段(Flannel网络模式添加安全组规则,Terway网络模式不添加安全组规则)

ICMP

-1/-1(不限制端口)

TCP

  • 10250(kubelet)

  • 10255(kubelet)

  • 443(Webhook)

  • 6443(API Server

  • 8082(heapster)

  • 集群内提供Webhook服务的应用或组件容器监听的端口(例如 Gatekeeper组件监听的 8443端口)

所有协议

所有应用或组件期望被访问的端口

所有应用或组件期望被访问的来源地址或者来源安全组

出方向

集群访问规则

协议

端口

授权对象

推荐范围

所有协议

-1/-1(不限制端口)

0.0.0.0/0

最小范围

所有协议

-1/-1(不限制端口)

100.64.0.0/10 (云产品网段)

所有协议

53/53(DNS)

  • 集群APIServer SLB地址

  • 集群默认安全组ID

  • 集群Pod网络地址段(Flannel网络模式添加安全组规则,Terway网络模式不添加安全组规则)

TCP

  • 10250(kubelet)

  • 10255(kubelet)

  • 443(API Server)

  • 6443(API Server)

所有协议

所有应用或组件期望访问的端口

所有应用或组件期望访问的目的地址或者目的安全组

企业安全组

入方向

集群访问规则

协议

端口

授权对象

推荐范围

ICMP

-1/-1(不限制端口)

0.0.0.0/0

所有协议

-1/-1(不限制端口)

  • 集群所属的VPC网段

  • 集群所属的附加VPC网段

  • 集群Pod网络地址段(Flannel网络模式添加安全组规则,Terway网络模式不添加安全组规则)

最小范围

所有协议

53/53(DNS)

  • 集群内所有关联的vSwitch网段,包括Node vSwitch和Pod vSwitch

  • 集群Pod网络地址段(Flannel网络模式添加安全组规则,Terway网络模式不添加安全组规则)

ICMP

-1/-1(不限制端口)

TCP

  • 10250(Kubelet)

  • 10255(Kubelet)

  • 443(Webhook)

  • 6443(APIServer)

  • 8082(heapster)

  • 集群内提供Webhook服务的应用或组件容器监听的端口(例如 Gatekeeper组件监听的 8443端口)

所有协议

所有应用或组件期望被访问的端口

所有应用或组件期望被访问的来源地址或者来源安全组

出方向

集群访问规则

协议

端口

授权对象

推荐范围

所有协议

-1/-1(不限制端口)

0.0.0.0/0

最小范围

所有协议

-1/-1(不限制端口)

100.64.0.0/10 (云产品网段)

所有协议

53/53(DNS)

  • 集群APIServer SLB地址

  • 集群内所有关联的vSwitch网段,包括Node vSwitch和Pod vSwitch

  • 集群Pod网络地址段(Flannel网络模式添加安全组规则,Terway网络模式不添加安全组规则)

TCP

  • 10250(Kubelet)

  • 10255(Kubelet)

  • 443(APIServer)

  • 6443(APIServer)

所有协议

所有应用或组件期望访问的端口

所有应用或组件期望访问的目的地址或者目的安全组

关闭安全组删除保护

为了防止集群关联的安全组被误删除,ACK会为所有集群关联的安全组开启删除保护功能。当您在ECS控制台释放安全组时遇到如下报错,表明该安全组被ACK开启了删除保护功能。

image

目前安全组的删除保护功能无法通过控制台或API手动关闭。只有当所有依赖该安全组的集群均被删除后,ACK才会自动释放对该安全组的删除保护。请依次查询ACK集群所关联的安全组,并删除所有依赖该安全组的集群。查询步骤如下。

  1. 登录容器服务管理控制台,在左侧导航栏选择集群

  2. 集群列表页面,单击目标集群名称。单击基本信息页签,查看集群所在的安全组。

    当所有依赖该安全组的集群均已删除后,您可以通过ECS控制台继续释放该安全组。如果释放失败,请提交工单给容器服务团队。

关于如何删除安全组,请参见删除安全组

相关文档

  • 关于网络安全的最佳实践,例如默认允许或拒绝规则、命名空间隔离等,请参见网络安全

  • 关于如何规划Kubernetes集群网络,包括ECS地址、Kubernetes Pod地址、Service地址等,请参见Kubernetes集群网络规划