Private Cloud VMware Engine 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.

Hinweis

Führen Sie die folgenden Schritte aus, bevor Sie die Aufgaben auf dieser Seite 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

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

gcloud

  1. Legen Sie Ihre standardmäßige Projekt-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 abfragen. Als Teil des cURL ist ein gültiges Zugriffstoken erforderlich Es gibt viele Möglichkeiten, ein gültiges Zugriffstoken zu erhalten. In den folgenden Schritten wird das Tool gcloud verwendet, um ein Zugriffstoken zu generieren:

  1. Melden Sie sich in Google Cloud an:

    gcloud auth login
    
  2. Zugriffstoken generieren und in TOKEN exportieren:

    export TOKEN=`gcloud auth print-access-token`
    
  3. Prüfen Sie, ob TOKEN richtig festgelegt ist:

    echo $TOKEN
    

Verwenden Sie das Autorisierungstoken jetzt 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

Bei Python-Codebeispielen in dieser Dokumentation wird die VMware Engine-Bibliothek verwendet, um mit der API zu kommunizieren. Damit dieser Ansatz verwendet werden kann, muss die Bibliothek installiert und die Standardanmeldedaten für Anwendungen konfiguriert sein.

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

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

    gcloud auth application-default login
    

    Sie können auch eine Dienstkontoschlüsseldatei verwenden:

    export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

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

Standard-Private Cloud erstellen

Console

So erstellen Sie eine Standard-Private Cloud mit der Google Cloud Console:

  1. Rufen Sie in der Google Cloud Console die Seite Private Clouds auf.

    Zu Private Clouds

  2. Klicken Sie auf Erstellen.

  3. Geben Sie einen Namen für die private Cloud ein.

  4. Wählen Sie als Typ der privaten Cloud Standard private Cloud aus.

  5. Wählen Sie den Standort aus, an dem die private Cloud bereitgestellt werden soll.

  6. Geben Sie einen Namen für den primären Cluster ein.

  7. Wählen Sie den Knotentyp für Ihren primären Cluster aus.

  8. 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.

  9. Optional: Klicken Sie auf die Ein/Aus-Schaltfläche Kerne anpassen, wenn Sie die Anzahl der Anzahl der verfügbaren Kerne für jeden Knoten im Verwaltungscluster. Für Weitere Informationen finden Sie unter Benutzerdefinierte Anzahl von Kernen.

  10. Geben Sie einen CIDR-Bereich für das VMware-Verwaltungsnetzwerk ein. Informationen zu Einschränkungen für diesen Bereich finden Sie im Abschnitt Vorbereitung.

  11. Klicken Sie auf Prüfen und erstellen.

  12. Prüfen Sie die Einstellungen. Wenn Sie die Einstellungen ändern möchten, klicken Sie auf Zurück.

  13. 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: Zusatzinformationen, 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 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:Netzwerkressource, die private Daten verarbeitet Cloud-Verbindungen gemäß einer Netzwerkrichtlinie. 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 eine erweiterte private Cloud mit der Google Cloud CLI: Schritte:

  1. Optional: Listen Sie die verfügbaren Regionen und Zonen für Ihr Projekt nach Führen Sie den Befehl gcloud vmware locations list aus:

    gcloud vmware locations list \
        --project=PROJECT_ID
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die Projekt-ID für diese Anfrage.
  2. Erstellen Sie ein Netzwerk für Ihre Private Cloud, indem Sie den Befehl gcloud vmware networks create ausführen:

    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 der privaten 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 in der Antwort, ob er erfolgreich war:

    gcloud vmware operations describe OPERATION_ID \
        --location REGION

    Ersetzen Sie Folgendes:

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

    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
    

    Ersetzen Sie Folgendes:

    • PRIVATE_CLOUD_ID: der Name des privaten Elements Cloud.
    • ZONE: Die Zone für die private Cloud.
    • CLUSTER_ID: Der Name des neuen Clusters in dieser privaten Cloud.
    • NODE_TYPE: der Knotentyp. Weitere Informationen finden Sie unter Knotentypen.
    • NODE_COUNT: die Knotenanzahl. Wert angeben von drei oder mehr.
    • IP_ADDRESS: die IP-Adresse, z. B. 192.168.0.0/24, für diese Anfrage.
    • NETWORK_NAME: der Netzwerkname dafür Cloud.

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

  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 in der Antwort, ob der Vorgang erfolgreich war.

    gcloud vmware operations describe OPERATION_ID \
        --location REGION
    

    Ersetzen Sie Folgendes:

    • OPERATION_ID: die ID aus dem vorherigen Schritt
    • REGION: die 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 und 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 des privaten Elements Cloud
    • ZONE: die Zone für die private Cloud

API

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

  1. Erstellen Sie ein Legacy-Netzwerk, indem Sie eine POST-Anfrage senden.

    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: die Region, in der das Netzwerk erstellt werden soll
    • NETWORK_NAME: der Netzwerkname des private Cloud

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

  2. Prüfen Sie den Status des Vorgangs mit einer GET-Anfrage. Wann? der Vorgang als DONE zurückgegeben wird, prüfen Sie die Antwort, um zu sehen, Der Vorgang war erfolgreich:

    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. So erstellen Sie eine Private Cloud mit drei Knoten:

    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 dieses
    • 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: die Region des Netzwerks für diese private Cloud
    • NETWORK_NAME: der Netzwerkname des private Cloud
    • CLUSTER_ID: die ID für den neuen Cluster in dieser privaten Cloud
    • NODE_COUNT: die Knotenanzahl. Wert angeben von drei oder mehr.

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

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

    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: die Region für die private Cloud
    • OPERATION_ID: die ID aus dem vorherigen Schritt
  5. Verbinden Sie das VMware Engine-Netzwerk mit Ihrer VPC durch 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 der privaten Cloud

Python

  1. Erstellen Sie ein Legacy-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. Private Cloud mit drei Knoten erstellen

    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 Member-Methode .result() des Vorgangsobjekts verwenden, um auf um sie abzuschließen.

  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
    
    

Wenn VMware Engine die neue private Cloud erstellt, wird eine Reihe von VMware-Komponenten bereitgestellt und der bereitgestellte IP-Adressbereich in Subnetze unterteilt. Die Erstellung der privaten Cloud kann von 30 Minuten bis 2 Stunden dauern. Sobald die Bereitstellung abgeschlossen ist, erhalten Sie eine E-Mail.

Nächste Schritte