自动创建的防火墙规则

本页面介绍 Google Kubernetes Engine (GKE) 在 Google Cloud 中自动创建的防火墙规则

除了本页面所列 GKE 专用规则之外,默认的 Google Cloud 项目还包括几个预先填充的防火墙规则

防火墙规则

创建以下资源时,GKE 会自动创建防火墙规则:

  • GKE 集群
  • GKE Service
  • GKE Ingress

所有自动创建的防火墙规则的优先级均为 1000,这是防火墙规则的默认值。如果您希望更好地控制防火墙行为,则可以创建具有更高优先级的防火墙规则。优先级较高的防火墙规则会在自动创建的防火墙规则之前应用。

GKE 集群防火墙规则

创建集群时,GKE 会创建以下入站防火墙规则:

名称 用途 来源 目的地 协议和端口
gke-[cluster-name]-[cluster-hash]-master 仅适用于专用集群。允许控制层面访问集群节点上的 Kubelet 和指标服务器。 主服务器 CIDR (/28) 节点标记 TCP:443(指标服务器)和 TCP:10250 (Kubelet)
gke-[cluster-name]-[cluster-hash]-ssh 仅适用于公共集群。允许控制层面访问集群节点上的 Kubelet 和指标服务器。 主服务器公共 IP 地址 节点标记 TCP:22
gke-[cluster-name]-[cluster-hash]-vms 按照 Kubernetes 网络模型的要求,允许节点上的代理(例如系统守护程序和 Kubelet)与节点上的 Pod 通信。允许节点主机网络中的 Pod 与没有 NAT 的所有节点上的所有 Pod 通信。允许 VPC 中的其他虚拟机与节点通信。 节点 CIDR、10.128.0.0/9(自动网络)、集群子网(自定义网络) 节点标记 TCP:1-65535、UDP:1-65535、ICMP
gke-[cluster-name]-[cluster-hash]-all 按照 Kubernetes 网络模型的要求,允许集群上所有 Pod 之间的流量。

Pod CIDR

对于启用了连续的多 Pod CIDR 的集群,则为集群使用的所有 Pod CIDR 地址块。

节点标记 TCP、UDP、SCTP、ICMP、ESP、AH

GKE Service 防火墙规则

创建 Service 时,GKE 会创建以下入站防火墙规则:

名称 用途 来源 目的地 协议和端口
k8s-fw-[loadbalancer-hash] 允许入站流量到达 Service。 在 Service 清单中指定。默认为 0.0.0.0/0(任何来源) 节点标记 Service 清单中指定的端口上的 TCP 和 UDP。
k8s-[cluster-id]-node-http-hc externalTrafficPolicy 设置为 Cluster 时,允许网络负载平衡器 Service 的运行状况检查
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
节点标记 TCP:10256
k8s-[loadbalancer-hash]-http-hc externalTrafficPolicy 设置为 Local 时,允许网络负载平衡器 Service 的运行状况检查
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
节点标记 NodePort 运行状况检查指定的端口上的 TCP。
k8s-[cluster-id]-node-hc externalTrafficPolicy 设置为 Cluster 时,允许内部 TCP/UDP 负载平衡器 Service 的运行状况检查
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
节点标记 TCP:10256
[loadbalancer-hash]-hc externalTrafficPolicy 设置为 Local 时,允许内部 TCP/UDP 负载平衡器 Service 的运行状况检查
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
节点标记 NodePort 运行状况检查指定的端口上的 TCP。
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash] 启用建立内部负载平衡器子集后,允许入站流量到达 Service。 在 Service 清单中指定。默认为 0.0.0.0/0(任何来源) 节点标记 Service 清单中指定的端口上的 TCP 和 UDP。
k8s2-[cluster-id]-[namespace]-[service-name]-[suffixhash]-fw externalTrafficPolicy 设置为 Local 并启用建立内部负载平衡器子集后,允许对 Service 运行状况检查
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
节点标记 NodePort 运行状况检查指定的端口上的 TCP。
k8s2-[cluster-id]-l4-shared-hc externalTrafficPolicy 设置为 Cluster 并启用建立内部负载平衡器子集后,允许对 Service 运行状况检查
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 209.85.152.0/22
  • 209.85.204.0/22
节点标记 TCP:10256

GKE Ingress 防火墙规则

创建 Ingress 时,GKE 会创建以下入站防火墙规则:

名称 用途 来源 目的地 协议和端口
k8s-fw-l7-[random-hash]

允许 NodePort Service 或网络端点组 (NEG)运行状况检查

创建第一个 Ingress 资源时,Ingress 控制器会创建此规则。如果创建了更多 Ingress 资源,则 Ingress 控制器可以更新此规则。

对于 GKE v1.17.13-gke.2600 或更高版本:
  • 130.211.0.0/22
  • 35.191.0.0/16
  • 用户定义的仅代理子网范围(适用于内部 HTTP(S) 负载平衡器)。
节点标记 TCP:30000-32767、TCP:80(适用于内部 HTTP(S) 负载平衡器)、TCP:所有容器目标端口(适用于 NEG)

后续步骤