Google Cloud Managed Lustre 在虚拟私有云 (VPC) 中运行,可为 Compute Engine 虚拟机 (VM) 实例、Google Kubernetes Engine (GKE) 集群和无服务器工作负载提供网络功能。
您可以使用以下任一网络设置将 Managed Lustre 实例连接到客户端 Compute Engine 虚拟机或 Google Kubernetes Engine 集群:
- 同一 VPC 网络:创建 Managed Lustre 实例和客户端资源时,请指定同一 VPC 网络。
- 对等互连的 VPC 网络:通过 Network Connectivity Center (NCC) 连接对等互连的 VPC 网络。借助 NCC,您可以将多个 VPC 网络和本地网络连接到中央 hub,从而在它们之间建立连接。 如需了解如何设置 NCC,请参阅 Network Connectivity Center 文档。
所需权限
您必须拥有以下 IAM 权限:
serviceusage.services.enablecompute.networks.createcompute.addresses.createcompute.addresses.getcompute.firewalls.createservicenetworking.services.addPeering
您可以通过添加以下所有预定义角色来授予这些权限:
- Service Usage Admin (
roles/serviceusage.serviceUsageAdmin) - Compute Network Admin (
roles/compute.networkAdmin) - Compute Security Admin (
roles/compute.securityAdmin)
或者,创建包含特定权限的自定义角色。
如需将角色授予用户,请执行以下操作:
gcloud projects add-iam-policy-binding PROJECT_ID \
--member="user:EMAIL_ADDRESS"
--role=ROLE
创建和配置 VPC
启用服务网络。
gcloud services enable servicenetworking.googleapis.com创建自定义模式的 VPC 网络。
gcloud compute networks create NETWORK_NAME \ --subnet-mode=custom \ --mtu=8896为 GKE 或 Compute Engine 资源创建主子网。
gcloud compute networks subnets create SUBNET_NAME \ --network=NETWORK_NAME \ --range=10.128.0.0/20 \ --region=REGION为专用服务访问通道分配 IP 范围。
此内部 IP 范围用于专用服务访问通道连接,该连接可将您的 VPC 网络与 Google 管理的网络(Managed Lustre 资源预配于该网络中)进行对等互连。此分配的范围用于为 Managed Lustre 实例提供 IP,并且不得与 VPC 网络中的任何子网重叠。
每个 Managed Lustre 实例都需要一个前缀长度至少为 23 的连续 CIDR 地址块。
我们建议创建更大的 IP 范围(/20),以便创建多个 Managed Lustre 实例或使用其他 Google Cloud 服务。
gcloud compute addresses create IP_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --prefix-length=20 \ --description="Managed Lustre VPC Peering" \ --network=NETWORK_NAME获取与您在上一步中创建的范围关联的 CIDR 块。
CIDR_BLOCK=$( gcloud compute addresses describe IP_RANGE_NAME \ --global \ --format="value[separator=/](address, prefixLength)" )创建一条防火墙规则,以允许来自您创建的 IP 范围的 TCP 流量。
gcloud compute firewall-rules create FIREWALL_NAME \ --allow=tcp:988,tcp:6988 \ --network=NETWORK_NAME \ --source-ranges=$CIDR_BLOCK如果您的客户端虚拟机或 GKE 集群位于通过 Network Connectivity Center (NCC) 连接的对等互连 VPC 网络中,则这两个 VPC 网络中的防火墙规则都必须允许客户端子网与分配的 IP 范围 (
$CIDR_BLOCK) 之间的流量。运行以下命令可在 NCC 连接的 VPC 网络中创建防火墙规则:gcloud compute firewall-rules create PEER_FIREWALL_NAME \ --allow=tcp:988,tcp:6988 \ --network=PEER_NETWORK_NAME \ --source-ranges=$CIDR_BLOCK建立专用服务访问通道连接。
gcloud services vpc-peerings connect \ --network=NETWORK_NAME \ --ranges=IP_RANGE_NAME \ --service=servicenetworking.googleapis.com只有在预配了 Managed Lustre 实例的 VPC 网络中才需要此连接。
为多 NIC 创建其他子网
如果您计划使用多个网络接口卡 (multi-NIC) 来聚合带宽,则必须在 VPC 网络中为每个 NIC 创建单独的子网。
如需受益于多 NIC,您必须使用连接到常规 VPC 的具有多个物理 NIC 的 Compute Engine 机器类型。连接到具有 RDMA 网络配置文件的 VPC 的 NIC 不能用于增加常规网络带宽。如需了解详情,请参阅网络和 GPU 机器。
如需为其他物理 NIC 创建子网,请执行以下操作:
gcloud compute networks subnets create SUBNET_NAME_2 \
--network=NETWORK_NAME \
--range=10.130.0.0/20 \
--region=REGION
对每个额外的 NIC 重复执行此步骤。确保每个子网的 IP 范围不会相互重叠。
VPC Service Controls
Managed Lustre 支持 VPC Service Controls (VPC-SC)。如需了解详情,请参阅通过服务边界保护实例。
排查 VPC 设置问题
无法为服务 servicenetworking.googleapis.com 添加对等互连
ERROR: (gcloud.services.vpc-peerings.connect) User [$(USER)] does not have
permission to access services instance [servicenetworking.googleapis.com]
(or it may not exist): Permission denied to add peering for service
'servicenetworking.googleapis.com'.
此错误表示您的用户账号没有 servicenetworking.services.addPeering IAM 权限。
如需了解如何向您的账号添加以下角色,请参阅使用 IAM 进行访问权限控制:
roles/compute.networkAdmin或roles/servicenetworking.networksAdmin
无法在 CreateConnection 中修改分配的范围
ERROR: (gcloud.services.vpc-peerings.connect) The operation
"operations/[operation_id]" resulted in a failure "Cannot modify allocated
ranges in CreateConnection. Please use UpdateConnection."
如果您已在此网络上创建了具有不同 IP 范围的 VPC 对等互连,则会返回此错误。有两个可能的解决方案:
替换现有 IP 范围:
gcloud services vpc-peerings update \
--network=NETWORK_NAME \
--ranges=IP_RANGE_NAME \
--service=servicenetworking.googleapis.com \
--force
或者,将新 IP 范围添加到现有连接:
检索对等互连的现有 IP 范围列表:
EXISTING_RANGES="$( gcloud services vpc-peerings list \ --network=NETWORK_NAME \ --service=servicenetworking.googleapis.com \ --format="value(reservedPeeringRanges.list())" \ --flatten=reservedPeeringRanges )然后,将新范围添加到对等互连中:
gcloud services vpc-peerings update \ --network=NETWORK_NAME \ --ranges="${EXISTING_RANGES}",IP_RANGE_NAME \ --service=servicenetworking.googleapis.com
IP 地址范围用尽
如果实例创建因 IP 地址范围耗尽而失败,请执行以下操作:
ERROR: (gcloud.alpha.Google Cloud Managed Lustre.instances.create) FAILED_PRECONDITION: Invalid
resource state for "NETWORK_RANGES_NOT_AVAILABLE": IP address range exhausted
按照 VPC 指南修改现有专用连接以添加 IP 地址范围。
我们建议前缀长度至少为 /20(4096 个地址)。