创建 VMware Engine 私有云
私有云是一种独立的 VMware 堆栈,由 ESXi 主机、vCenter、vSAN、NSX 和 HCX 组成。您可以通过Google Cloud 控制台管理私有云。创建私有云时,您将获得一个单个 vSphere 集群以及在该集群中创建的所有管理虚拟机。
VMware Engine 会在您为 vSphere/vSAN 子网选择的网络中部署管理组件。在部署期间,内部 IP 地址范围被划分为不同的子网。
准备工作
在执行本页面上的任务之前,请先执行以下前提条件步骤。
- 为要创建的私有云的 vSphere/vSAN 子网分配唯一的 IP 地址范围。- 最小 CIDR 范围前缀:/24
- 最大 CIDR 范围前缀:/20
 
- 如果您需要使用 Cloud DNS 进行全球地址解析,请在创建私有云之前启用 Cloud DNS API 并完成 Cloud DNS 设置。
vSphere/vSAN 子网地址空间不得与将会与私有云通信的任何网络(例如本地网络和Google Cloud 虚拟私有云 [VPC] 网络)重叠。如需详细了解 vSphere 或 vSAN 子网,请参阅 VMware Engine 上的 VLAN 和子网。
Google Cloud CLI 和 API 要求
如需使用 gcloud 命令行工具或 API 管理 VMware Engine 资源,我们建议您按下文所述配置工具。
gcloud
- 设置默认项目 ID: - gcloud config set project PROJECT_ID 
- 设置默认地区和区域: - gcloud config set compute/region REGION - gcloud config set compute/zone ZONE 
如需详细了解 gcloud vmware 工具,请参阅 Cloud SDK 参考文档。
API
本文档集中的 API 示例使用 cURL 命令行工具来查询 API。cURL 请求中需要有效的访问令牌。获取有效访问令牌的方法有很多种:以下步骤使用 gcloud 工具生成访问令牌:
- 登录 Google Cloud: - gcloud auth login 
- 生成访问令牌并导出到 TOKEN: - export TOKEN=`gcloud auth print-access-token` 
- 验证 TOKEN 设置正确: - echo $TOKEN 
现在,在对 API 的请求中使用授权令牌。例如:
curl -X GET -H "Authorization: Bearer \"$TOKEN\"" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations
Python
本文档中的 Python 代码示例使用 VMware Engine 库与 API 进行通信。为了能够使用此方法,需要安装该库并配置应用默认凭据。
- 下载并安装 Python 库: - pip install google-cloud-vmwareengine 
- 通过在 Shell 中执行这些命令来配置 ADC 信息: - gcloud auth application-default login - 或者,使用服务账号密钥文件: - export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH" 
如需详细了解该库,请访问参考页面或查看 GitHub 上的代码示例。
创建标准私有云
控制台
如需使用 Google Cloud 控制台创建标准私有云,请按以下步骤操作:
- 在 Google Cloud 控制台中,前往私有云页面。 
- 点击选择项目,然后选择要在其中创建私有云的组织、文件夹或项目。 
- 点击创建。 
- 输入私有云的名称。 
- 选择标准私有云作为私有云类型。 
- 选择您希望私有云部署到的位置。 
- 输入主集群的名称。 
- 为您的主集群选择节点类型。 
- 选择私有云的节点数。对于生产工作负载,请创建至少包含 3 个节点的私有云。VMware Engine 会在 60 天后删除仅包含 1 个节点的私有云。 
- 可选:如果要减少管理集群中每个节点的可用核心数,请点击自定义核心数切换开关。如需了解详情,请参阅自定义核心数。 
- 请输入 VMware 管理网络的 CIDR 范围。如需了解此范围的限制,请参阅准备工作部分。 
- 点击检查并创建。 
- 查看设置。若要更改设置,请点击返回。 
- 点击创建以开始配置私有云。 
以下列表更详细地介绍了私有云创建期间的每个字段:
- 名称:私有云的永久性唯一标识符。
- 说明:私有云详细信息页面上显示的额外信息。
- 区域:VMware Engine 托管私有云的地理区域。
- 可用区:区域的一部分,该部分在物理上与同一区域中的其他可用区相互隔离。可用区是区域内的单个故障网域。
- 主要集群名称:为私有云中的初始 vSphere 集群指定的名称。您的私有云的 VMware 管理设备在此集群上运行。
- 节点类型:主集群中节点的硬件配置。
- 节点数:主集群中的节点数。
- 管理 IP 地址范围 (Management IP address range):用于 vCenter Server、NSX Manager、ESXi 主机、私有云基础架构的其他部分的 IP 地址范围。此地址范围不用于工作负载虚拟机,并且不能与 VPC 网络或您打算连接到私有云的任何其他网络的任何部分重叠。
- VMware Engine 网络:根据网络政策处理私有云连接的网络资源。您和连接到此 VMware Engine 网络的资源可以从 Google Cloud内部访问私有云。
gcloud
如需使用 Google Cloud CLI 创建延伸私有云,请按以下步骤操作:
- 可选:运行 - gcloud vmware locations list命令,列出项目的可用区域和可用区:- gcloud vmware locations list \ --project=PROJECT_ID- 替换以下内容: - PROJECT_ID:此请求的项目 ID
 
