本主题介绍 GKE on AWS 如何管理集群的 AWS 安全组规则,以及如何修改节点池和控制平面副本的防火墙规则。
安全群组和托管的 DNS
如果您使用托管的 DNS 服务器而不是 AWS 提供的 DNS,则您的控制平面和节点池安全组必须允许 TCP 和 UDP 端口 53 上的出站流量。
控制平面安全群组
控制平面安全组会为每个控制平面副本的入站和出站 TCP 流量定义防火墙规则。
控制平面由 AWS 网络负载均衡器 (NLB) 后面的三个 EC2 实例组成。这些实例接受从其他节点、节点池节点和 NLB 上的 etcd 实例进行连接。控制平面实例还会建立与 Google 和 AWS 服务的出站 HTTPS 连接。
GKE on AWS 会创建一个托管式控制平面安全组,并将其附加到所有控制平面实例。您不应修改此群组中的规则。如果您需要添加更多安全群组规则,可以改为在创建集群时指定要挂接到控制层面的其他安全群组 ID。
默认控制平面安全组规则
这些是 GKE on AWS 附加到控制平面的默认规则。这些规则与您的安全组不完全匹配;表中每一行都可能扩展为多个 AWS 安全组规则。
类型 | 协议 | Port(端口) | 地址范围或 SG | 说明 |
---|---|---|---|---|
入站 | TCP(集群版本 < 1.26) | 443 | VPC 的主要 CIDR 范围 | 允许通过 HTTPS 从节点池节点连接 |
入站 | TCP(集群版本 >= 1.26) | 443 | 节点池的子网 CIDR 范围 | 允许通过 HTTPS 从节点池节点连接(节点池使用的每个子网一条规则) |
入站 | TCP | 2380 | 控制层面 SG | 允许复制控制平面 etcd |
入站 | TCP | 2381 | 控制层面 SG | 允许复制控制平面 etcd 事件 |
入站 | TCP(集群版本 < 1.26) | 8132 | VPC 的主要 CIDR 范围 | 允许来自节点池的 Konnectivity 连接 |
入站 | TCP(集群版本 >= 1.26) | 8132 | 节点池的子网 CIDR 范围 | 允许来自节点池节点的 Konnectivity 连接(节点池使用的每个子网一条规则) |
入站 | TCP | 11872 | 控制平面 CIDR 范围 | 对负载均衡器进行 HTTP 健康检查 |
出站 | TCP | 443 | 0.0.0.0/0 | 允许出站 HTTPS |
出站 | TCP | 2380 | 控制层面 SG | 允许复制控制平面 etcd |
出站 | TCP | 2381 | 控制层面 SG | 允许复制控制平面 etcd 事件 |
节点池安全组
节点池安全组会为节点池中虚拟机的入站和出站 TCP 流量定义防火墙规则。
GKE on AWS 会创建一个托管式节点池安全组,并将其附加到所有节点池实例。您不应修改此群组中的规则。如果您需要添加更多安全群组规则,可以改为在创建节点池时指定要挂接到实例的其他安全群组 ID。
默认情况下,节点池虚拟机没有任何开放端口。如需允许传入流量,请在创建节点池时添加节点池安全组,并通过该安全组管理节点池所需的任何入站/出站规则。
默认节点池安全群组规则
这些是 GKE on AWS 附加到节点池的默认规则。这些规则与您的安全组不完全匹配;表中每一行都可能扩展为多个 AWS 安全组规则。
类型 | 协议 | Port(端口) | 地址范围或 SG | 说明 |
---|---|---|---|---|
入站 | TCP | 全部 | 节点池 SG | 允许 pod 到 pod 的通信 |
出站 | TCP | 全部 | 节点池 SG | 允许 pod 到 pod 的通信 |
出站 | TCP | 443 | 0.0.0.0/0 | 允许出站 HTTPS |
出站 | TCP | 8132 | 控制层面 SG | 允许与控制平面的 Konnectivity 连接 |
出站 | TCP | 8132 | 控制平面 CIDR 范围 | 允许与控制平面的 Konnectivity 连接 |
VPC 的次要 CIDR 地址块中的节点池
GKE on AWS 1.26 版及更高版本会自动创建和管理必要的安全组规则,以支持使用次要 VPC CIDR 地址块中子网的节点池。如果您使用的是这些版本之一,则无需创建自定义安全组或手动更新它们。
不过,在创建托管式控制平面安全组时,早期版本的 GKE on AWS 不会创建支持使用次要 VPC CIDR 地址块中子网的节点池的规则。
如需消除此限制,请为控制层面创建自定义安全群组。您在使用 --security-group-ids
标志创建集群时传递安全组 ID。或者,您也可以更新集群的安全群组。
使用以下规则创建安全群组:
类型 | 协议 | Port(端口) | 地址范围或 SG | 说明 |
---|---|---|---|---|
入站 | TCP | 443 | 节点池范围(在 VPC 的次要 CIDR 地址块中) | 允许通过 HTTPS 从节点池节点连接 |
入站 | TCP | 8132 | 节点池范围(在 VPC 的次要 CIDR 地址块中) | 允许来自节点池的 Konnectivity 连接 |