Membuat cloud pribadi VMware Engine

Cloud pribadi adalah stack VMware terisolasi yang terdiri dari host ESXi, vCenter, vSAN, NSX, dan HCX. Anda mengelola cloud pribadi melalui the Google Cloud konsol. 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 internal dibagi menjadi beberapa subnet selama deployment.

Sebelum memulai

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

  • Alokasikan rentang alamat IP unik untuk subnet vSphere/vSAN dari cloud pribadi yang ingin Anda buat.
    • Awalan rentang CIDR minimum: /24
    • Awalan rentang CIDR maksimum: /20
  • Jika Anda menginginkan resolusi alamat global menggunakan Cloud DNS, aktifkan Cloud DNS API dan selesaikan penyiapan Cloud DNS sebelum Anda membuat cloud pribadi.

Ruang alamat subnet vSphere/vSAN tidak boleh tumpang tindih dengan jaringan apa pun yang akan berkomunikasi dengan cloud pribadi, seperti jaringan lokal dan Google Cloud jaringan Virtual Private Cloud (VPC). 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 untuk mengelola resource VMware Engine, sebaiknya konfigurasikan alat seperti yang dijelaskan di bawah.

gcloud

  1. Tetapkan project ID default Anda:

    gcloud config set project PROJECT_ID
    
  2. Tetapkan 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. Pastikan TOKEN ditetapkan 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 harus diinstal dan Kredensial Default Aplikasi harus dikonfigurasi.

  1. Download dan instal library Python:

    pip install google-cloud-vmwareengine
    
  2. Konfigurasi 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, buka halaman referensi atau lihat contoh kode di GitHub.

Membuat cloud pribadi standar

Konsol

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

  1. Di Google Cloud konsol, buka halaman Private clouds.

    Buka Private clouds

  2. Klik Select a project , lalu pilih organisasi, folder, atau project tempat Anda ingin membuat cloud pribadi.

  3. Klik Create.

  4. Masukkan nama untuk cloud pribadi.

  5. Pilih Standard private cloud untuk jenis cloud pribadi.

  6. Pilih lokasi tempat Anda ingin men-deploy cloud pribadi.

  7. Masukkan nama untuk cluster utama.

  8. Pilih jenis node untuk cluster utama Anda.

  9. Pilih jumlah node untuk cloud pribadi. Untuk workload produksi, buat cloud pribadi Anda dengan minimal 3 node. VMware Engine menghapus cloud pribadi yang hanya berisi 1 node setelah 60 hari.

  10. Opsional: Klik tombol Customize Cores jika Anda ingin mengurangi jumlah core yang tersedia untuk setiap node di cluster pengelolaan. Untuk mengetahui detailnya, lihat Jumlah core kustom.

  11. Masukkan rentang CIDR untuk jaringan pengelolaan VMware. Untuk mengetahui informasi tentang batasan pada rentang ini, lihat bagian Sebelum memulai.

  12. Klik Review and Create.

  13. Tinjau setelan. Untuk mengubah setelan apa pun, klik Back.

  14. Klik Create untuk mulai menyediakan cloud pribadi.

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

  • Name: ID unik permanen dari cloud pribadi.
  • Description: Informasi tambahan yang terlihat di halaman detail cloud pribadi.
  • Region: Region geografis tempat VMware Engine menghosting cloud pribadi Anda.
  • Zone: Subset region yang secara fisik terisolasi dari zona lain di region yang sama. Zona adalah satu domain kegagalan dalam suatu region.
  • Primary cluster name: Nama yang diberikan ke cluster vSphere awal di cloud pribadi Anda. Perangkat pengelolaan VMware dari cloud pribadi Anda berjalan di cluster ini.
  • Node type: Konfigurasi hardware node di cluster utama Anda.
  • Nodes: Jumlah node di cluster utama Anda.

  • Management IP address range: Rentang alamat IP yang digunakan untuk vCenter Server, NSX Manager, 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 Anda rencanakan untuk menghubungkan cloud pribadi Anda.
  • VMware Engine network: 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 cloud pribadi standar menggunakan Google Cloud CLI, ikuti langkah-langkah berikut:

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

    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 \
        --location=global \
        --type=STANDARD \
        --description="DESCRIPTION"

    Ganti kode berikut:

    • NETWORK_NAME: nama jaringan untuk jaringan VMware Engine ini
    • DESCRIPTION: deskripsi untuk jaringan VMware Engine ini

    Permintaan akan menampilkan ID operasi.

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

    gcloud vmware operations describe OPERATION_ID \
        --location=global

    Ganti kode berikut:

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

    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
    

    Ganti kode berikut:

    • PRIVATE_CLOUD_ID: nama untuk cloud pribadi.
    • ZONE: zona untuk cloud pribadi.
    • CLUSTER_ID: nama untuk cluster baru di cloud pribadi ini.
    • NODE_TYPE: jenis node. Untuk mengetahui informasi selengkapnya, lihat Jenis node.
    • 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 akan menampilkan ID operasi yang dapat Anda gunakan untuk memeriksa progres operasi.

  5. 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=ZONE
    

    Ganti kode berikut:

    • OPERATION_ID: ID dari langkah sebelumnya
    • ZONE: zona untuk cloud pribadi.
  6. Hubungkan Jaringan VMware Engine ke VPC Anda dengan melakukan peering koneksi VPC.

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

    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 standar menggunakan VMware Engine API, ikuti langkah-langkah berikut:

  1. Buat jaringan VMware Engine 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/global/vmwareEngineNetworks?vmwareEngineNetworkId=NETWORK_NAME -d '{"type": "standard"}'
    

    Ganti kode berikut:

    • TOKEN: token otorisasi untuk permintaan ini
    • PROJECT_ID: project untuk permintaan ini
    • NETWORK_NAME: nama jaringan untuk cloud pribadi

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

  2. 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/global/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/global/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
    • 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 akan 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/ZONE/operations/OPERATION_ID
    

    Ganti kode berikut:

    • PROJECT_ID: project ID untuk permintaan ini
    • ZONE: zona untuk cloud pribadi
    • OPERATION_ID: ID dari langkah sebelumnya
  5. Hubungkan Jaringan VMware Engine ke VPC Anda dengan melakukan peering koneksi VPC.

  6. Ambil kredensial vCenter dan NSX 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. Buat 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. Buat cloud pribadi 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. Ambil informasi saat ini 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 menunggu hingga selesai.

  4. Hubungkan Jaringan VMware Engine ke VPC Anda dengan melakukan peering koneksi VPC.

  5. Ambil kredensial vCenter dan NSX.

    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 VMware Engine membuat cloud pribadi baru Anda, VMware Engine akan men-deploy sejumlah komponen VMware dan membagi rentang alamat IP yang diberikan menjadi subnet. Pembuatan cloud pribadi dapat memerlukan waktu 30 menit hingga 2 jam. Setelah penyediaan selesai, Anda akan menerima email.

Langkah berikutnya