- 运行 - gcloud vmware networks create命令,为您的私有云创建网络:- gcloud vmware networks create NETWORK_NAME \ --type=LEGACY \ --location=REGION \ --description="DESCRIPTION"- 替换以下内容: - NETWORK_NAME:私有云的网络名称
- REGION:私有云的区域
- DESCRIPTION:私有云的说明
 - 该请求会返回一个操作 ID。 
- 运行 - gcloud vmware operations describe命令,检查操作的状态:当操作返回为- DONE时,检查响应以查看操作是否成功:- gcloud vmware operations describe OPERATION_ID \ --location REGION- 替换以下内容: - OPERATION_ID:上一步中的 ID
- REGION:私有云的区域
 
- 通过运行 - gcloud vmware private-clouds create命令创建三节点私有云:- gcloud vmware private-clouds create PRIVATE_CLOUD_ID \ --location=ZONE \ --cluster=CLUSTER_ID \ --node-type-config=type=NODE_TYPE,count=NODE_COUNT \ --management-range=`IP_ADDRESS` \ --vmware-engine-network=NETWORK_NAME - 替换以下内容: - PRIVATE_CLOUD_ID:私有云的名称。
- ZONE:私有云的可用区。
- CLUSTER_ID:此私有云中新集群的名称。
- NODE_TYPE:节点类型。如需了解详情,请参阅节点类型。
- NODE_COUNT:节点数。指定一个不低于 3 的值。
- IP_ADDRESS:相应请求的 IP 地址,例如- 192.168.0.0/24。
- NETWORK_NAME:此私有云的网络名称。
 - 该请求会返回一个操作 ID,可用于检查操作的进度。 
- 运行 - gcloud vmware operations describe命令,检查操作的状态:当操作返回为- DONE时,检查响应以查看操作是否成功。- gcloud vmware operations describe OPERATION_ID \ --location REGION- 替换以下内容: - OPERATION_ID:上一步中的 ID
- REGION:私有云的区域
 
- 设置专用服务访问通道以将 VMware Engine 网络连接到您的 VPC。 
- 分别运行 - gcloud vmware private-clouds vcenter credentials describe和- gcloud vmware private-clouds nsx credentials describe命令,以检索 vCenter 和 NSX 凭据。- gcloud vmware private-clouds vcenter credentials describe \ --private-cloud=PRIVATE_CLOUD_ID \ --location=ZONE- gcloud vmware private-clouds nsx credentials describe \ --private-cloud=PRIVATE_CLOUD_ID \ --location=ZONE- 替换以下内容: - PRIVATE_CLOUD_ID:私有云的 ID
- ZONE:私有云的可用区
 
