Crea una nube privada de VMware Engine

Una nube privada es una pila de VMware aislada que consta de hosts ESXi, vCenter, vSAN, NSX-T y HCX. Administras nubes privadas a través del Consola de Google Cloud Cuando creas una nube privada, obtienes un único clúster de vSphere y todas las VM de administración que se crean en ese clúster.

VMware Engine implementa componentes de administración en la red que seleccionas para las subredes de vSphere/vSAN. El rango de direcciones IP de la red se divide en subredes diferentes durante la implementación.

Antes de comenzar

Antes de realizar las tareas de esta página, sigue estos requisitos previos: pasos.

El espacio de direcciones de subred de vSphere/vSAN no debe superponerse con ninguna red que se comunique con la nube privada, como las redes locales y las redes de nube privada virtual (VPC) de Google Cloud. Para obtener más información sobre las subredes de vSphere o vSAN, consulta VLAN y subredes en VMware Engine.

Requisitos de la API y de Google Cloud CLI

Para usar la herramienta de línea de comandos de gcloud o la API para administrar tu VMware Engine recursos, te recomendamos configurar las herramientas como se describe a continuación.

gcloud

  1. Establece tu ID del proyecto predeterminado:

    gcloud config set project PROJECT_ID
    
  2. Configura una región y una zona predeterminadas:

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

Para obtener más información sobre la herramienta gcloud vmware, consulta los documentos de referencia del SDK de Cloud.

API

Los ejemplos de API en este conjunto de documentos usan la herramienta de línea de comandos de cURL para consultar la API. Se requiere un token de acceso válido como parte de cURL para cada solicitud. Existen muchas maneras de obtener un token de acceso válido: lo siguiente En los pasos, usa la herramienta gcloud para generar un token de acceso:

  1. Accede a Google Cloud:

    gcloud auth login
    
  2. Genera el token de acceso y expórtalo a TOKEN:

    export TOKEN=`gcloud auth print-access-token`
    
  3. Verifica que TOKEN esté configurado correctamente:

    echo $TOKEN
    

Ahora, usa el token de autorización en tus solicitudes a la API. Por ejemplo:

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

Las muestras de código de Python en esta documentación usan la biblioteca de VMware Engine para comunicarse con la API. Para poder usar este enfoque, se debe instalar la biblioteca y configurar las credenciales predeterminadas de la aplicación.

  1. Descarga y, luego, instala la biblioteca de Python:

    pip install google-cloud-vmwareengine
    
  2. Para configurar la información de ADC, ejecuta esos comandos en la shell:

    gcloud auth application-default login
    

    O bien, usa un archivo de claves de la cuenta de servicio:

    export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

Para obtener más información sobre la biblioteca, visita la página de referencia o mira muestras de código en GitHub.

Crea una nube privada

Console

Para crear una nube privada con la consola de Google Cloud, sigue estos pasos:

  1. Accede a la consola de Google Cloud.
  2. En el menú de navegación principal, haz clic en Nubes privadas.
  3. Haz clic en Crear.
  4. Selecciona la ubicación en la que quieres implementar la nube privada.
  5. Selecciona el tipo de nodo para el clúster principal.
  6. Selecciona la cantidad de nodos de la nube privada. Para las cargas de trabajo de producción, crea tu nube privada con al menos 3 nodos. VMware Engine borra las nubes privadas que contienen solo 1 nodo después de 60 días.
  7. Opcional: Haz clic en el botón de activación Personalizar núcleos si deseas reducir la cantidad de núcleos disponibles para cada nodo en el clúster de administración. Para obtener más detalles, consulta Recuentos de núcleos personalizados.
  8. Ingresa un rango CIDR para la red de administración de VMware. Para obtener información sobre las restricciones de este rango, consulta la sección Antes de comenzar.
  9. Ingresa un rango CIDR para la red de implementación de HCX, que se usa a fin de implementar componentes de HCX. Asegúrate de que el rango de CIDR no se superponga con ninguna de tus subredes locales o en la nube. El rango de CIDR debe ser /27 o superior.
  10. Haz clic en Revisar y crear.
  11. Revisa la configuración. Si deseas cambiar alguna configuración, haz clic en Atrás.
  12. Haz clic en Crear para comenzar a aprovisionar la nube privada.

