删除私有云

私有云由一个或多个 vSphere 集群组成。删除私有云时,所有集群及其节点都会被删除。

准备工作

删除私有云会删除整个私有云。私有云的所有组件都会被删除,包括所有私有云节点。如果要保留任何数据,请将数据备份到本地存储或其他存储空间。

私有云的组件包括:

  • 节点
  • 虚拟机
  • 管理 VLANs 和子网
  • 工作负载子网
  • 存储在私有云中的所有用户数据
  • 所有外部访问规则

gcloud 和 API 要求

如需使用 gcloud 命令行工具或 API 管理 VMware Engine 资源,我们建议您按下文所述配置工具。

gcloud

  1. 设置默认项目 ID:

    gcloud config set project PROJECT_ID
    
  2. 设置默认地区和区域:

    gcloud config set compute/region REGION
    
    gcloud config set compute/zone ZONE
    

如需详细了解 gcloud vmware 工具,请参阅 Cloud SDK 参考文档

API

本文档集中的 API 示例使用 cURL 命令行工具来查询 API。cURL 请求中需要有效的访问令牌。获取有效访问令牌的方法有很多种:以下步骤使用 gcloud 工具生成访问令牌:

  1. 登录 Google Cloud:

    gcloud auth login
    
  2. 生成访问令牌并导出到 TOKEN:

    export TOKEN=`gcloud auth print-access-token`
    
  3. 验证 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 进行通信。为了能够使用此方法,需要安装该库并配置应用默认凭据

  1. 下载并安装 Python 库:

    pip install google-cloud-vmwareengine
    
  2. 通过在 Shell 中执行以下命令来配置 ADC 信息:

    gcloud auth application-default login
    

    或者,使用服务账号密钥文件:

    export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

如需详细了解该库,请访问参考页面或查看 GitHub 上的代码示例

删除私有云

如果您希望工作负载网络 IP CIDR 立即可用,请先关闭私有云中的所有虚拟机,然后再开始删除私有云。

删除私有云后,系统会立即停止计费,但私有云可能不会在 24 小时内被删除。在此期间,您的私有云仍会保留在 Google Cloud 控制台中,并且您的虚拟机会继续运行。

控制台

  1. 在 Google Cloud 控制台中,前往私有云页面。

    前往 Private Cloud

  2. 选择您想要删除的私有云。

  3. 在摘要页面上,点击删除此私有云

  4. 在确认页面上,系统会提示您验证删除操作的所有结果。请仔细阅读这些说明,只有在您准备好接受结果后才能继续删除。准备好接受结果后,选中所有复选框。

  5. 输入运行删除前的等待时间(1‐8 小时)。在此期限内,您可以点击 取消 以取消删除。

  6. 要验证您知道要删除哪个私有云,请输入要删除的私有云的名称。

  7. 点击删除,将私有云标记为进行删除。

删除过程会在指定的延迟时间(以小时为单位)之后开始,一直持续到结束。

gcloud

如需使用 Google Cloud CLI 删除私有云,请使用 gcloud vmware private-clouds delete 命令

  gcloud vmware private-clouds delete PRIVATE_CLOUD_ID \
     --location=ZONE [--delay-hours=HOURS]

替换以下内容:

  • PRIVATE_CLOUD_ID:此请求的私有云 ID
  • ZONE:此私有云的可用区
  • HOURS:延迟此请求的小时数。默认情况下,此值设置为 3 小时,但您可以将其设置为 0 到 8 小时。将此值设置为 0 表示删除请求将立即开始。

API

如需使用 VMware Engine API 删除私有云,请发出 DELETE 请求:

curl -X DELETE -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&mps;delayHours=HOUR

替换以下内容:

  • TOKEN:此请求的授权令牌。
  • PROJECT_ID:此请求的项目
  • ZONE:私有云的可用区
  • PRIVATE_CLOUD_ID:私有云的私有云 ID
  • HOUR:延迟此请求的小时数;默认值为 3。您可以设置为 0 到 8 个小时。将此值设置为 0 会立即启动删除请求。

Python

与使用 Google Cloud 控制台相比,使用 VMWare Engine 库删除私有云的过程只有一个步骤。在调用私有云删除方法时要非常小心。

from google.api_core import operation
from google.cloud import vmwareengine_v1


def delete_private_cloud_by_full_name(cloud_name: str) -> operation.Operation:
    """
    Deletes VMware Private Cloud.

    Args:
        cloud_name: identifier of the Private Cloud you want to delete.
            Expected format:
            projects/{project_name}/locations/{zone}/privateClouds/{cloud}

    Returns:
        An Operation object related to started private cloud deletion operation.
    """
    client = vmwareengine_v1.VmwareEngineClient()
    request = vmwareengine_v1.DeletePrivateCloudRequest()
    request.force = True
    request.delay_hours = 3
    request.name = cloud_name
    return client.delete_private_cloud(request)


def delete_private_cloud(
    project_id: str, zone: str, cloud_name: str
) -> operation.Operation:
    """
    Deletes VMWare Private Cloud.

    Args:
        project_id: name of the project hosting the private cloud.
        zone: zone in which the private cloud is located in.
        cloud_name: name of the private cloud to be deleted.

    Returns:
        An Operation object related to started private cloud deletion operation.
    """
    return delete_private_cloud_by_full_name(
        f"projects/{project_id}/locations/{zone}/privateClouds/{cloud_name}"
    )

取消删除私有云

您可以在等待期内取消删除私有云。按照以下步骤操作:

控制台

  1. 在 Google Cloud 控制台中,前往私有云页面。

    前往 Private Cloud

  2. 选择已标记为删除的私有云。

  3. 在摘要页面上,点击取消删除以取消删除私有云。

gcloud

如需使用 Google Cloud CLI 取消删除私有云,请使用 gcloud vmware private-clouds undelete 命令

  gcloud vmware private-clouds undelete 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/ZONE/privateClouds?privateCloudId=PRIVATE_CLOUD_ID:undelete

替换以下内容:

  • TOKEN:此请求的授权令牌。
  • PROJECT_ID:此请求的项目 ID
  • ZONE:私有云的可用区
  • PRIVATE_CLOUD_ID:此请求的私有云 ID

Python

from google.api_core import operation
from google.cloud import vmwareengine_v1


def cancel_private_cloud_deletion_by_full_name(cloud_name: str) -> operation.Operation:
    """
    Cancels in progress deletion of VMware Private Cloud.

    Args:
        cloud_name: identifier of the Private Cloud you want to cancel deletion for.
            Expected format:
            projects/{project_name}/locations/{zone}/privateClouds/{cloud}

    Returns:
        An Operation object related to canceling private cloud deletion operation.
    """
    client = vmwareengine_v1.VmwareEngineClient()
    request = vmwareengine_v1.UndeletePrivateCloudRequest()
    request.name = cloud_name
    return client.undelete_private_cloud(request)


def cancel_private_cloud_deletion(
    project_id: str, zone: str, cloud_name: str
) -> operation.Operation:
    """
    Cancels in progress deletion of VMWare Private Cloud.

    Args:
        project_id: name of the project hosting the private cloud.
        zone: zone in which the private cloud is located in.
        cloud_name: name of the private cloud to cancel deletion for.

    Returns:
        An Operation object related to canceling private cloud deletion operation.
    """
    return cancel_private_cloud_deletion_by_full_name(
        f"projects/{project_id}/locations/{zone}/privateClouds/{cloud_name}"
    )