Créer un cloud privé VMware Engine

Un cloud privé est une pile VMware isolée constituée d'hôtes ESXi, d'un serveur vCenter et des composants vSAN, NSX-T et HCX. Vous gérez les clouds privés console Google Cloud. Lorsque vous créez un cloud privé, vous obtenez un seul cluster vSphere et toutes les VM de gestion créées dans ce cluster.

VMware Engine déploie les composants de gestion sur le réseau que vous sélectionnez pour les sous-réseaux vSphere/vSAN. La plage d'adresses IP du réseau est divisée en différents sous-réseaux pendant le déploiement.

Avant de commencer

Avant d'effectuer les tâches décrites sur cette page, effectuez les opérations préalables suivantes étapes.

L'espace d'adressage de sous-réseau vSphere/vSAN ne doit chevaucher aucun réseau qui communique avec le cloud privé, tel que des réseaux sur site et les réseaux de cloud privés virtuels (VPC) Google Cloud. Pour en savoir plus sur les sous-réseaux vSphere ou vSAN, consultez la page VLAN et sous-réseaux sur VMware Engine.

Conditions requises pour la Google Cloud CLI et les API

Pour gérer votre instance VMware Engine à l'aide de l'outil de ligne de commande gcloud ou de l'API ressources, nous vous recommandons de configurer les outils comme décrit ci-dessous.

gcloud

  1. Définissez votre ID de projet par défaut :

    gcloud config set project PROJECT_ID
    
  2. Définissez une région et une zone par défaut :

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

Pour en savoir plus sur l'outil gcloud vmware, consultez la documentation de référence de Cloud SDK Cloud.

API

Les exemples d'API de cette documentation utilisent l'outil de ligne de commande cURL pour : interroger l'API. Un jeton d'accès valide est requis dans cURL requête. Il existe de nombreuses façons d'obtenir un jeton d'accès valide : les éléments suivants les étapes suivantes utilisent l'outil gcloud pour générer un jeton d'accès:

  1. Connectez-vous à Google Cloud:

    gcloud auth login
    
  2. Générez un jeton d'accès et exportez-le vers TOKEN:

    export TOKEN=`gcloud auth print-access-token`
    
  3. Vérifiez que TOKEN est correctement défini:

    echo $TOKEN
    

À présent, utilisez le jeton d'autorisation dans vos requêtes à l'API. Exemple :

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

Les exemples de code Python présentés dans cette documentation utilisent la bibliothèque VMware Engine pour communiquer avec l'API. Pour pouvoir utiliser cette approche, vous devez installer la bibliothèque et configurer les identifiants par défaut de l'application.

  1. Téléchargez et installez la bibliothèque Python:

    pip install google-cloud-vmwareengine
    
  2. Configurez les informations ADC en exécutant ces commandes dans votre shell:

    gcloud auth application-default login
    

    Vous pouvez également utiliser un fichier de clé de compte de service:

    export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

Pour en savoir plus sur la bibliothèque, consultez la page de référence ou consultez des exemples de code sur GitHub.

Créer un cloud privé

Console

Pour créer un cloud privé à l'aide de la console Google Cloud, procédez comme suit:

  1. Accédez à la console Google Cloud.
  2. Dans le menu de navigation principal, cliquez sur Clouds privés.
  3. Cliquez sur Créer.
  4. Sélectionnez l'emplacement dans lequel vous souhaitez déployer le cloud privé.
  5. Sélectionnez le type de nœud de votre cluster principal.
  6. Sélectionnez le nombre de nœuds du cloud privé. Pour les charges de travail de production, créez votre cloud privé avec au moins trois nœuds. VMware Engine supprime les clouds privés qui ne contiennent qu'un seul nœud après 60 jours.
  7. Facultatif : Cliquez sur le bouton d'activation Personnaliser les cœurs si vous souhaitez réduire le nombre de cœurs disponibles pour chaque nœud du cluster de gestion. Pour en savoir plus, consultez la section Nombre de cœurs personnalisé.
  8. Saisissez une plage CIDR pour le réseau de gestion VMware. Pour en savoir plus sur les restrictions de cette plage, consultez la section Avant de commencer.
  9. Saisissez une plage CIDR pour le réseau de déploiement HCX, qui sera utilisée pour déployer les composants HCX. Assurez-vous que la plage CIDR ne chevauche aucun de vos sous-réseaux sur site ou dans le cloud. La plage CIDR doit être /27 ou supérieure.
  10. Cliquez sur Review and Create (Vérifier et créer).
  11. Vérifiez les paramètres. Pour modifier les paramètres, cliquez sur Retour.
  12. Cliquez sur Créer pour commencer à provisionner le cloud privé.

