Private VMware Engine-Cloud erstellen

Eine private Cloud ist ein isolierter VMware-Stack, der aus ESXi-Hosts, vCenter, vSAN, NSX-T und HCX besteht. Private Clouds werden über die Google Cloud Console verwaltet. Wenn Sie eine private Cloud erstellen, erhalten Sie einen einzelnen vSphere-Cluster und alle Verwaltungs-VMs, die in diesem Cluster erstellt werden.

VMware Engine stellt Verwaltungskomponenten im Netzwerk bereit, die Sie für vSphere/vSAN-Subnetze auswählen. Der Netzwerk-IP-Adressbereich wird während der Bereitstellung in verschiedene Subnetze unterteilt.

Hinweise

Bevor Sie die Aufgaben auf dieser Seite ausführen, müssen Sie die folgenden Schritte ausführen.

Der Adressbereich des vSphere-/vSAN-Subnetzes darf sich nicht mit einem Netzwerk überschneiden, das mit der privaten Cloud kommuniziert, z. B. mit lokalen Netzwerken und Google Cloud-VPC-Netzwerken (Virtual Private Cloud). Weitere Informationen zu vSphere- oder vSAN-Subnetzen finden Sie unter VLANs und Subnetze in VMware Engine.

Anforderungen an die Google Cloud CLI und API

Wenn Sie das gcloud-Befehlszeilentool oder die API zum Verwalten Ihrer VMware Engine-Ressourcen verwenden möchten, empfehlen wir, die Tools wie unten beschrieben zu konfigurieren.

gcloud

  1. Legen Sie Ihre Standardprojekt-ID fest:

    gcloud config set project PROJECT_ID
    
  2. Legen Sie eine Standardregion und -zone fest:

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

Weitere Informationen zum gcloud vmware-Tool finden Sie in der Cloud SDK-Referenzdokumentation.

API

API-Beispiele in dieser Dokumentation verwenden das cURL-Befehlszeilentool, um die API abzufragen. Ein gültiges Zugriffstoken ist im Rahmen der cURL-Anfrage erforderlich. Es gibt viele Möglichkeiten, ein gültiges Zugriffstoken abzurufen. In den folgenden Schritten wird das gcloud-Tool verwendet, um ein Zugriffstoken zu generieren:

  1. Melden Sie sich in Google Cloud an:

    gcloud auth login
    
  2. Generieren Sie ein Zugriffstoken und exportieren Sie es in TOKEN:

    export TOKEN=`gcloud auth print-access-token`
    
  3. Überprüfen Sie, ob TOKEN ordnungsgemäß festgelegt ist:

    echo $TOKEN
    

Verwenden Sie nun das Autorisierungstoken in Ihren Anfragen an die API. Beispiel:

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

In den Python-Codebeispielen in dieser Dokumentation wird die VMware Engine-Bibliothek für die Kommunikation mit der API verwendet. Um diesen Ansatz verwenden zu können, muss die Bibliothek installiert und die Standardanmeldedaten für Anwendungen konfiguriert werden.

  1. Laden Sie die Python-Bibliothek herunter und installieren Sie sie:

    pip install google-cloud-vmwareengine
    
  2. Konfigurieren Sie die ADC-Informationen, indem Sie diese Befehle in Ihrer Shell ausführen:

    gcloud auth application-default login
    

    Alternativ können Sie eine Dienstkonto-Schlüsseldatei verwenden:

    export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

Weitere Informationen zur Bibliothek finden Sie auf der Referenzseite oder in den Codebeispielen auf GitHub.

Private Cloud erstellen

Console

So erstellen Sie eine private Cloud mit der Google Cloud Console:

  1. Rufen Sie die Google Cloud Console auf.
  2. Klicken Sie in der Hauptnavigation auf Private Clouds.
  3. Klicken Sie auf Erstellen.
  4. Wählen Sie den Standort aus, an dem die private Cloud bereitgestellt werden soll.
  5. Wählen Sie den Knotentyp für den primären Cluster aus.
  6. Wählen Sie die Anzahl der Knoten für die private Cloud aus. Erstellen Sie für Produktionsarbeitslasten Ihre private Cloud mit mindestens drei Knoten. VMware Engine löscht private Clouds, die nach 60 Tagen nur einen Knoten enthalten.
  7. Optional: Klicken Sie auf die Ein/Aus-Schaltfläche Kerne anpassen, wenn Sie die Anzahl der verfügbaren Kerne für jeden Knoten im Verwaltungscluster reduzieren möchten. Weitere Informationen finden Sie unter Benutzerdefinierte Kernzählungen.
  8. Geben Sie einen CIDR-Bereich für das VMware-Verwaltungsnetzwerk ein. Informationen zu Einschränkungen für diesen Bereich finden Sie im Abschnitt Vorbereitung.
  9. Geben Sie einen CIDR-Bereich für das HCX-Bereitstellungsnetzwerk ein, das für die Bereitstellung von HCX-Komponenten verwendet wird. Der CIDR-Bereich darf sich nicht mit Ihren lokalen oder Cloud-Subnetzen überschneiden. Der CIDR-Bereich muss /27 oder höher sein.
  10. Klicken Sie auf Prüfen und erstellen.
  11. Prüfen Sie die Einstellungen. Wenn Sie die Einstellungen ändern möchten, klicken Sie auf Zurück.
  12. Klicken Sie auf Erstellen, um mit der Bereitstellung der privaten Cloud zu beginnen.