En la siguiente lista, se describe con más detalle cada campo de la creación de nubes privadas:

  • Nombre: Es un identificador único permanente de la nube privada.
  • Descripción: Información adicional que se puede ver en la página de detalles de la nube privada.
  • Región: Es la región geográfica en la que VMware Engine aloja tu nube privada.
  • Zona: Es un subconjunto de una región aislada físicamente de otras zonas del en la misma región. Una zona es un dominio con un punto único de fallo ubicado en una región.
  • Nombre del clúster principal: Es el nombre que se asigna al clúster de vSphere inicial en el en una nube privada. Los dispositivos de administración de VMware de tu nube privada se ejecutan en esta clúster.
  • Tipo de nodo: Configuración de hardware de los nodos del clúster principal.
  • Nodos: Es la cantidad de nodos en el clúster principal.

  • Management IP address range: Es el rango de direcciones IP que se usa para vCenter Server, NSX Manager, los hosts ESXi y otros componentes de la infraestructura de la nube privada. Este rango no se usa para VMs de cargas de trabajo y no debe superponerse con ninguna parte de tu red de VPC o cualquier otra red a la que planees conectar tu a la nube.
  • Red de VMware Engine: Recurso de red que controla el tráfico privado y las conexiones a la nube según una política de red. Tú y los recursos conectados a esta red de VMware Engine pueden acceder a la nube privada desde dentro de Google Cloud.

gcloud

Para crear una nube privada ampliada con Google Cloud CLI, sigue estos pasos: pasos:

  1. Opcional: Obtén una lista de las regiones y zonas disponibles para tu proyecto por ejecutando el comando gcloud vmware locations list

    gcloud vmware locations list \
        --project=PROJECT_ID
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto de esta solicitud.
  2. Crea una red para tu nube privada ejecutando Comando gcloud vmware networks create

    gcloud vmware networks create NETWORK_NAME \
        --type=LEGACY \
        --location=REGION \
        --description="DESCRIPTION"

    Reemplaza lo siguiente:

    • NETWORK_NAME: Es el nombre de la red del nube privada
    • REGION: Es la región de la nube privada.
    • DESCRIPTION: Una descripción para el elemento privado nube

    La solicitud muestra un ID de operación.

  3. Verifica el estado de la operación ejecutando el Comando gcloud vmware operations describe Cuando la operación se muestre como DONE, verifica la respuesta para ver si el valor se realizó correctamente la siguiente operación:

    gcloud vmware operations describe OPERATION_ID \
        --location REGION

    Reemplaza lo siguiente:

    • OPERATION_ID: Es el ID del paso anterior.
    • REGION: Es la región de la nube privada.
  4. Crea una nube privada de tres nodos ejecutando Comando 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
    

    Reemplaza lo siguiente:

    • PRIVATE_CLOUD_ID: Es el nombre del objeto privado. en la nube.
    • ZONE: Es la zona de la nube privada.
    • CLUSTER_ID: Es el nombre del clúster nuevo. en esta nube privada.
    • NODE_TYPE: Es el tipo de nodo. Para ver más consulta Tipos de nodos.
    • NODE_COUNT: Es el recuento de nodos. Especifica un valor de tres o más.
    • IP_ADDRESS: Es la dirección IP, por ejemplo. 192.168.0.0/24 para esta solicitud.
    • NETWORK_NAME: Es el nombre de la red para esto. en la nube.

    La solicitud muestra un ID de operación que puedes usar para verificar el progreso de la operación.

  5. Verifica el estado de la operación ejecutando el Comando gcloud vmware operations describe Cuando la operación se muestre como DONE, verifica la respuesta para ver si el valor se realizó correctamente la operación.

    gcloud vmware operations describe OPERATION_ID \
        --location REGION
    

    Reemplaza lo siguiente:

    • OPERATION_ID: Es el ID del paso anterior.
    • REGION: Es la región de la nube privada.
  6. Conecta la red de VMware Engine a tu VPC de la siguiente manera: Configurar el acceso privado a los servicios

  7. Recupera las credenciales de vCenter y NSX-T mediante la ejecución del gcloud vmware private-clouds vcenter credentials describe y gcloud vmware private-clouds nsx credentials describe, respectivamente.

    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

    Reemplaza lo siguiente:

    • PRIVATE_CLOUD_ID: Es el ID del servicio privado. nube
    • ZONE: Es la zona de la nube privada.

API