La liste suivante décrit plus en détail chaque champ à renseigner lors de la création du cloud privé :

  • Name (Nom) : identifiant unique et permanent du cloud privé.
  • Description:informations supplémentaires visibles sur la page d'informations du cloud privé.
  • Region (Région) : région géographique dans laquelle VMware Engine héberge votre cloud privé.
  • Zone:sous-ensemble d'une région physiquement isolé des autres zones de la région dans la même région. Une zone est un domaine de défaillance unique au sein d'une région.
  • Nom du cluster principal:nom donné au cluster vSphere initial de votre cloud privé virtuel. Les dispositifs de gestion VMware de votre cloud privé s'exécutent sur cluster.
  • Type de nœud: configuration matérielle des nœuds de votre cluster principal.
  • Nodes (Nœuds) : nombre de nœuds dans le cluster principal.

  • Management IP address range (Plage d'adresses IP de gestion) : plage d'adresses IP utilisée pour vCenter Server, NSX Manager, les hôtes ESXi et d'autres parties de l'infrastructure du cloud privé. Cette plage n'est pas utilisée pour les VM de charge de travail et ne doit chevaucher aucune partie de votre réseau VPC, ni de tout autre réseau auquel vous prévoyez de connecter votre cloud privé.
  • Réseau VMware Engine: ressource réseau qui gère les connexions cloud privées conformément à une règle de réseau. Vous et les ressources connectées à ce réseau VMware Engine pouvez accéder au cloud privé depuis Google Cloud.

gcloud

Pour créer un cloud privé étendu à l'aide de la Google Cloud CLI, suivez ces étapes:

  1. Facultatif: Listez les régions et zones disponibles pour votre projet par en exécutant la commande gcloud vmware locations list.

    gcloud vmware locations list \
        --project=PROJECT_ID
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet pour cette requête
  2. Créez un réseau pour votre cloud privé en exécutant la commande Commande gcloud vmware networks create

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

    Remplacez les éléments suivants :

    • NETWORK_NAME: nom du réseau cloud privé
    • REGION: région du cloud privé
    • DESCRIPTION: description de l'élément privé cloud

    La requête renvoie un ID d'opération.

  3. Vérifiez l'état de l'opération en exécutant la commande Commande gcloud vmware operations describe Lorsque l'opération renvoie le résultat DONE, vérifiez la réponse pour voir si la L'opération a réussi:

    gcloud vmware operations describe OPERATION_ID \
        --location REGION

    Remplacez les éléments suivants :

    • OPERATION_ID: ID de l'étape précédente
    • REGION: région du cloud privé
  4. Créez un cloud privé à trois nœuds en exécutant Commande 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
    

    Remplacez les éléments suivants :

    • PRIVATE_CLOUD_ID: nom de la classe privée dans le cloud.
    • ZONE: zone du cloud privé.
    • CLUSTER_ID: nom du nouveau cluster. dans ce cloud privé.
    • NODE_TYPE: type de nœud. Pour plus plus d'informations, consultez la section Types de nœuds.
    • NODE_COUNT: nombre de nœuds. Spécifier une valeur de trois ou plus.
    • IP_ADDRESS: adresse IP, par exemple 192.168.0.0/24 pour cette demande.
    • NETWORK_NAME: nom du réseau concerné. dans le cloud.

    La requête renvoie un ID d'opération que vous pouvez utiliser pour vérifier la progression de l'opération.

  5. Vérifiez l'état de l'opération en exécutant la commande Commande gcloud vmware operations describe Lorsque l'opération renvoie le résultat DONE, vérifiez la réponse pour voir si la a abouti.

    gcloud vmware operations describe OPERATION_ID \
        --location REGION
    

    Remplacez les éléments suivants :

    • OPERATION_ID: ID de l'étape précédente
    • REGION: région du cloud privé
  6. Pour connecter le réseau VMware Engine à votre VPC, procédez comme suit : configurer l'accès aux services privés.

  7. Récupérez les identifiants vCenter et NSX-T en exécutant la gcloud vmware private-clouds vcenter credentials describe et gcloud vmware private-clouds nsx credentials describe, respectivement.

    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

    Remplacez les éléments suivants :

    • PRIVATE_CLOUD_ID: ID de la classe privée cloud
    • ZONE: zone du cloud privé

API

Pour créer un cloud privé étendu à l'aide de l'API VMware Engine, procédez comme suit : procédez comme suit:

  1. Créez un ancien réseau en envoyant une requête 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"}"
    

    Remplacez les éléments suivants :

    • TOKEN: jeton d'autorisation pour ce demander
    • PROJECT_ID: projet concerné par cette requête
    • REGION: région dans laquelle créer ce réseau
    • NETWORK_NAME: nom du réseau cloud privé

    La requête renvoie un ID d'opération que vous pouvez utiliser pour vérifier la progression de l'opération.

  2. Vérifiez l'état de l'opération en envoyant une requête GET. Quand ? l'opération renvoie DONE, vérifiez la réponse pour voir si l'opération a réussi:

    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
    

    Remplacez OPERATION_ID par l'ID de l'étape précédente.

  3. Créez un cloud privé à trois nœuds en envoyant une requête 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
       }
      }
     }
    }"
    

    Remplacez les éléments suivants :

    • TOKEN: jeton d'autorisation pour ce requête.
    • PROJECT_ID : ID du projet pour cette requête
    • ZONE: zone du cloud privé
    • PRIVATE_CLOUD_ID: ID du cloud privé
    • REGION: région du réseau pour ce cloud privé
    • NETWORK_NAME: nom du réseau cloud privé
    • CLUSTER_ID: ID du nouveau cluster. dans ce cloud privé
    • NODE_COUNT: nombre de nœuds. Spécifier une valeur de trois ou plus.

    La requête renvoie un ID d'opération que vous pouvez utiliser pour vérifier la progression de l'opération.

  4. Vérifiez l'état de l'opération en envoyant une requête GET. Lorsque renvoie DONE, vérifiez la réponse pour voir si l'opération a réussi:

    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
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet pour cette requête
    • REGION: région du cloud privé
    • OPERATION_ID: ID de l'étape précédente
  5. Pour connecter le réseau VMware Engine à votre VPC, procédez comme suit : configurer l'accès aux services privés.

  6. Récupérez les identifiants vCenter et NSX-T en effectuant des requêtes 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"
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet pour cette requête
    • ZONE: zone du cloud privé
    • PRIVATE_CLOUD_ID: ID de la classe privée cloud

Python

  1. Créer un ancien réseau

    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. Créer un cloud privé à trois nœuds

    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 fonction create_private_cloud renvoie un objet d'opérations que vous pouvez pour vérifier la progression de l'opération.

  3. Vérifiez l'état de l'opération. Récupérer des informations actuelles sur une opération.

    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}"
        )
    
    

    Vous pouvez utiliser la méthode membre .result() de l'objet d'opération pour attendre jusqu'à ce qu'il soit terminé.

  4. Pour connecter le réseau VMware Engine à votre VPC, procédez comme suit : configurer l'accès aux services privés.

  5. Récupérez les identifiants vCenter et 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
    
    

Lorsque VMware Engine crée votre cloud privé, il déploie le nombre de composants VMware et divise le la plage d'adresses IP fournie en sous-réseaux. La création d'un cloud privé peut prendre entre 2 minutes et 2 heures. Une fois le provisionnement terminé, vous recevez un e-mail.

Étape suivante