创建 VMware Engine 私有云
私有云是一种独立的 VMware 堆栈,由 ESXi 主机、vCenter、vSAN、NSX-T 和 HCX 组成。您可以通过 Google Cloud VMware Engine 门户管理私有云。创建私有云时,您将获得一个单个 vSphere 集群以及在该集群中创建的所有管理虚拟机。
VMware Engine 会在您为 vSphere/vSAN 子网选择的网络中部署管理组件。在部署期间,网络 IP 地址范围被划分为不同的子网。
准备工作
在执行本页面上的任务之前,请先执行以下前提条件步骤。
- 为要创建的私有云的 vSphere/vSAN 子网分配唯一的 IP 地址范围。
- 最小 CIDR 范围前缀:/24
- 最大 CIDR 范围前缀:/21
- 如果您需要使用 Cloud DNS 进行全球地址解析,请在创建私有云之前启用 Cloud DNS API 并完成 Cloud DNS 设置。
vSphere/vSAN 子网地址空间不得与将会与私有云通信的任何网络(例如本地网络和 Google Cloud 虚拟私有云 (VPC) 网络)重叠。如需详细了解 vSphere 或 vSAN 子网,请参阅 VMware Engine 上的 VLAN 和子网。
gcloud 和 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 Output: 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 VMware Engine 门户。
- 在资源页面上,点击创建私有云。
- 选择私有云的位置。
- 选择私有云的节点数。对于生产工作负载,请创建至少包含 3 个节点的私有云。VMware Engine 会在 60 天后删除仅包含 1 个节点的私有云。
- 可选:如果要减少管理集群中每个节点的可用核心数,请点击自定义核心数切换开关。如需了解详情,请参阅自定义核心数。
- 请输入 VMware 管理网络的 CIDR 范围。如需了解此范围的限制,请参阅准备工作部分。
- 输入 HCX 部署网络的 CIDR 范围,用于部署 HCX 组件。确保 CIDR 范围不与您的任何本地或云子网重叠。CIDR 范围必须为 /27 或更高。
- 选择查看并创建。
- 查看设置。若要更改设置,请点击返回。
- 点击创建以开始配置私有云。
在 VMware Engine 创建新的私有云时,它会部署多个 VMware 组件,并将提供的 IP 地址范围划分为子网。私有云创建过程可能需要 30 分钟到 2 小时。配置完成后,您会收到电子邮件。
gcloud
[可选] 列出项目的可用区域和可用区。
gcloud vmware locations list --project=PROJECT_ID
为您的私有云创建网络。网络名称必须采用 REGION-default 格式。
gcloud vmware networks create REGION-default --type=LEGACY --location=REGION --description="Legacy network created using gcloud vmware"
该请求会返回一个操作 ID。
查看操作的状态。当操作返回为
DONE
时,检查响应以查看操作是否成功。gcloud vmware operations describe OPERATION_ID \ --location REGION
将
OPERATION_ID
替换为上一步中的 ID。接下来,创建一个三节点私有云。
gcloud vmware private-clouds create PC_NAME \ --location=ZONE --cluster=CLUSTER_NAME\ --node-type-config=standard-72,count=3 \ --management-range=192.168.0.0/24 \ --vmware-engine-network=NETWORK_NAME
替换以下内容:
PC_NAME
:私有云的名称ZONE
:私有云的可用区CLUSTER_NAME
:此私有云中新集群的名称NETWORK_NAME
:此私有云的网络名称
该请求会返回一个操作 ID,可用于检查操作的进度。
查看操作的状态。当操作返回为
DONE
时,检查响应以查看操作是否成功。gcloud vmware operations describe OPERATION_ID \ --location REGION
将
OPERATION_ID
替换为上一步中的 ID。设置专用服务访问通道以将 VMware Engine 网络连接到您的 VPC。
检索 vCenter 和 NSX-T 凭据。
gcloud vmware private-clouds vcenter credentials describe \ --private-cloud=PC_NAME --location=ZONE
gcloud vmware private-clouds nsx credentials describe \ --private-cloud=PC_NAME --location=ZONE
API
创建旧版网络。网络名称必须采用
REGION-default
格式。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=REGION-default -d "{"type": "legacy"}"
替换以下内容:
TOKEN
:此请求的授权令牌。PROJECT_ID
:此请求的项目。REGION
:要在其中创建此网络的区域。
该请求会返回一个操作 ID,可用于检查操作的进度。
查看操作的状态。当操作返回为
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。创建一个三节点私有云。
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=PC_NAME -d "{ "networkConfig":{ "vmwareEngineNetwork":"projects/PROJECT_ID/locations/REGION/vmwareEngineNetworks/REGION-default", "managementCidr":"10.241.0.0/22" }, "managementCluster":{ "clusterId": "CLUSTER_NAME", "nodeTypeConfigs": { "standard-72": { "nodeCount": 3 } } } }"
替换以下内容:
TOKEN
:此请求的授权令牌。PROJECT_ID
:此请求的项目ZONE
:私有云的可用区PC_NAME
:私有云的名称REGION
:此私有云的网络区域CLUSTER_NAME
:此私有云中新集群的名称
该请求会返回一个操作 ID,可用于检查操作的进度。
查看操作的状态。当操作返回为
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。设置专用服务访问通道以将 VMware Engine 网络连接到您的 VPC。
检索 vCenter 和 NSX-T 凭据。
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/my-private-cloud: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/my-private-cloud:showNsxCredentials"
Python
创建旧版网络。
创建一个三节点私有云。
create_private_cloud
函数返回一个操作对象,可用于检查操作进度。查看操作的状态。提取操作的最新信息。
您可以使用操作对象的
.result()
成员方法来等待它完成。设置专用服务访问通道以将 VMware Engine 网络连接到您的 VPC。
检索 vCenter 和 NSX-T 凭据。