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 konsol Google Cloud. 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 beberapa subnet 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 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. 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 mengkueri 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. 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 informasi selengkapnya tentang library, buka halaman referensi atau lihat contoh kode di GitHub.

Membuat cloud pribadi standar

Konsol

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

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

    Buka Private cloud

  2. Klik Create.

  3. Masukkan nama untuk cloud pribadi.

  4. Pilih Cloud pribadi standar untuk jenis cloud pribadi.

  5. Pilih lokasi tempat Anda ingin men-deploy private cloud.

  6. Masukkan nama untuk cluster utama.

  7. Pilih jenis node untuk cluster utama Anda.

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

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

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

  11. Klik Tinjau dan Buat.

  12. Tinjau setelan. Untuk mengubah setelan apa pun, klik Kembali.

  13. Klik Create untuk mulai menyediakan cloud pribadi.

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

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

  • Rentang alamat IP pengelolaan: 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 apa 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 cloud pribadi yang diperluas menggunakan Google Cloud CLI, ikuti langkah-langkah berikut:

  1. Opsional: Cantumkan 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 cloud pribadi 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=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 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 ini 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 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 diperluas 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 ini 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/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 ini 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. 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. Mengambil 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 operasi 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 disediakan menjadi subnet. Pembuatan cloud pribadi dapat memerlukan waktu 30 menit hingga 2 jam. Setelah penyediaan selesai, Anda akan menerima email.

Langkah selanjutnya