API
如需使用 VMware Engine API 创建延伸私有云,请按以下步骤操作:
- 通过发出 - POST请求来创建旧版网络。- curl -X POST -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/vmwareEngineNetworks?vmwareEngineNetworkId=NETWORK_NAME -d "{"type": "legacy"}"- 替换以下内容: - TOKEN:此请求的授权令牌
- PROJECT_ID:此请求的项目
- REGION:要在其中创建此网络的区域
- NETWORK_NAME:私有云的网络名称
 - 该请求会返回一个操作 ID,可用于检查操作的进度。 
- 通过发出 - GET请求来检查操作的状态。当操作返回为- DONE时,检查响应以查看操作是否成功:- curl -X GET -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID - 将 - OPERATION_ID替换为上一步中的 ID。
- 通过发出 - POST请求来创建三节点私有云:- curl -X POST -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds?privateCloudId=PRIVATE_CLOUD_ID -d "{ "networkConfig":{ "vmwareEngineNetwork":"projects/PROJECT_ID/locations/REGION/vmwareEngineNetworks/NETWORK_NAME", "managementCidr":"10.241.0.0/22" }, "managementCluster":{ "clusterId": "CLUSTER_ID", "nodeTypeConfigs": { "standard-72": { "nodeCount": NODE_COUNT } } } }"- 替换以下内容: - TOKEN:此请求的授权令牌。
- PROJECT_ID:此请求的项目 ID
- ZONE:私有云的可用区
- PRIVATE_CLOUD_ID:私有云的 ID
- REGION:此私有云的网络区域
- NETWORK_NAME:私有云的网络名称
- CLUSTER_ID:此私有云中新集群的 ID
- NODE_COUNT:节点数。指定一个不低于 3 的值。
 - 该请求会返回一个操作 ID,可用于检查操作的进度。 
- 通过发出 - GET请求来检查操作的状态。当操作返回为- DONE时,检查响应以查看操作是否成功:- curl -X GET -H "Authorization: Bearer TOKEN" -H "Content-Type: application/json; charset=utf-8" https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/REGION/operations/OPERATION_ID - 替换以下内容: - PROJECT_ID:此请求的项目 ID
- REGION:私有云的区域
- OPERATION_ID:上一步中的 ID
 
- 设置专用服务访问通道以将 VMware Engine 网络连接到您的 VPC。 
- 通过发出 - GET请求来检索 vCenter 和 NSX 凭据:- curl -X GET -H "Authorization: Bearer \"TOKEN"\" -H "Content-Type: application/json; charset=utf-8" "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PRIVATE_CLOUD_ID:showVcenterCredentials" - curl -X GET -H "Authorization: Bearer \"TOKEN"\" -H "Content-Type: application/json; charset=utf-8" "https://vmwareengine.googleapis.com/v1/projects/PROJECT_ID/locations/ZONE/privateClouds/PRIVATE_CLOUD_ID:showNsxCredentials" - 替换以下内容: - PROJECT_ID:此请求的项目 ID
- ZONE:私有云的可用区
- PRIVATE_CLOUD_ID:私有云的 ID
 
Python
- 创建旧版网络。 
- 创建一个三节点私有云。 - create_private_cloud函数返回一个操作对象,可用于检查操作进度。
- 查看操作的状态。提取操作的最新信息。 - 您可以使用操作对象的 - .result()成员方法来等待它完成。
- 设置专用服务访问通道以将 VMware Engine 网络连接到您的 VPC。 
- 检索 vCenter 和 NSX 凭据。 
在 VMware Engine 创建新的私有云时,它会部署多个 VMware 组件,并将提供的 IP 地址范围划分为子网。私有云创建过程可能需要 30 分钟到 2 小时。配置完成后,您会收到一封电子邮件。