本文档介绍了如何在 Google Distributed Cloud (GDC) 气隙环境中为某些虚拟机 (VM) 实例配置 Tier 1 网络性能。具有 Tier 1 网络配置的虚拟机特别适合具有大量密集型节点间通信的大型分布式计算工作负载,例如高性能计算 (HPC)、机器学习 (ML) 和深度学习 (DL)。
准备工作
如需使用 gdcloud 命令行界面 (CLI) 命令,请确保您已下载、安装并配置 gdcloud CLI。Distributed Cloud 的所有命令都使用 gdcloud 或 kubectl CLI,并且需要操作系统 (OS) 环境。
获取 kubeconfig 文件路径
如需针对管理 API 服务器运行命令,请确保您拥有以下资源:
登录并生成管理 API 服务器的 kubeconfig 文件(如果您还没有)。
使用管理 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 |
true 或 false,用于指示在删除虚拟机实例时是否自动删除启动磁盘。 |