本页面介绍了如何为 Google Distributed Cloud for VMware(纯软件)设置代理和防火墙规则。本页面适用于负责实施防火墙等数据安全系统的网络专家。如需详细了解我们在 Google Cloud 内容中提及的常见角色和示例任务,请参阅常见的 GKE 用户角色和任务。
将代理的地址列入许可名单
如果您的组织要求出站流量通过代理服务器,请将代理服务器的以下地址列入许可名单。请注意,需要 www.googleapis.com,而不是 googleapis.com:
- dl.google.com 1
- gcr.io
- www.googleapis.com
- accounts.google.com
- anthos.googleapis.com
- anthosgke.googleapis.com
- cloudresourcemanager.googleapis.com
- compute.googleapis.com
- connectgateway.googleapis.com
- container.googleapis.com
- gkeconnect.googleapis.com 2
- gkehub.googleapis.com
- gkeonprem.googleapis.com
- gkeonprem.mtls.googleapis.com
- iam.googleapis.com
- iamcredentials.googleapis.com
- kubernetesmetadata.googleapis.com
- logging.googleapis.com
- monitoring.googleapis.com
- oauth2.googleapis.com
- opsconfigmonitoring.googleapis.com
- securetoken.googleapis.com
- servicecontrol.googleapis.com
- serviceusage.googleapis.com
- storage.googleapis.com
- sts.googleapis.com
- releases.hashicorp.com(可选)3
注意:
1 Google CloudSDK 安装程序需要 dl.google.com。
2 如果您的集群是使用 Google Cloud 区域注册到舰队的,则需要将 REGION-gkeconnect.googleapis.com(例如 us-central1-gkeconnect.googleapis.com)列入许可名单。如果您未指定区域,则集群会使用全球 Connect 服务实例,并且您需要将 gkeconnect.googleapis.com 列入许可名单。如果您需要查找集群的舰队成员资格位置,请运行 gcloud container fleet memberships list。如需了解详情,请参阅 gkeConnect.location。
3 如果您不使用管理员工作站上的 Terraform 客户端来运行 terraform apply 等命令,则无需将 releases.hashicorp.com 列入许可名单。如果您在管理员工作站上使用 Terraform 客户端,则可以酌情将 releases.hashicorp.com 列入许可名单,以便通过运行 terraform version 命令来检查您使用的 Terraform 客户端版本是否是最新的。
此外,如果您的 vCenter Server 具有外部 IP 地址,请将其地址列入代理服务器的许可名单。
管理员集群的防火墙规则
管理员集群 IP 地址取决于用户集群上是否已启用 Controlplane V2,以及创建集群时所用的版本。
- 启用 Controlplane V2 后,用户集群的控制平面在用户集群本身中运行。如果未启用 Controlplane V2,则用户集群的控制平面会在管理员集群中的一个或多个节点上运行,称为 kubeception。 
- 在 1.28 及更高版本中,新的高可用性管理员集群没有插件节点。 
管理员集群插件节点(如果存在)和 kubeception 用户集群控制平面节点的 IP 地址列在管理员集群的 IP 地址块文件中。管理员集群控制平面节点在管理员集群配置文件的 network.controlPlaneIPBlock.ips 部分中进行配置。
由于管理员集群 IP 地址块文件中的 IP 地址不会分配给特定节点,因此您必须确保下表中列出的所有防火墙规则均应用于管理员集群可用的所有 IP 地址。
设置防火墙规则以允许以下流量。
| 来源 | 来源端口 | 目标 | 端口 | 协议 | 说明 | 
|---|---|---|---|---|---|
| 管理员集群控制平面节点 | 1024 - 65535 | vCenter Server API | 443 | TCP/https | 集群大小调整。 | 
| 管理员集群插件节点 | 1024 - 65535 | vCenter Server API | 443 | TCP/https | 用户集群生命周期管理。 | 
| 管理员集群插件节点 | 32768- 60999 | 管理员集群的 Kubernetes API 服务器的 VIP 用户集群的 Kubernetes API 服务器的 VIP | 443 | TCP/https | 用户集群创建。 用户集群更新。 用户集群升级。 用户集群删除。 | 
| 管理员集群控制平面节点 | 32768- 60999 | gcr.io cloudresourcemanager.googleapis.com compute.googleapis.com iam.googleapis.com oauth2.googleapis.com serviceusage.googleapis.com storage.googleapis.com 为管理员集群或用户集群启用的服务所需的任何 *.googleapis.com 网址 用户集群的 Kubernetes API 服务器的 VIP 管理员集群的 Kubernetes API 服务器的 VIP vCenter Server API 管理员集群 F5 BIG_IP API 用户集群 F5 BIG_IP API 管理员集群 NTP 服务器 用户集群 NTP 服务器 管理员集群 DNS 服务器 用户集群 DNS 服务器 | 443 | TCP/https | 预检检查(验证)。 创建、更新或升级用户集群时。 创建、更新或升级管理员集群时。 | 
| 管理员集群控制平面节点 | 32768- 60999 | 用户集群本地 Docker 注册表 | 具体取决于您的注册表 | TCP/https | 预检检查(验证)。 如果用户集群配置为使用本地私有 Docker 注册表(而非 gcr.io),则需要。 创建或升级用户集群时。 创建或升级管理员集群时。 | 
| 管理员集群控制平面节点 | 32768- 60999 | 管理员集群节点 用户集群节点 管理员集群负载均衡器 VIP 用户集群负载均衡器 VIP | icmp | 预检检查(验证)。 创建、更新或升级用户集群时。 创建、更新或升级管理员集群时。 | |
| 管理员集群控制平面节点 | 32768- 60999 | 用户集群工作器节点 | 22 | ssh | 预检检查(验证)。 升级用户集群时。 升级管理员集群时。 | 
| 用户集群控制平面节点(仅限 kubeception) | 1024 - 65535 | vCenter Server API | 443 | TCP/https | 集群大小调整。 | 
| 用户集群控制平面节点(仅限 kubeception) | 1024 - 65535 | cloudresourcemanager.googleapis.com gkeconnect.googleapis.com 或 REGION-gkeconnect.googleapis.com gkehub.googleapis.com | 443 | TCP/https | 必须具有相应的访问权限才能进行舰队注册。请参阅要列入许可名单的网址列表后面的注意 2。 | 
| 用户集群控制平面节点(仅限 kubeception) | 1024 - 65535 | F5 BIG-IP API | 443 | TCP/https | |
| 用户集群控制平面节点(仅限 kubeception) | 1024 - 65535 | 本地 Docker 注册表 | 具体取决于您的注册表 | TCP/https | 如果将 Google Distributed Cloud 配置为使用本地私有 Docker 注册表(而非 gcr.io),则需要。 | 
| 用户集群控制平面节点(仅限 kubeception) | 1024 - 65535 | gcr.io oauth2.googleapis.com storage.googleapis.com 为管理员集群启用的服务所需的任何 *.googleapis.com 网址 | 443 | TCP/https | 从公共 Docker 注册表下载映像。 如果使用私有 Docker 注册表,则不需要。 | 
| Cloud Logging Collector,在管理员集群插件节点上运行 | 1024 - 65535 | oauth2.googleapis.com logging.googleapis.com servicecontrol.googleapis.com storage.googleapis.com www.googleapis.com | 443 | TCP/https | |
| Cloud Metadata Collector,在管理员集群插件节点上运行 | 1024 - 65535 | opsconfigmonitoring.googleapis.com | 443 | TCP/https | |
| Cloud Monitoring Collector,在管理员集群插件节点上运行 | 1024 - 65535 | oauth2.googleapis.com monitoring.googleapis.com | 443 | TCP/https | |
| 管理员集群控制平面节点 | 1024 - 65535 | F5 BIG-IP API | 443 | TCP/https | |
| 管理员集群控制平面节点 | 1024 - 65535 | 本地 Docker 注册表 | 具体取决于您的注册表 | TCP/https | 如果将 Google Distributed Cloud 配置为使用本地私有 Docker 注册表(而非 gcr.io),则需要。 | 
| 管理员集群控制平面节点 | 1024 - 65535 | gcr.io oauth2.googleapis.com storage.googleapis.com 为管理员集群启用的服务所需的任何 *.googleapis.com 网址 | 443 | TCP/https | 从公共 Docker 注册表下载映像。 如果使用私有 Docker 注册表,则不需要。 | 
| 管理员集群工作器节点 | 1024 - 65535 | 管理员集群工作器节点 | 全部 | 179 - bgp 443 - https 5473 - Calico/Typha 9443 - Envoy 指标 10250 - kubelet 节点端口 | 所有工作器节点必须是第 2 层相邻节点,并且没有任何防火墙。 | 
| 管理员集群节点 | 1024 - 65535 | 管理员集群 pod CIDR | 全部 | 任意 | 外部流量在第一个节点上进行 SNAT,并发送到 pod IP。 | 
| 管理员集群工作器节点 | 全部 | 用户集群节点 | 22 | ssh | 对于 kubeception 是必需的。API 服务器通过 SSH 隧道与 kubelet 进行的通信。 对于 Controlplane V2 应跳过。 | 
| 管理员集群节点 | 1024 - 65535 | 管理员集群的 Seesaw 负载均衡虚拟机的 IP | 20255、20257 | TCP/http | 负载均衡配置推送和指标监控。只有当您使用的是捆绑式 Seesaw 负载均衡时才需要。 | 
| 管理员集群节点 | 1024 - 65535 | 管理员集群节点 | 7946 | TCP/UDP | MetalLB 健康检查只有当您使用的是捆绑式 LB MetalLB 时才需要。 | 
| 管理员集群节点 | 全部 | 用户集群控制平面 VIP 地址 | 443 | https | 对于 Controlplane V2 是必需的。允许管理员集群中的节点和 Pod 与用户集群的 Kubernetes API 服务器通信。 | 
| 管理员集群节点 | 全部 | 用户集群控制平面节点 | 443 | https | 对于 Controlplane V2 是必需的。允许管理员集群中的节点和 Pod 使用用户集群控制平面节点的 IP 地址与用户集群的 Kubernetes API 服务器通信。 | 
用户集群节点的防火墙规则
在用户集群节点中,其 IP 地址在 IP 地址块文件中列出。
与管理员集群节点一样,您不知道哪个 IP 地址将用于哪个节点。因此,用户集群节点中的所有规则都适用于每个用户集群节点。
| 来源 | 来源端口 | 目标 | 端口 | 协议 | 说明 | 
|---|---|---|---|---|---|
| 用户集群控制平面节点(仅限 Controlplane V2) | 1024 - 65535 | vCenter Server API | 443 | TCP/https | 集群大小调整。 | 
| 用户集群控制平面节点(仅限 Controlplane V2) | 1024 - 65535 | cloudresourcemanager.googleapis.com gkeconnect.googleapis.com 或 REGION-gkeconnect.googleapis.com gkehub.googleapis.com | 443 | TCP/https | 必须具有相应的访问权限才能进行舰队注册。请参阅要列入许可名单的网址列表后面的注意 2。 | 
| 用户集群控制平面节点(仅限 Controlplane V2) | 1024 - 65535 | 本地 Docker 注册表 | 具体取决于您的注册表 | TCP/https | 如果将 Google Distributed Cloud 配置为使用本地私有 Docker 注册表(而非 gcr.io),则需要。 | 
| 用户集群控制平面节点(仅限 Controlplane V2) | 1024 - 65535 | gcr.io oauth2.googleapis.com storage.googleapis.com 为管理员集群启用的服务所需的任何 *.googleapis.com 网址 | 443 | TCP/https | 从公共 Docker 注册表下载映像。 如果使用私有 Docker 注册表,则不需要。 | 
| 用户集群控制平面节点(仅限 Controlplane V2) | 1024 - 65535 | F5 BIG-IP API | 443 | TCP/https | |
| 用户集群工作器节点 | 全部 | gcr.io oauth2.googleapis.com storage.googleapis.com 为此集群启用的服务所需的任何 *.googleapis.com 网址 | 443 | TCP/https | 从公共 Docker 注册表下载映像。 如果使用私有 Docker 注册表,则不需要。 | 
| 用户集群工作器节点 | 全部 | F5 BIG-IP API | 443 | TCP/https | |
| 用户集群工作器节点 | 全部 | 在管理员集群中运行的 pushprox 服务器的 VIP。 | 8443 | TCP/https | Prometheus 流量。 | 
| 用户集群工作器节点 | 全部 | 用户集群工作器节点 | 全部 | 22 - ssh 179 - bgp 443 - https 5473 - calico-typha 9443 - envoy 指标 10250 - kubelet 节点端口 | 所有工作器节点必须是第 2 层相邻节点,并且没有任何防火墙。 | 
| 用户集群工作器节点 | 全部 | 用户控制平面 VIP 地址 | 443 | TCP/https | |
| 用户集群工作器节点 | 全部 | 用户控制平面 VIP 地址 | 8132 | GRPC | 对于 kubeception 是必需的。Konnectivity 连接。 对于 Controlplane V2 应跳过。 | 
| 管理员集群节点 | 全部 | 用户集群 vCenter Server | 443 | https | 允许管理员集群管理用户集群的生命周期。如果管理员集群和用户集群具有不同的 vCenter 服务器,则此为必需参数。 | 
| 用户集群节点 | 1024 - 65535 | 用户集群 pod CIDR | 全部 | 任意 | 外部流量在第一个节点上进行 SNAT,并发送到 pod IP。 | 
| Cloud Logging Collector,在随机用户集群工作器节点上运行 | 1024 - 65535 | oauth2.googleapis.com logging.googleapis.com servicecontrol.googleapis.com www.googleapis.com | 443 | TCP/https | |
| Connect Agent,在随机用户集群工作器节点上运行。 | 1024 - 65535 | cloudresourcemanager.googleapis.com gkeconnect.googleapis.com 或 REGION-gkeconnect.googleapis.com gkehub.googleapis.com www.googleapis.com iam.googleapis.com iamcredentials.googleapis.com oauth2.googleapis.com securetoken.googleapis.com sts.googleapis.com accounts.google.com | 443 | TCP/https | |
| Cloud Metadata Collector,在随机用户集群工作器节点上运行 | 1024 - 65535 | opsconfigmonitoring.googleapis.com kubernetesmetadata.googleapis.com | 443 | TCP/https | |
| Cloud Monitoring Collector,在随机用户集群工作器节点上运行 | 1024 - 65535 | oauth2.googleapis.com monitoring.googleapis.com | 443 | TCP/https | |
| 用户集群节点 | 1024 - 65535 | 用户集群的 Seesaw 负载均衡虚拟机的 IP。 | 20255、20257 | TCP/http | 负载均衡配置推送和指标监控。只有当您使用的是捆绑式 Seesaw 负载均衡时才需要。 | 
| enableLoadBalancer=true 的用户集群节点 | 1024 - 65535 | enableLoadBalancer=true 的用户集群节点 | 7946 | TCP/UDP | MetalLB 健康检查只有当您使用的是捆绑式 LB MetalLB 时才需要。 | 
| 用户集群网络 | 全部 | 用户集群控制平面 VIP | 443 | TCP/https | 
其余组件的防火墙规则
这些规则适用于未在管理员集群节点和用户集群节点表格中列出的任何其他组件。
| 来源 | 来源端口 | 目标 | 端口 | 协议 | 说明 | 
|---|---|---|---|---|---|
| 管理员集群 pod CIDR | 1024 - 65535 | 管理员集群 pod CIDR | 全部 | 任意 | Pod 之间的流量直接通过 Pod CIDR 中的来源和目标 IP 进行 L2 转发。 | 
| 管理员集群 pod CIDR | 1024 - 65535 | 管理员集群节点 | 全部 | 任意 | 外部流量的返回流量。 | 
| 用户集群 pod CIDR | 1024 - 65535 | 用户集群 pod CIDR | 全部 | 任意 | Pod 之间的流量直接通过 Pod CIDR 中的来源和目标 IP 进行 L2 转发。 | 
| 用户集群 pod CIDR | 1024 - 65535 | 用户集群节点 | 全部 | 任意 | 外部流量的返回流量。 | 
| 客户端和应用最终用户 | 全部 | Istio Ingress 的 VIP | 80, 443 | TCP | 进入用户集群的 Ingress 服务的最终用户流量。 | 
| 部署管理员工作站的 Jump 服务器 | 临时端口范围 | vCenter Server API 目标集群中主机的 ESXi VMkernel (mgt) IP | 443 | TCP/https | 检查“cat /proc/sys/net/ipv4/ip_local_port_range”中的临时端口范围。 | 
| 管理员工作站 | 32768- 60999 | gcr.io cloudresourcemanager.googleapis.com oauth2.googleapis.com storage.googleapis.com 为此集群启用的服务所需的任何 *.googleapis.com 网址 | 443 | TCP/https | 从公共 Docker 注册表下载 Docker 映像。 | 
| 管理员工作站 | 32768- 60999 | gcr.io cloudresourcemanager.googleapis.com compute.googleapis.com iam.googleapis.com oauth2.googleapis.com serviceusage.googleapis.com storage.googleapis.com 为管理员集群或用户集群启用的服务所需的任何 *.googleapis.com 网址 用户集群的 Kubernetes API 服务器的 VIP 管理员集群的 Kubernetes API 服务器的 VIP vCenter Server API F5 BIG-IP API | 443 | TCP/https | 预检检查(验证)。 使用  | 
| 管理员工作站 | 32768- 60999 | vCenter Server API F5 BIG-IP API | 443 | TCP/https | 管理员集群创建。 用户集群创建。 | 
| 管理员工作站 | 32768- 60999 | 目标集群中主机的 ESXi VMkernel (mgt) IP | 443 | TCP/https | 管理员工作站通过 ESXi 主机将 OVA 上传到数据存储区。 | 
| 管理员工作站 | 32768- 60999 | 管理员集群的 Kubernetes API 服务器的 VIP 用户集群的 Kubernetes API 服务器的 VIP | 443 | TCP/https | 管理员集群创建。 管理员集群更新。 用户集群创建。 用户集群更新。 用户集群删除。 | 
| 管理员工作站 | 32768- 60999 | 管理员集群控制平面节点和工作器节点 | 443 | TCP/https | 管理员集群创建。 控制平面升级。 | 
| 管理员工作站 | 32768- 60999 | 所有管理员集群节点和所有用户集群节点 | 443 | TCP/https | 作为  | 
| 管理员工作站 | 32768- 60999 | 管理员集群的 Istio Ingress 的 VIP 用户集群的 Istio Ingress 的 VIP | 443 | TCP/https | 作为  | 
| 管理员工作站 | 32768- 60999 | oauth2.googleapis.com logging.googleapis.com monitoring.googleapis.com servicecontrol.googleapis.com storage.googleapis.com www.googleapis.com | 443 | TCP/https | Cloud Logging 和 Monitoring 访问权限。 | 
| 管理员工作站 | 32768- 60999 | 管理员集群和用户集群中都存在的 Seesaw 负载均衡虚拟机的 IP 管理员集群和用户集群中都存在的 Seesaw 负载均衡 VIP | 20256、20258 | TCP/http/gRPC | 负载均衡的健康检查。只有当您使用的是捆绑式 Seesaw 负载平衡时才需要。 | 
| 管理员工作站 | 32768- 60999 | 集群控制平面的节点 IP 地址 | 22 | TCP | 如果需要能够从管理员工作站通过 SSH 访问管理员集群控制平面,则为必需。 | 
| 管理员工作站 | 32768- 60999 | releases.hashicorp.com | 443 | TCP/https | 可选。请参阅要列入许可名单的网址列表后面的注意 3。 | 
| 负载平衡虚拟机 IP | 32768- 60999 | 相应集群的节点 IP | 10256:节点健康检查 | TCP/http | 节点健康检查。healthCheckNodePort 用于 externalTrafficPolicy 设置为 Local 的服务。只有当您使用的是捆绑式 Seesaw 负载平衡时才需要。 | 
| F5 Self-IP | 1024 - 65535 | 所有管理员集群节点和所有用户集群节点 | 30000 - 32767 | 任意 | 适用于 F5 BIG-IP 通过虚拟服务器 VIP 负载均衡到 Kubernetes 集群节点上的节点端口的数据层面流量。 通常,F5 self-ip 与 Kubernetes 集群节点位于同一网络/子网上。 |