Membuat cloud pribadi VMware Engine

Cloud pribadi adalah stack VMware terisolasi yang terdiri dari host ESXi, vCenter, vSAN, NSX-T, dan HCX. Anda mengelola cloud pribadi melalui portal Google Cloud VMware Engine. Saat membuat cloud pribadi, Anda akan mendapatkan satu cluster vSphere dan semua VM pengelolaan yang dibuat di cluster tersebut.

VMware Engine men-deploy komponen pengelolaan di jaringan yang Anda pilih untuk subnet vSphere/vSAN. Rentang alamat IP jaringan dibagi menjadi subnet yang berbeda selama deployment.

Sebelum memulai

Sebelum melakukan tugas di halaman ini, lakukan langkah-langkah prasyarat berikut.

Ruang alamat subnet vSphere/vSAN tidak boleh tumpang tindih dengan jaringan apa pun yang akan berkomunikasi dengan cloud pribadi, seperti jaringan lokal dan jaringan Virtual Private Cloud (VPC) Google Cloud. Untuk mengetahui informasi selengkapnya tentang subnet vSphere atau vSAN, lihat VLAN dan subnet di VMware Engine.

Persyaratan gcloud dan API

Untuk menggunakan alat command line gcloud atau API guna mengelola resource VMware Engine, sebaiknya konfigurasikan alat seperti yang dijelaskan di bawah.

gcloud

  1. Setel ID project default Anda:

    gcloud config set project PROJECT_ID
    
  2. Menetapkan region dan/atau zona default:

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

Untuk mengetahui informasi selengkapnya tentang alat gcloud vmware, meninjau dokumen referensi Cloud SDK.

API

Contoh API dalam kumpulan dokumentasi ini menggunakan alat command line cURL untuk membuat kueri API. Token akses yang valid diperlukan sebagai bagian dari permintaan cURL. Ada banyak cara untuk mendapatkan token akses yang valid. Langkah berikut akan menggunakan alat gcloud untuk membuat token akses:

  1. Login ke Google Cloud

    gcloud auth login
    
  2. Buat token akses dan ekspor ke TOKEN

    export TOKEN=`gcloud auth print-access-token`
    
  3. Memverifikasi bahwa TOKEN telah disetel dengan benar

    echo $TOKEN
    
    Output:
    TOKEN
    

Sekarang, gunakan token otorisasi dalam permintaan Anda ke API. Contoh:

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

Contoh kode Python dalam dokumentasi ini menggunakan library VMware Engine untuk berkomunikasi dengan API. Agar dapat menggunakan pendekatan ini, library perlu diinstal dan Kredensial Default Aplikasi harus dikonfigurasi.

  1. Mendownload dan menginstal library Python

     pip install google-cloud-vmwareengine
    
  2. Konfigurasikan informasi ADC dengan menjalankan perintah tersebut di shell Anda

      gcloud auth application-default login
    

    atau gunakan file kunci Akun Layanan

      export GOOGLE_APPLICATION_CREDENTIALS="FILE_PATH"
    

Untuk mengetahui informasi selengkapnya tentang library ini, kunjungi halaman referensi atau lihat contoh kode di GitHub.

Membuat cloud pribadi

Konsol

  1. Akses portal Google Cloud VMware Engine.
  2. Di halaman Resources, klik Create private cloud.
  3. Pilih lokasi untuk cloud pribadi Anda.
  4. Pilih jumlah node untuk cloud pribadi. Untuk workload produksi, buat cloud pribadi dengan minimal 3 node. VMware Engine menghapus cloud pribadi yang hanya berisi 1 node setelah 60 hari.
  5. Opsional: Klik tombol Customize Cores jika Anda ingin mengurangi jumlah core yang tersedia untuk setiap node di cluster pengelolaan. Untuk mengetahui detailnya, lihat Jumlah inti kustom.
  6. Masukkan rentang CIDR untuk jaringan pengelolaan VMware. Untuk mengetahui informasi tentang pembatasan pada rentang ini, lihat bagian Sebelum memulai.
  7. Masukkan rentang CIDR untuk jaringan deployment HCX, yang digunakan untuk men-deploy komponen HCX. Pastikan rentang CIDR tidak tumpang tindih dengan subnet lokal atau cloud Anda. Rentang CIDR harus /27 atau lebih tinggi.
  8. Pilih Tinjau dan Buat.
  9. Tinjau setelan. Untuk mengubah setelan, klik Kembali.
  10. Klik Create untuk mulai menyediakan cloud pribadi.

Saat membuat cloud pribadi baru, VMware Engine akan men-deploy sejumlah komponen VMware dan membagi rentang alamat IP yang disediakan ke dalam subnet. Pembuatan cloud pribadi dapat memerlukan waktu 30 menit hingga 2 jam. Setelah penyediaan selesai, Anda akan menerima email.

