网络最佳实践

本文档介绍了如何为 AI Hypercomputer 工作负载打造安全可靠的网络环境的最佳实践。这些建议适用于希望在 AI Hypercomputer 上配置和部署人工智能 (AI) 和机器学习 (ML) 工作负载的网络架构师、网络工程师和开发者。

建立明确且受限的 IAM 角色

正确配置 IAM 有助于提高 AI Hypercomputer 部署的安全性并确保部署成功。在生产环境中,权限不足或配置有误可能会导致部署失败。AI Hypercomputer 部署(尤其是使用 Cluster Toolkit的部署)在安全强化程度较高的环境中经常会失败,因为默认 Compute Engine 服务账号没有权限范围较广的 Editor 角色。

为帮助缓解因权限问题而可能发生的部署问题,请遵循本部分中列出的最佳实践。

使用专用服务账号

为了提高安全性和管控能力,请避免使用默认的 Compute Engine 服务账号。请改为为 AI Hypercomputer 部署创建一个专用服务账号。

您可以使用托管式 Workload Identity 来对工作负载进行身份验证和授权,而无需使用服务账号令牌。如需了解详情,请参阅 使用 mTLS 验证工作负载的身份(适用于 Compute Engine)或 Workload Identity(适用于 GKE)。

授予必要的 IAM 角色

向您创建的专用服务账号授予以下 IAM 角色:

  • Compute Admin (roles/compute.admin):提供对 Compute Engine 资源的完全控制权限。
  • Service Account User (roles/iam.serviceAccountUser):允许将服务账号附加到其他资源,这对于使用 Packer 等工具构建自定义映像至关重要。
  • Storage Admin (roles/storage.admin):需要访问和管理 Cloud Storage 存储分区,例如存储 Packer 映像或其他制品。
  • Logging Admin (roles/logging.admin):允许服务账号配置日志记录和查看日志,这对于调试至关重要。

在部署前验证权限

在开始部署之前,请验证您的服务账号是否具有必要的权限。运行 gcloud projects get-iam-policy 命令

gcloud projects get-iam-policy PROJECT_ID \
    --flatten="bindings[].members" \ format='table(bindings.role)' \
    --filter="bindings.members:serviceAccount:SERVICE_ACCOUNT_EMAIL"

替换以下内容:

  • PROJECT_ID:您的 Google Cloud 项目的 ID。
  • SERVICE_ACCOUNT_EMAIL:您要验证的服务账号的电子邮件地址。

此命令会列出您的服务账号在指定项目中被授予的所有角色。确保输出中显示了授予必要的 IAM 角色中列出的角色。

限制公共网络访问权限并加强防火墙配置

限制公共网络访问权限并加强防火墙配置,以提高安全性。这项基本的安全实践可降低默认防火墙规则过于宽松的风险。

在生产环境中,由于内部测试中不存在的严格防火墙配置,可能会发生虚拟机 (VM) 设置失败的情况。如果不了解具体的防火墙规则,工程师可能难以诊断这些故障。

检查并更新防火墙规则,以尽可能减少直接暴露于互联网的风险。如需详细了解 VPC 防火墙规则,请参阅 VPC 防火墙规则

对内部网络默认设置进行标准化处理

对内部网络默认设置进行标准化处理,以降低风险和配置难题。在复杂或安全加固的环境中,默认网络行为可能会带来风险或配置难题。Google 建议采用以下配置:

  • 使用可用区级 DNS:对于新项目,将内部域名系统 (DNS) 设置为仅使用可用区级 DNS。这种方法有助于降低潜在的全球 DNS 服务中断带来的影响。如需详细了解如何使用可用区级 DNS,请参阅使用可用区级 DNS 概览
  • 停用外部 IP 地址:尽可能停用外部 IP 地址。在停用 IP 地址之前,您必须先在预演环境中进行周密规划与充分测试,因为某些服务(例如托管式实例组 [MIG] 或具有公共节点的 GKE 集群)依赖于这些 IP 地址。如需详细了解如何限制公共 IP 地址,请参阅 Google Cloud 上的公共 IP 地址限制

按基础设施优化网络

部署的网络最佳实践因您选择的基础设施(通用 GPU 或集群 GPU)而异。

一般 GPU 最佳实践

使用通用 GPU 时,请遵循以下网络最佳实践:

  • 使用紧凑布置政策:如果通用 GPU 实例未报告 physicalHost ID,请使用紧凑布置政策来识别实例分组,并针对这些资源优化性能。如需了解详情,请参阅定义实例放置位置
  • 使用 Google 虚拟 NIC (gVNIC) 进行主机通信:为了获得一致的性能,请使用标准 TCP/IP over gVNIC 进行所有主机到主机的通信。如需详细了解 gVNIC,请参阅使用 Google 虚拟 NIC
  • 使用单 VPC 架构简化:除非隔离要求另有规定,否则请使用标准的单 VPC 网络进行所有通信。此单 VPC 建议适用于 G2、G4、A2 和 N1 系列;A3 Edge 是例外情况,需要四个数据 VPC 和 GPUDirect-TCPX。如需了解详情,请参阅在标准模式集群中最大限度地提高 GPU 网络带宽

集群 GPU 最佳实践

使用集群 GPU 时,请遵循以下网络最佳实践:

  • 实现多 VPC 环境:有助于确保 GPU 间流量隔离到专用高带宽 VPC 中,以防止主机或存储流量争用带宽。如需了解详情,请参阅多 VPC 环境
  • 应用经过 RDMA 优化的网络配置文件:使用 Google 托管的网络配置文件自动为您的 VPC 配置 RoCE 所需的低延迟。如需了解详情,请参阅针对特定应用场景的网络配置文件
  • 分流基础设施任务:使用自定义 Titanium NIC 分流任务,例如网络数据包处理和存储虚拟化,从而为 AI 应用预留 CPU 周期。

最佳做法摘要

下表总结了本文档中建议的最佳做法。

主题 任务
IAM 建立明确且受限的 IAM 角色
防火墙 限制公共网络访问权限并加强防火墙配置
网络默认设置 对内部网络默认设置进行标准化处理
基础设施 按基础设施优化网络

后续步骤