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 Google Cloud Console. 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 Google Cloud CLI 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 zona default:

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

Untuk mengetahui informasi selengkapnya tentang alat gcloud vmware, lihat 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-langkah berikut 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. Verifikasi bahwa TOKEN telah disetel dengan benar:

    echo $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. Download dan instal 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 Service Account:

    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

Untuk membuat cloud pribadi menggunakan konsol Google Cloud, ikuti langkah-langkah berikut:

  1. Akses konsol Google Cloud.
  2. Dari navigasi utama, klik Private cloud.
  3. Klik Create.
  4. Pilih lokasi tempat Anda ingin men-deploy cloud pribadi.
  5. Pilih jenis node untuk cluster utama Anda.
  6. 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.
  7. 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.
  8. Masukkan rentang CIDR untuk jaringan pengelolaan VMware. Untuk mengetahui informasi tentang pembatasan pada rentang ini, lihat bagian Sebelum memulai.
  9. 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.
  10. Klik Tinjau dan Buat.
  11. Tinjau setelan. Untuk mengubah setelan, klik Kembali.
  12. Klik Create untuk mulai menyediakan cloud pribadi.

Daftar berikut menjelaskan setiap kolom selama pembuatan private cloud secara lebih mendetail:

  • Nama: ID unik permanen cloud pribadi.
  • Deskripsi: Informasi tambahan yang terlihat di halaman detail cloud pribadi.
  • Region: Region geografis tempat VMware Engine menghosting cloud pribadi Anda.
  • Zona: Subset region yang secara fisik diisolasi dari zona lain di region yang sama. Zona adalah domain kegagalan tunggal dalam suatu region.
  • Nama cluster utama: Nama yang diberikan ke cluster vSphere awal di cloud pribadi Anda. Peralatan pengelolaan VMware cloud pribadi Anda berjalan di cluster ini.
  • Jenis node: Konfigurasi hardware node di cluster utama Anda.
  • Node: Jumlah node di cluster utama.

  • Rentang alamat IP pengelolaan: Rentang alamat IP yang digunakan untuk Server vCenter, Pengelola NSX, host ESXi, dan bagian lain dari infrastruktur cloud pribadi. Rentang ini tidak digunakan untuk VM workload dan tidak boleh tumpang tindih dengan bagian mana pun dari jaringan VPC Anda atau jaringan lain yang ingin Anda hubungkan ke cloud pribadi.
  • Jaringan VMware Engine: Resource jaringan yang menangani koneksi cloud pribadi sesuai dengan kebijakan jaringan. Anda dan resource yang terhubung ke jaringan VMware Engine ini dapat mengakses cloud pribadi dari dalam Google Cloud.

gcloud

Untuk membuat private cloud yang direntangkan menggunakan Google Cloud CLI, ikuti langkah-langkah berikut:

  1. Opsional: Buat daftar region dan zona yang tersedia untuk project Anda dengan menjalankan perintah gcloud vmware locations list.

    gcloud vmware locations list \
        --project=PROJECT_ID
    

    Ganti kode berikut:

    • PROJECT_ID: project ID untuk permintaan ini
  2. Buat jaringan untuk cloud pribadi Anda dengan menjalankan perintah gcloud vmware networks create.

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

    Ganti kode berikut:

    • NETWORK_NAME: nama jaringan untuk cloud pribadi
    • REGION: region untuk cloud pribadi
    • DESCRIPTION: deskripsi untuk cloud pribadi

    Permintaan akan menampilkan ID operasi.

  3. Periksa status operasi dengan menjalankan perintah gcloud vmware operations describe. Saat operasi ditampilkan sebagai DONE, periksa respons untuk melihat apakah operasi berhasil:

    gcloud vmware operations describe OPERATION_ID \
        --location REGION

    Ganti kode berikut:

    • OPERATION_ID: ID dari langkah sebelumnya
    • REGION: region untuk cloud pribadi
  4. Buat private cloud tiga node dengan menjalankan perintah gcloud vmware private-clouds create.

    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
    

    Ganti kode berikut:

    • PRIVATE_CLOUD_ID: nama cloud pribadi
    • ZONE: zona untuk cloud pribadi
    • CLUSTER_ID: nama untuk cluster baru di cloud pribadi ini
    • NODE_COUNT: jumlah node. Tentukan nilai tiga atau lebih.
    • IP_ADDRESS: alamat IP, misalnya 192.168.0.0/24, untuk permintaan 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 dengan menjalankan perintah gcloud vmware operations describe. Ketika operasi ditampilkan sebagai DONE, periksa respons untuk melihat apakah operasi berhasil.

    gcloud vmware operations describe OPERATION_ID \
        --location REGION
    

    Ganti kode berikut:

    • OPERATION_ID: ID dari langkah sebelumnya
    • REGION: region untuk cloud pribadi
  6. Hubungkan Jaringan VMware Engine ke VPC Anda dengan menyiapkan akses layanan pribadi.

  7. Ambil kredensial vCenter dan NSX-T dengan menjalankan perintah gcloud vmware private-clouds vcenter credentials describe dan gcloud vmware private-clouds nsx credentials describe.

    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

    Ganti kode berikut:

    • PRIVATE_CLOUD_ID: ID untuk cloud pribadi
    • ZONE: zona untuk cloud pribadi

API

Untuk membuat cloud pribadi yang direntangkan menggunakan VMware Engine API, ikuti langkah-langkah berikut:

  1. Buat jaringan lama dengan membuat permintaan 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"}"
    

    Ganti kode berikut:

    • TOKEN: token otorisasi untuk permintaan ini
    • PROJECT_ID: project untuk permintaan ini
    • REGION: region tempat membuat jaringan ini
    • NETWORK_NAME: nama jaringan untuk cloud pribadi

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

  2. Periksa status operasi dengan membuat permintaan GET. 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. Buat cloud pribadi tiga node dengan membuat permintaan 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
       }
      }
     }
    }"
    

    Ganti kode berikut:

    • TOKEN: token otorisasi untuk permintaan ini.
    • PROJECT_ID: project ID untuk permintaan ini
    • ZONE: zona untuk cloud pribadi
    • PRIVATE_CLOUD_ID: ID untuk cloud pribadi
    • REGION: region jaringan untuk cloud pribadi ini
    • NETWORK_NAME: nama jaringan untuk cloud pribadi
    • CLUSTER_ID: ID untuk cluster baru di cloud pribadi ini
    • NODE_COUNT: jumlah node. Tentukan nilai tiga atau lebih.

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

  4. Periksa status operasi dengan membuat permintaan GET. Saat 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 kode berikut:

    • PROJECT_ID: project ID untuk permintaan ini
    • REGION: region untuk cloud pribadi
    • OPERATION_ID: ID dari langkah sebelumnya
  5. Hubungkan Jaringan VMware Engine ke VPC Anda dengan menyiapkan akses layanan pribadi.

  6. Ambil kredensial vCenter dan NSX-T dengan membuat permintaan 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"
    

    Ganti kode berikut:

    • PROJECT_ID: project ID untuk permintaan ini
    • ZONE: zona untuk cloud pribadi
    • PRIVATE_CLOUD_ID: ID untuk cloud pribadi

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
    
    

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

Langkah selanjutnya