gcloud

  1. [Opsional] Cantumkan region dan zona yang tersedia untuk project Anda.

    gcloud vmware locations list --project=PROJECT_ID
    
  2. Buat jaringan untuk cloud pribadi Anda. Nama jaringan harus dalam format default REGION.

    gcloud vmware networks create REGION-default --type=LEGACY --location=REGION --description="Legacy network created using gcloud vmware"
    

    Permintaan akan menampilkan ID operasi.

  3. Periksa status operasi. Ketika operasi ditampilkan sebagai DONE, periksa respons untuk melihat apakah operasi berhasil.

    gcloud vmware operations describe OPERATION_ID \
        --location REGION
    

    Ganti OPERATION_ID dengan ID dari langkah sebelumnya.

  4. Selanjutnya, buat private cloud tiga node.

    gcloud vmware private-clouds create PC_NAME \
       --location=ZONE --cluster=CLUSTER_NAME\
       --node-type-config=standard-72,count=3 \
       --management-range=192.168.0.0/24 \
       --vmware-engine-network=NETWORK_NAME
    

    Ganti kode berikut:

    • PC_NAME: nama untuk cloud pribadi
    • ZONE: zona untuk cloud pribadi
    • CLUSTER_NAME: nama untuk cluster baru di cloud pribadi ini
    • NETWORK_NAME: nama jaringan untuk cloud ini

    Permintaan tersebut menampilkan ID operasi yang dapat Anda gunakan untuk memeriksa progres operasi.

  5. Periksa status operasi. Ketika operasi ditampilkan sebagai DONE, periksa respons untuk melihat apakah operasi berhasil.

    gcloud vmware operations describe OPERATION_ID \
        --location REGION
    

    Ganti OPERATION_ID dengan ID dari langkah sebelumnya.

  6. Hubungkan Jaringan VMware Engine ke VPC Anda dengan menyiapkan akses layanan pribadi.

  7. Ambil kredensial vCenter dan NSX-T.

    gcloud vmware private-clouds vcenter credentials describe \
    --private-cloud=PC_NAME  --location=ZONE
    
    gcloud vmware private-clouds nsx credentials describe \
    --private-cloud=PC_NAME --location=ZONE
    

API

  1. Membuat jaringan lama. Nama jaringan harus dalam format REGION-default.

    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=REGION-default -d "{"type": "legacy"}"
    

    Ganti kode berikut:

    • TOKEN: token otorisasi untuk permintaan ini.
    • PROJECT_ID: project untuk permintaan ini.
    • REGION: region tempat jaringan ini dibuat.

    Permintaan tersebut menampilkan ID operasi yang dapat Anda gunakan untuk memeriksa progres operasi.

  2. Periksa status operasi. Ketika operasi ditampilkan sebagai DONE, periksa respons untuk melihat apakah operasi berhasil.

    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
    

    Ganti OPERATION_ID dengan ID dari langkah sebelumnya.

  3. Membuat private cloud tiga node.

    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=PC_NAME -d "{
    "networkConfig":{
      "vmwareEngineNetwork":"projects/PROJECT_ID/locations/REGION/vmwareEngineNetworks/REGION-default",
      "managementCidr":"10.241.0.0/22"
       },
    "managementCluster":{
      "clusterId": "CLUSTER_NAME",
      "nodeTypeConfigs": {
      "standard-72": {
        "nodeCount": 3
       }
      }
     }
    }"
    

    Ganti kode berikut:

    • TOKEN: token otorisasi untuk permintaan ini.
    • PROJECT_ID: project untuk permintaan ini
    • ZONE: zona untuk cloud pribadi
    • PC_NAME: nama untuk cloud pribadi
    • REGION: region jaringan untuk cloud pribadi ini
    • CLUSTER_NAME: nama untuk cluster baru di cloud pribadi ini

    Permintaan tersebut menampilkan ID operasi yang dapat Anda gunakan untuk memeriksa progres operasi.

  4. Periksa status operasi. Ketika operasi ditampilkan sebagai DONE, periksa respons untuk melihat apakah operasi berhasil.

    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
    

    Ganti OPERATION_ID dengan ID dari langkah sebelumnya.

  5. Hubungkan Jaringan VMware Engine ke VPC Anda dengan menyiapkan akses layanan pribadi.

  6. Ambil kredensial vCenter dan NSX-T.

    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/my-private-cloud: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/my-private-cloud:showNsxCredentials"
    

Python

  1. Membuat jaringan lama.

    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. Membuat private cloud tiga node.

    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)
    
    

    Fungsi create_private_cloud menampilkan objek operasi yang dapat Anda gunakan untuk memeriksa progres operasi.

  3. Periksa status operasi. Mengambil informasi terbaru tentang Operasi.

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

    Anda dapat menggunakan metode anggota .result() dari objek operasi untuk menunggunya selesai.

  4. Hubungkan Jaringan VMware Engine ke VPC Anda dengan menyiapkan akses layanan pribadi.

  5. Ambil kredensial vCenter dan 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
    
    

Langkah selanjutnya