Para crear una nube privada ampliada con la API de VMware Engine, sigue estos pasos: estos pasos:

  1. Crea una red heredada mediante una solicitud 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"}"
    

    Reemplaza lo siguiente:

    • TOKEN: Es el token de autorización para esto. solicitud
    • PROJECT_ID: Es el proyecto para esta solicitud.
    • REGION: Es la región en la que se creará esta red.
    • NETWORK_NAME: Es el nombre de la red del nube privada

    La solicitud muestra un ID de operación que puedes usar para verificar el progreso de la operación.

  2. Para verificar el estado de la operación, realiza una solicitud GET. Cuándo la operación se muestra como DONE, verifica la respuesta para ver si que la operación se haya realizado correctamente:

    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
    

    Reemplaza OPERATION_ID por el ID del paso anterior.

  3. Crea una nube privada de tres nodos mediante una solicitud 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
       }
      }
     }
    }"
    

    Reemplaza lo siguiente:

    • TOKEN: Es el token de autorización para esto. para cada solicitud.
    • PROJECT_ID: Es el ID del proyecto de esta solicitud.
    • ZONE: Es la zona de la nube privada.
    • PRIVATE_CLOUD_ID: El ID de la nube privada
    • REGION: Es la región de la red para esto. nube privada
    • NETWORK_NAME: Es el nombre de la red del nube privada
    • CLUSTER_ID: Es el ID del clúster nuevo. en esta nube privada
    • NODE_COUNT: Es el recuento de nodos. Especifica un valor de tres o más.

    La solicitud muestra un ID de operación que puedes usar para verificar el progreso de la operación.

  4. Para verificar el estado de la operación, realiza una solicitud GET. Cuando la operación se muestra como DONE, verifica la respuesta para ver si la operación tuvo éxito:

    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
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto de esta solicitud.
    • REGION: Es la región de la nube privada.
    • OPERATION_ID: Es el ID del paso anterior.
  5. Conecta la red de VMware Engine a tu VPC de la siguiente manera: Configurar el acceso privado a los servicios

  6. Recupera las credenciales de vCenter y NSX-T mediante solicitudes GET:

    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"
    

    Reemplaza lo siguiente:

    • PROJECT_ID: Es el ID del proyecto de esta solicitud.
    • ZONE: Es la zona de la nube privada.
    • PRIVATE_CLOUD_ID: Es el ID del servicio privado. nube

