为虚拟机配置 Tier 1 网络

本文档介绍了如何在 Google Distributed Cloud (GDC) 气隙环境中为某些虚拟机 (VM) 实例配置 Tier 1 网络性能。具有 Tier 1 网络配置的虚拟机特别适合具有大量密集型节点间通信的大型分布式计算工作负载,例如高性能计算 (HPC)、机器学习 (ML) 和深度学习 (DL)。

准备工作

如需使用 gdcloud 命令行界面 (CLI) 命令,请确保您已下载、安装并配置 gdcloud CLI。Distributed Cloud 的所有命令都使用 gdcloudkubectl CLI,并且需要操作系统 (OS) 环境。

获取 kubeconfig 文件路径

如需针对管理 API 服务器运行命令,请确保您拥有以下资源:

  1. 登录并生成管理 API 服务器的 kubeconfig 文件(如果您还没有)。

  2. 使用管理 API 服务器的 kubeconfig 文件路径替换这些说明中的 MANAGEMENT_API_SERVER

请求权限和访问权限

如需执行本页面中列出的任务,您必须具有 Project VirtualMachine Admin 角色。按照相关步骤验证您是否在虚拟机所在项目的命名空间中拥有 Project VirtualMachine Admin (project-vm-admin) 角色。

对于使用 GDC 控制台或 gdcloud CLI 的虚拟机操作,请让您的项目 IAM 管理员为您分配“Project VirtualMachine Admin”角色和“Project Viewer”角色 (project-viewer)。

限制

至少具有 4 个 vCPU 的 N2、N3、N4、A2 和 A3 机器类型支持 Tier 1 网络。

带宽层级

入站流量和出站流量带宽限制表示 GDC 允许虚拟机实例通过其网络接口 (NIC) 传输或接收的最大可能每单位时间数据量(例如每秒千兆字节,即 Gbps)。带宽包括在虚拟机实例和对象存储之间传输的数据。

GDC 具有以下带宽限制:

  • 默认带宽上限为 10 Gbps。
  • Tier 1 网络会增加计算实例的出站流量带宽上限。出站流量带宽上限范围在 16 Gbps 到 25 Gbps 之间,具体取决于实例的大小和机器类型。
  • 实际的出站流量带宽始终小于或等于出站流量带宽限制。

为了实现尽可能高的出站流量带宽,必须满足以下所有条件:

  • 发送和接收计算实例必须位于同一可用区中。
  • 实例之间发送的数据包必须使用内部 IP 地址目的地。
  • TCP 流的数量必须介于 4 到 128 个流之间。
  • 发送实例必须启用 TCP 细分分流 (TSO),接收实例必须启用通用接收分流 (GRO)。

N2 和 N3 虚拟机

vCPU 内部 IP 第 1 层级内部 IP 地址
2 10 Gbps 不适用
4 10 Gbps 不适用
8 10 Gbps 16 Gbps
12 10 Gbps 25 Gbps
16 10 Gbps 25 Gbps
32 10 Gbps 25 Gbps
64 10 Gbps 25 Gbps

N4 虚拟机

vCPU 内部 IP 第 1 层级内部 IP 地址
4 10 Gbps 不适用
8 10 Gbps 不适用
16 10 Gbps 25 Gbps
32 10 Gbps 25 Gbps
48 10 Gbps 25 Gbps
64 10 Gbps 25 Gbps
80 10 Gbps 25 Gbps
160 10 Gbps 25 Gbps

A2 虚拟机

vCPU 内部 IP 第 1 层级内部 IP 地址
12 10 Gbps 18 Gbps
24 10 Gbps 25 Gbps

A3 虚拟机

vCPU 内部 IP 第 1 层级内部 IP 地址
28 10 Gbps 25 Gbps
56 10 Gbps 25 Gbps
112 10 Gbps 25 Gbps

配置使用 Tier 1 网络的虚拟机

创建使用 Tier 1 网络的实例和容器:

gdcloud

gdcloud compute instances create VM_NAME \
    --machine-type=MACHINE_TYPE \
    --image=BOOT_DISK_IMAGE_NAME --image-project=vm-system \
    --boot-disk-size=BOOT_DISK_SIZE \
    --network-performance-tier=tier_1

替换以下内容:

变量定义
VM_NAME 新虚拟机的名称。名称只能包含字母数字字符和短划线,且长度不得超过 53 个字符。
MACHINE_TYPE 新虚拟机的预定义机器类型。选择可用的机器类型:
gdcloud compute machine-types list
BOOT_DISK_IMAGE_NAME 要用于新虚拟机启动磁盘的映像的名称。
BOOT_DISK_SIZE 启动磁盘的大小,例如 20GB
此值必须始终大于或等于启动磁盘映像的 minimumDiskSize

API

kubectl --kubeconfig MANAGEMENT_API_SERVER \
    apply -n PROJECT -f - <<EOF
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachineDisk
metadata:
  name: VM_BOOT_DISK_NAME
spec:
  source:
    image:
      name: BOOT_DISK_IMAGE_NAME
      namespace: vm-system
  size: BOOT_DISK_SIZE
---
apiVersion: virtualmachine.gdc.goog/v1
kind: VirtualMachine
metadata:
  name: VM_NAME
spec:
  compute:
    virtualMachineType: MACHINE_TYPE
  disks:
    - virtualMachineDiskRef:
        name: VM_BOOT_DISK_NAME
      boot: true
      autoDelete: BOOT_DISK_AUTO_DELETE
  network:
    networkPerformanceTier: Tier_1
EOF

替换以下内容:

变量定义
MANAGEMENT_API_SERVER 管理 API 服务器 kubeconfig 文件。
PROJECT 用于创建虚拟机的 Distributed Cloud 项目。
VM_BOOT_DISK_NAME 新虚拟机启动磁盘的名称。
BOOT_DISK_IMAGE_NAME 要用于新虚拟机启动磁盘的映像的名称。
BOOT_DISK_SIZE 启动磁盘的大小,例如 20Gi
此值必须始终大于或等于启动磁盘映像的 minimumDiskSize
VM_NAME 新虚拟机的名称。名称只能包含字母数字字符和短划线,且长度不得超过 53 个字符。
MACHINE_TYPE 新虚拟机的预定义机器类型。选择可用的机器类型:
kubectl --kubeconfig MANAGEMENT_API_SERVER get virtualmachineimage.virtualmachine.gdc.goog --namespace PROJECT
BOOT_DISK_AUTO_DELETE truefalse,用于指示在删除虚拟机实例时是否自动删除启动磁盘。