In der folgenden Liste sind die einzelnen Felder, die Sie bei der Erstellung der privaten Cloud festlegen müssen, genauer beschrieben:

  • Name: Permanente, eindeutige Kennung der privaten Cloud.
  • Beschreibung: Zusätzliche Informationen, die auf der Detailseite der privaten Cloud sichtbar sind.
  • Region: Geografische Region, in der VMware Engine Ihre private Cloud hostet.
  • Zone:Teilmenge einer Region, die physisch von anderen Zonen in derselben Region isoliert ist. Eine Zone ist eine einzelne fehlerhafte Domain innerhalb einer Region.
  • Name des primären Clusters: Name, der dem ersten vSphere-Cluster in Ihrer privaten Cloud gegeben wurde. VMware-Management-Appliances Ihrer privaten Cloud werden in diesem Cluster ausgeführt.
  • Knotentyp:Hardwarekonfiguration der Knoten im primären Cluster
  • Knoten: Anzahl der Knoten im primären Cluster.

  • IP-Adressbereich für die Verwaltung: IP-Adressbereich für vCenter Server, NSX Manager, ESXi-Hosts und andere Teile der Infrastruktur der privaten Cloud. Dieser Bereich wird nicht für Arbeitslast-VMs verwendet und darf sich mit keinem Bereich Ihres VPC-Netzwerks oder anderer Netzwerken überschneiden, mit dem Sie die private Cloud verbinden möchten.
  • VMware Engine-Netzwerk: Eine Netzwerkressource, die private Cloud-Verbindungen gemäß einer Netzwerkrichtlinie verarbeitet. Sie und die mit diesem VMware Engine-Netzwerk verbundenen Ressourcen können von Google Cloud aus auf die private Cloud zugreifen.

gcloud

So erstellen Sie mit der Google Cloud CLI eine erweiterte private Cloud:

  1. Optional: Mit dem Befehl gcloud vmware locations list können Sie die verfügbaren Regionen und Zonen für Ihr Projekt auflisten.

    gcloud vmware locations list \
        --project=PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die Projekt-ID für diese Anfrage.
  2. Erstellen Sie mit dem Befehl gcloud vmware networks create ein Netzwerk für Ihre private Cloud.

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

    Ersetzen Sie Folgendes:

    • NETWORK_NAME: der Netzwerkname für die private Cloud
    • REGION: Region für die private Cloud
    • DESCRIPTION: eine Beschreibung für die private Cloud

    Die Anfrage gibt eine Vorgangs-ID zurück.

  3. Prüfen Sie den Status des Vorgangs mit dem Befehl gcloud vmware operations describe. Wenn der Vorgang als DONE zurückgegeben wird, prüfen Sie die Antwort, um festzustellen, ob der Vorgang erfolgreich war:

    gcloud vmware operations describe OPERATION_ID \
        --location REGION

    Ersetzen Sie Folgendes:

    • OPERATION_ID: ID aus dem vorherigen Schritt
    • REGION: Region für die private Cloud
  4. Erstellen Sie mit dem Befehl gcloud vmware private-clouds create eine private Cloud mit drei Knoten.

    gcloud vmware private-clouds create PRIVATE_CLOUD_ID \
      --location=ZONE \
      --cluster=CLUSTER_ID \
      --node-type-config=type=standard-72,count=NODE_COUNT \
      --management-range=`IP_ADDRESS` \
      --vmware-engine-network=NETWORK_NAME
    

    Ersetzen Sie Folgendes:

    • PRIVATE_CLOUD_ID: der Name der privaten Cloud
    • ZONE: die Zone für die private Cloud
    • CLUSTER_ID: der Name des neuen Clusters in dieser privaten Cloud
    • NODE_COUNT: die Knotenanzahl. Geben Sie einen Wert von drei oder mehr an.
    • IP_ADDRESS: die IP-Adresse für diese Anfrage, z. B. 192.168.0.0/24
    • NETWORK_NAME: der Netzwerkname für diese Cloud

    Die Anfrage gibt eine Vorgangs-ID zurück, mit der Sie den Fortschritt des Vorgangs überprüfen können.

  5. Prüfen Sie den Status des Vorgangs mit dem Befehl gcloud vmware operations describe. Wenn der Vorgang als DONE zurückgegeben wird, prüfen Sie die Antwort, um festzustellen, ob der Vorgang erfolgreich war.

    gcloud vmware operations describe OPERATION_ID \
        --location REGION
    

    Ersetzen Sie Folgendes:

    • OPERATION_ID: ID aus dem vorherigen Schritt
    • REGION: Region für die private Cloud
  6. Verbinden Sie das VMware Engine-Netzwerk mit Ihrer VPC, indem Sie den Zugriff auf private Dienste einrichten.

  7. Rufen Sie die vCenter- und NSX-T-Anmeldedaten mit den Befehlen gcloud vmware private-clouds vcenter credentials describe bzw. gcloud vmware private-clouds nsx credentials describe ab.

    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

    Ersetzen Sie Folgendes:

    • PRIVATE_CLOUD_ID: die ID für die private Cloud
    • ZONE: die Zone für die private Cloud