Python

  1. Crear una red heredada

    from google.cloud import vmwareengine_v1
    
    TIMEOUT = 1200  # 20 minutes
    
    
    def create_legacy_network(
        project_id: str, region: str
    ) -> vmwareengine_v1.VmwareEngineNetwork:
        """
        Creates a new legacy network.
    
        Args:
            project_id: name of the project you want to use.
            region: name of the region you want to use. I.e. "us-central1"
    
        Returns:
            The newly created VmwareEngineNetwork object.
        """
        network = vmwareengine_v1.VmwareEngineNetwork()
        network.description = (
            "Legacy network created using vmwareengine_v1.VmwareEngineNetwork"
        )
        network.type_ = vmwareengine_v1.VmwareEngineNetwork.Type.LEGACY
    
        request = vmwareengine_v1.CreateVmwareEngineNetworkRequest()
        request.parent = f"projects/{project_id}/locations/{region}"
        request.vmware_engine_network_id = f"{region}-default"
        request.vmware_engine_network = network
    
        client = vmwareengine_v1.VmwareEngineClient()
        result = client.create_vmware_engine_network(request, timeout=TIMEOUT).result()
    
        return result
    
    
  2. Crear una nube privada de tres nodos

    from google.api_core import operation
    from google.cloud import vmwareengine_v1
    
    DEFAULT_MANAGEMENT_CIDR = "192.168.0.0/24"
    DEFAULT_NODE_COUNT = 3
    
    
    def create_private_cloud(
        project_id: str, zone: str, network_name: str, cloud_name: str, cluster_name: str
    ) -> operation.Operation:
        """
        Creates a new Private Cloud using VMWare Engine.
    
        Creating a new Private Cloud is a long-running operation and it may take over an hour.
    
        Args:
            project_id: name of the project you want to use.
            zone: the zone you want to use, i.e. "us-central1-a"
            network_name: name of the VMWareNetwork to use for the new Private Cloud
            cloud_name: name of the new Private Cloud
            cluster_name: name for the new cluster in this Private Cloud
    
        Returns:
            An operation object representing the started operation. You can call its .result() method to wait for it to finish.
        """
        request = vmwareengine_v1.CreatePrivateCloudRequest()
        request.parent = f"projects/{project_id}/locations/{zone}"
        request.private_cloud_id = cloud_name
    
        request.private_cloud = vmwareengine_v1.PrivateCloud()
        request.private_cloud.management_cluster = (
            vmwareengine_v1.PrivateCloud.ManagementCluster()
        )
        request.private_cloud.management_cluster.cluster_id = cluster_name
    
        node_config = vmwareengine_v1.NodeTypeConfig()
        node_config.node_count = DEFAULT_NODE_COUNT
    
        # Currently standard-72 is the only supported node type.
        request.private_cloud.management_cluster.node_type_configs = {
            "standard-72": node_config
        }
    
        request.private_cloud.network_config = vmwareengine_v1.NetworkConfig()
        request.private_cloud.network_config.vmware_engine_network = network_name
        request.private_cloud.network_config.management_cidr = DEFAULT_MANAGEMENT_CIDR
    
        client = vmwareengine_v1.VmwareEngineClient()
        return client.create_private_cloud(request)
    
    

    La función create_private_cloud muestra un objeto de operaciones que puedes usan para comprobar el progreso de la operación.

  3. Verifica el estado de la operación. Recuperar información actual sobre un una sola operación.

    from google.cloud import vmwareengine_v1
    from google.longrunning.operations_pb2 import GetOperationRequest
    
    
    def get_operation_by_name(operation_name: str) -> Operation:
        """
        Retrieve detailed information about an operation.
    
        Args:
            operation_name: name identifying an operation you want to check.
                Expected format: projects/{project_id}/locations/{region}/operations/{operation_id}
    
        Returns:
            Operation object with details.
        """
        client = vmwareengine_v1.VmwareEngineClient()
        request = GetOperationRequest()
        request.name = operation_name
        return client.get_operation(request)
    
    
    def get_operation(project_id: str, region: str, operation_id: str) -> Operation:
        """
        Retrieve detailed information about an operation.
    
        Args:
            project_id: name of the project running the operation.
            region: name of the region in which the operation is running.
            operation_id: identifier of the operation.
    
        Returns:
            Operation object with details.
        """
        return get_operation_by_name(
            f"projects/{project_id}/locations/{region}/operations/{operation_id}"
        )
    
    

    Puedes usar el método de miembro .result() del objeto de operación para esperar. que se complete.

  4. Conecta la red de VMware Engine a tu VPC de la siguiente manera: Configurar el acceso privado a los servicios

  5. Recupera las credenciales de vCenter y NSX-T.

    from google.cloud import vmwareengine_v1
    
    
    def get_vcenter_credentials(
        project_id: str, zone: str, private_cloud_name: str
    ) -> vmwareengine_v1.Credentials:
        """
        Retrieves VCenter credentials for a Private Cloud.
    
        Args:
            project_id: name of the project hosting the private cloud.
            zone: name of the zone hosting the private cloud.
            private_cloud_name: name of the private cloud.
    
        Returns:
            A Credentials object.
        """
        client = vmwareengine_v1.VmwareEngineClient()
        credentials = client.show_vcenter_credentials(
            private_cloud=f"projects/{project_id}/locations/{zone}/privateClouds/{private_cloud_name}"
        )
        return credentials
    
    
    from google.cloud import vmwareengine_v1
    
    
    def get_nsx_credentials(
        project_id: str, zone: str, private_cloud_name: str
    ) -> vmwareengine_v1.Credentials:
        """
        Retrieves NSX credentials for a Private Cloud.
    
        Args:
            project_id: name of the project hosting the private cloud.
            zone: name of the zone hosting the private cloud.
            private_cloud_name: name of the private cloud.
    
        Returns:
            A Credentials object.
        """
        client = vmwareengine_v1.VmwareEngineClient()
        credentials = client.show_nsx_credentials(
            private_cloud=f"projects/{project_id}/locations/{zone}/privateClouds/{private_cloud_name}"
        )
        return credentials
    
    

A medida que VMware Engine crea tu nueva nube privada, implementa una cantidad de componentes de VMware y divide la un rango de direcciones IP proporcionado en subredes. La creación de una nube privada puede tardar 30 minutos a 2 horas. Cuando se complete el aprovisionamiento, recibirás un correo electrónico.

¿Qué sigue?