API

So erstellen Sie eine erweiterte private Cloud mit der VMware Engine API:

  1. Mit einer POST-Anfrage können Sie ein altes Netzwerk erstellen.

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

    Ersetzen Sie Folgendes:

    • TOKEN: das Autorisierungstoken für diese Anfrage
    • PROJECT_ID: das Projekt für diese Anfrage
    • REGION: Region, in der dieses Netzwerk erstellt werden soll
    • NETWORK_NAME: der Netzwerkname für die private Cloud

    Die Anfrage gibt eine Vorgangs-ID zurück, mit der Sie den Fortschritt des Vorgangs überprüfen können.

  2. Prüfen Sie den Status des Vorgangs mit einer GET-Anfrage. Wenn der Vorgang als DONE zurückgegeben wird, prüfen Sie die Antwort, um festzustellen, ob der Vorgang erfolgreich war:

    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
    

    Ersetzen Sie OPERATION_ID durch die ID aus dem vorherigen Schritt.

  3. Erstellen Sie eine private Cloud mit drei Knoten. Stellen Sie dazu eine POST-Anfrage:

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

    Ersetzen Sie Folgendes:

    • TOKEN: das Autorisierungstoken für diese Anfrage.
    • PROJECT_ID ist die Projekt-ID für diese Anfrage.
    • ZONE: die Zone für die private Cloud
    • PRIVATE_CLOUD_ID: die ID für die private Cloud
    • REGION: Region des Netzwerks für diese private Cloud
    • NETWORK_NAME: der Netzwerkname für die private Cloud
    • CLUSTER_ID: die ID für den neuen Cluster in dieser privaten Cloud
    • NODE_COUNT: die Knotenanzahl. Geben Sie einen Wert von drei oder mehr an.

    Die Anfrage gibt eine Vorgangs-ID zurück, mit der Sie den Fortschritt des Vorgangs überprüfen können.

  4. Prüfen Sie den Status des Vorgangs mit einer GET-Anfrage. Wenn der Vorgang als DONE zurückgegeben wird, prüfen Sie in der Antwort, ob der Vorgang erfolgreich war:

    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
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die Projekt-ID für diese Anfrage.
    • REGION: Region für die private Cloud
    • OPERATION_ID: ID aus dem vorherigen Schritt
  5. Verbinden Sie das VMware Engine-Netzwerk mit Ihrer VPC, indem Sie den Zugriff auf private Dienste einrichten.

  6. Rufen Sie die vCenter- und NSX-T-Anmeldedaten mit GET-Anfragen ab:

    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"
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die Projekt-ID für diese Anfrage.
    • ZONE: die Zone für die private Cloud
    • PRIVATE_CLOUD_ID: die ID für die private Cloud

Python

  1. Erstellen Sie ein altes Netzwerk.

    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. Erstellen Sie eine private Cloud mit drei Knoten.

    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)
    
    

    Die Funktion create_private_cloud gibt ein Vorgangsobjekt zurück, mit dem Sie den Fortschritt des Vorgangs prüfen können.

  3. Prüfen Sie den Status des Vorgangs. Aktuelle Informationen zu einem Vorgang abrufen

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

    Sie können die .result()-Mitgliedschaftsmethode des Vorgangsobjekts verwenden, um auf den Abschluss des Vorgangs zu warten.

  4. Verbinden Sie das VMware Engine-Netzwerk mit Ihrer VPC, indem Sie den Zugriff auf private Dienste einrichten.

  5. Rufen Sie die vCenter- und NSX-T-Anmeldedaten ab.

    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
    
    

Während die VMware Engine Ihre neue private Cloud erstellt, werden eine Reihe von VMware-Komponenten bereitgestellt und der IP-Adressbereich in Subnetze unterteilt. Das Erstellen einer privaten Cloud kann zwischen 30 Minuten und 2 Stunden dauern. Nachdem die Bereitstellung abgeschlossen ist, erhalten Sie eine E-Mail.

Nächste Schritte