Mengelompokkan VM yang tidak dikelola


Grup instance yang tidak dikelola adalah kumpulan instance virtual machine (VM) yang berada dalam satu project, zona, jaringan VPC, dan subnet. Grup instance yang tidak dikelola berguna untuk mengelompokkan VM yang memerlukan setelan atau penyesuaian konfigurasi individual. Anda dapat menggunakan grup instance yang tidak dikelola di layanan backend load balancer.

Untuk VM yang memerlukan setelan konfigurasi yang konsisten, Anda dapat menggunakan grup instance terkelola (MIG) yang didasarkan pada template instance. Jika memungkinkan, sebaiknya gunakan grup instance terkelola, bukan grup instance yang tidak dikelola. Untuk membuat grup instance terkelola, lihat Membuat MIG.

Anda dapat menambahkan salah satu jenis grup instance sebagai backend ke load balancer Google Cloud. Untuk informasi selengkapnya, lihat Ringkasan Cloud Load Balancing. Untuk jumlah VM per grup instance yang didukung Cloud Load Balancing, lihat VM per grup instance.

Untuk mempelajari grup instance lebih lanjut, baca Ringkasan grup instance.

Sebelum memulai

  • Baca perbedaan antara grup instance terkelola dan tidak terkelola.
  • Siapkan autentikasi, jika Anda belum melakukannya. Autentikasi adalah proses verifikasi identitas Anda untuk akses ke layanan dan API Google Cloud. Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat melakukan autentikasi ke Compute Engine sebagai berikut.

    Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:

    Konsol

    Saat menggunakan Konsol Google Cloud untuk mengakses API dan layanan Google Cloud, Anda tidak perlu menyiapkan autentikasi.

    gcloud

    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

    REST

    Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.

      Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init

Bekerja dengan grup instance tidak terkelola

Membuat grup

Tidak seperti grup instance terkelola, grup instance yang tidak terkelola hanyalah kumpulan VM berbeda yang tidak menggunakan template instance yang sama. Anda cukup membuat grup, lalu menambahkan setiap VM ke grup.

Konsol

  1. Di Konsol Google Cloud, buka halaman Instance groups.

    Buka halaman Instance Groups

  2. Klik Create instance group.
  3. Klik New unmanaged instance group.
  4. Masukkan nama untuk grup instance tidak terkelola.
  5. Di bagian Lokasi, pilih region dan zona.
  6. Pilih Network dan Subnetwork.
  7. Di bagian VM instances, pilih VM untuk ditambahkan ke grup ini.
  8. Klik Create.

gcloud

Untuk membuat grup instance tidak terkelola baru, gunakan perintah instance-groupsmanaged create:

gcloud compute instance-groups unmanaged create instance-group-name \
    --zone=zone

Ganti kode berikut:

  • instance-group-name: Nama grup yang ingin Anda buat.
  • zone: Zona tempat Anda ingin membuat grup.

REST

Untuk membuat grup instance yang tidak dikelola dengan REST, kirim permintaan POST menggunakan metode instanceGroups.insert:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups

{
   "name": "instance-group-name"
}

Ganti kode berikut:

  • instance-group-name: Nama grup yang ingin Anda buat.
  • zone: Zona tempat Anda ingin membuat grup.
  • project-id: Project ID untuk project yang berisi grup.

Saat Anda membuat grup instance tidak terkelola baru dengan Google Cloud CLI atau REST, tidak ada VM yang ditambahkan ke dalamnya secara otomatis. Anda dapat menambahkan VM ke grup instance tidak terkelola secara manual.

Mencantumkan dan mendeskripsikan grup

Mengambil daftar grup instance tidak terkelola yang ada.

Konsol

Di konsol Google Cloud, halaman Instance groups akan mencantumkan grup instance terkelola dan tidak terkelola yang ada.

Buka halaman Instance Groups

gcloud

Untuk menampilkan daftar semua grup instance yang tidak dikelola dalam project Anda dengan Google Cloud CLI, gunakan daftar instance yang tidak dikelola:

gcloud compute instance-groups unmanaged list

Untuk melihat informasi tentang grup instance tidak terkelola tertentu, gunakan perintah instance-groups Managed describe:

gcloud compute instance-groups unmanaged describe instance-group-name \
   --zone=zone

Ganti kode berikut:

  • instance-group-name: Nama grup yang akan dideskripsikan.
  • zone: Zona grup.

REST

Untuk menampilkan daftar grup instance dengan REST, kirim permintaan GET menggunakan metode instanceGroups.list:

GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups

Untuk mendapatkan informasi tentang grup instance tidak terkelola tertentu dengan API, kirim permintaan GET menggunakan metode instanceGroups.get:

GET https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name

Ganti kode berikut:

  • instance-group-name: Nama grup yang akan dideskripsikan.
  • zone: Zona grup.
  • project-id: Project ID untuk project yang berisi grup.

Menghapus grup

Tidak seperti grup instance terkelola, menghapus grup instance tidak terkelola tidak akan menghapus VM apa pun dalam grup. Menghapus grup instance yang tidak dikelola hanya akan menghapus pengelompokan VM yang logis.

Anda tidak dapat menghapus grup instance jika grup tersebut adalah backend load balancer Google Cloud. Anda harus menghapus backend dari layanan backend terlebih dahulu.

Konsol

  1. Di Konsol Google Cloud, buka halaman Instance groups.

    Buka halaman Instance Groups

  2. Pilih satu atau beberapa grup instance tidak terkelola dari daftar.
  3. Klik Hapus untuk menghapus grup. Grup tersebut akan dihapus, tetapi VM dalam grup tidak akan dihapus.

gcloud

Untuk menghapus grup instance tidak terkelola, gunakan perintah instance-groupsmanaged delete:

gcloud compute instance-groups unmanaged delete instance-group-name \
    --zone=zone

Ganti kode berikut:

  • instance-group-name: Nama grup yang ingin Anda hapus.
  • zone: Zona grup.

REST

Untuk menghapus grup instance yang tidak dikelola dengan REST, kirim permintaan DELETE menggunakan metode instanceGroups.delete:

DELETE https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name

Ganti kode berikut:

  • instance-group-name: Nama grup yang ingin Anda hapus.
  • zone: Zona grup.
  • project-id: Project ID untuk project yang berisi grup.

Keanggotaan grup

Menambahkan VM

Setelah membuat grup instance tidak terkelola, Anda dapat menambahkan VM ke grup. Namun, Anda hanya dapat mengelompokkan VM jika antarmuka jaringan pertama atau satu-satunya (nic0) dari setiap VM terpasang ke jaringan VPC yang sama. Jumlah maksimum VM yang dapat Anda tambahkan ke grup instance tidak terkelola adalah 2.000. Jika Anda ingin menambahkan lebih dari 2.000 VM ke grup, hubungi dukungan.

Konsol

  1. Di Konsol Google Cloud, buka halaman Instance groups.

    Buka halaman Instance Groups

  2. Di kolom Name pada daftar, klik nama grup instance tempat Anda ingin menambahkan VM. Halaman akan terbuka dengan properti grup instance dan daftar VM yang sudah menjadi bagian dari grup.
  3. Klik Edit untuk mengubah grup instance tidak terkelola ini.
  4. Di bagian VM instances, pilih satu atau beberapa VM yang sudah ada untuk ditambahkan ke grup. Anda hanya dapat memilih VM yang berada di zona, jaringan VPC, dan subnet yang sama dengan VM yang ada.
  5. Klik Save untuk menambahkan VM baru ke grup.

gcloud

Untuk menambahkan instance ke grup instance tidak terkelola, gunakan perintah instance-groups unmanaged add-instances:

gcloud compute instance-groups unmanaged add-instances instance-group-name \
    --zone=zone \
    --instances=list-of-VM-names

Ganti kode berikut:

  • instance-group-name: Nama grup tempat Anda ingin menambahkan VM.
  • zone: Zona grup.
  • list-of-VM-names: Daftar VM yang dipisahkan koma di zona, jaringan VPC, dan subnet yang sama.

REST

Untuk menambahkan VM ke grup instance yang tidak dikelola, kirim permintaan POST menggunakan metode instanceGroups.addInstances:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/addInstances

   {
      "instances": [
         {
         "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-1-name",
         "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-2-name",
         ....
         }
      ]
   }

Ganti kode berikut:

  • instance-group-name: Nama grup tempat Anda ingin menambahkan VM.
  • zone: Zona grup.
  • project-id: Project ID untuk project yang berisi grup.
  • instance-1-name dan instance-2-name: Ini adalah nama-nama VM, di zona, jaringan VPC, dan subnet yang sama, yang ingin Anda tambahkan ke grup.

Mencantumkan VM

Anda dapat mengambil daftar VM anggota di grup instance yang tidak dikelola.

Konsol

  1. Di Konsol Google Cloud, buka halaman Instance groups.

    Buka halaman Instance Groups

  2. Pada kolom Name di daftar, klik nama grup instance tidak terkelola yang ingin Anda lihat. Halaman dengan daftar instance yang disertakan dalam grup tersebut akan muncul.

gcloud

Untuk menampilkan daftar VM dalam grup instance tidak terkelola, gunakan perintah instance-groups unmanaged list-instances:

gcloud compute instance-groups unmanaged list-instances instance-group-name \
   --zone=zone

Ganti kode berikut:

  • instance-group-name: Nama grup yang anggotanya ingin Anda cantumkan.
  • zone: Zona grup.

REST

Untuk mencantumkan VM dalam grup instance yang tidak dikelola, kirim permintaan POST menggunakan metode instanceGroups.listInstances:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/listInstances

Ganti kode berikut:

  • instance-group-name: Nama grup yang anggotanya ingin Anda cantumkan.
  • zone: Zona grup.
  • project-id: Project ID untuk project yang berisi grup.

Menghapus VM

Anda dapat menghapus VM dari grup instance tidak terkelola. Menghapus VM dari grup instance tidak akan menghapus VM tersebut.

Konsol

  1. Di Konsol Google Cloud, buka halaman Instance groups.

    Buka halaman Instance Groups

  2. Di kolom Name pada daftar, klik nama grup instance tempat Anda ingin menghapus VM. Halaman akan terbuka dengan properti grup instance dan daftar VM yang disertakan dalam grup.
  3. Dalam daftar, pilih satu atau beberapa VM yang ingin Anda hapus dari grup.
  4. Klik Remove from group. VM yang Anda hapus dari grup instance yang tidak dikelola akan tetap ada dan dijalankan kecuali jika Anda menghentikan atau menghapusnya.

gcloud

Untuk menghapus VM dari grup instance tidak terkelola, gunakan perintah instance-groups unmanaged remove-instances:

gcloud compute instance-groups unmanaged remove-instances instance-group-name \
    --zone=zone \
    --instances=list-of-VM-names

Ganti kode berikut:

  • instance-group-name: Nama grup yang berisi instance yang akan dihapus.
  • zone: Zona grup.
  • list-of-VM-names: Daftar VM yang dipisahkan koma yang ingin Anda hapus dari grup.

REST

Untuk menghapus VM dari grup instance yang tidak dikelola dengan, kirim permintaan POST menggunakan metode instanceGroups.removeInstances. Anda dapat menghapus beberapa VM secara bersamaan seperti yang ditunjukkan di bawah ini:

POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/removeInstances
{
    "instances": [
        {
        "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-1-name",
        "instance": "https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-2-name",
        ....
        }
    ]
}

Ganti kode berikut:

  • instance-group-name: Nama grup yang berisi instance yang akan dihapus.
  • zone: Zona grup.
  • project-id: Project ID untuk project yang berisi grup.
  • instance-1-name dan instance-2-name: Ini adalah nama VM yang ingin Anda pisahkan dari grup.

Bekerja dengan port bernama

Port bernama adalah key-value pair yang mewakili nama dan nomor port. Nama port mewakili nama layanan atau aplikasi. Nomor port mewakili port tempat layanan atau aplikasi berjalan.

Port bernama digunakan oleh Cloud Load Balancing. Load balancer yang bertindak sebagai proxy berlangganan ke satu port bernama dalam konfigurasi layanan backend-nya. Nama port diterjemahkan menjadi nomor port berdasarkan pemetaan port bernama dari setiap backend grup instance.

Misalnya, layanan backend dapat berlangganan port yang bernama http-port. Grup instance backend dapat memiliki port bernama http-port:80. Grup instance backend menginstruksikan load balancer untuk mengirim traffic ke VM dalam grup di port 80 menggunakan protokol (seperti TCP). Protokol ini ditetapkan dalam layanan backend load balancer.

Port bernama adalah metadata sederhana yang digunakan oleh load balancer proxy. Port bernama tidak mengontrol resource jaringan atau firewall di Compute Engine.

Beberapa nomor port untuk port bernama

Anda dapat menetapkan beberapa port untuk setiap nama layanan. Anda juga dapat menetapkan beberapa nama layanan untuk setiap port.

Perhatikan poin-poin berikut:

  • Traffic diseimbangkan antara semua port dengan nama port yang sama.
  • Sebuah layanan backend tertentu hanya dapat meneruskan traffic ke satu port bernama pada satu waktu.
  • Jika Anda menggunakan beberapa nomor port untuk port bernama, semua port harus ditujukan untuk aplikasi yang sama.

    Misalnya, http:80,http:8080 berfungsi, tetapi http:80,http:443 tidak berfungsi karena port 80 umumnya tidak mendukung TLS.

Anda dapat menetapkan beberapa port bernama dalam satu grup instance. Sebagai ilustrasi, pertimbangkan contoh layanan backend yang berlangganan port bernama http-port, dan yang memiliki dua grup instance backend:

  • instance-group-a dengan port bernama http-port:80
  • instance-group-b dengan port bernama http-port:79

Layanan backend ini mengirimkan traffic ke port 80 untuk VM di instance-group-a dan port 79 untuk VM di instance-group-b.

Saat Anda menambahkan grup instance yang sama ke beberapa layanan backend (untuk beberapa load balancer) dan grup instance menyalurkan port yang berbeda di setiap load balancer, jangan tambahkan semua nomor port ke satu port bernama. Sebagai gantinya, buat port bernama yang unik dan petakan port tersebut ke kumpulan port yang harus disalurkan oleh setiap layanan backend.

Sebagai contoh, misalnya Anda memiliki tiga aplikasi, masing-masing dengan load balancer-nya sendiri. Setiap aplikasi memiliki nomor port sendiri: 81 untuk app1, 82 untuk app2, dan 83 untuk app3. Dengan asumsi bahwa ketiga layanan backend menggunakan grup instance yang sama, tetapkan port bernama untuk grup instance ini sebagai [app1:81, app2:82, app3:83].

Port bernama dan health check

Agar port bernama dengan beberapa nomor port di layanan backend dapat berfungsi di Load Balancer Aplikasi eksternal atau Load Balancer Aplikasi internal, health check harus memiliki flag --use-serving-port, bukan nomor port tertentu. Opsi ini tidak tersedia di konsol Google Cloud. Untuk menetapkan --use-serving-port, Anda harus menggunakan Google Cloud CLI atau API.

Misalnya, Anda memiliki aplikasi yang melakukan load balancing pada traffic di tiga port yang berbeda (81, 82, 83) pada layanan backend yang sama dengan satu grup instance. Anda dapat menetapkan port untuk grup instance ini sebagai [app:81, 82, 83]. Health check dalam skenario ini harus memiliki tanda --use-serving-port.

Untuk mengetahui informasi selengkapnya, lihat dokumentasi health check load balancing.

Port bernama dan aturan firewall

Port bernama tidak membuat atau mengubah aturan firewall Google Cloud. Untuk mengizinkan traffic ke VM backend, Anda tetap harus membuat aturan firewall yang diperlukan.

Port bernama dan layanan backend

Selain konfigurasi grup instance, Anda juga harus mengonfigurasi layanan backend. Misalnya, Anda menyetel port yang bernama pada grup instance dengan nama my-service-name dan port 8888:

gcloud compute instance-groups set-named-ports my-unmanaged-ig \
    --named-ports=my-service-name:8888

Anda harus merujuk ke port bernama di konfigurasi layanan backend dengan --port-name pada layanan backend yang ditetapkan ke my-service-name:

gcloud compute backend-services update my-backend-service \
    --port-name=my-service-name

Membuat port bernama

Konsol

  1. Di Konsol Google Cloud, buka halaman Instance groups.

    Buka Instance Groups

  2. Di kolom Name pada daftar, klik nama grup instance tempat Anda ingin menentukan port yang bernama. Halaman dengan properti grup instance akan terbuka.
  3. Klik Edit untuk mengubah grup instance tidak terkelola ini.
  4. Di bagian Port mapping, klik Add port, lalu masukkan nama port dan nomornya. Tambahkan atau hapus port bernama lain jika diperlukan.
  5. Klik Save untuk memperbarui daftar port bernama untuk grup instance yang tidak dikelola.

gcloud

Untuk menambahkan port bernama ke grup instance tidak terkelola, gunakan perintah instance-groups unmanaged set-named-ports:

gcloud compute instance-groups unmanaged set-named-ports instance-group-name \
    --zone=zone \
    --named-ports=port-name:port-number,...

Untuk mencantumkan port bernama dalam grup instance tidak terkelola, gunakan perintah instance-groups unmanaged get-named-ports:

Setel satu atau beberapa port bernama menggunakan perintah set-named-ports:

gcloud compute instance-groups unmanaged set-named-ports INSTANCE_GROUP \
      --named-ports PORT_NAME:PORT,PORT_NAME:PORT

Contoh:

gcloud compute instance-groups unmanaged set-named-ports INSTANCE_GROUP \
      --named-ports name1:80,name2:8080

Untuk menetapkan beberapa port ke setiap nama layanan atau beberapa nama untuk setiap layanan, buat lebih dari satu entri untuk setiap nama atau port. Misalnya, jika port 10, 20, dan 80 adalah untuk aplikasi yang sama, Anda dapat menetapkan name1 ke semua port tersebut. Selain itu, Anda dapat menetapkan dua nama, name2 dan name3 ke port 8080. Terakhir, Anda dapat menetapkan port 9000 ke name4, seperti pada contoh berikut:

gcloud compute instance-groups unmanaged set-named-ports INSTANCE_GROUP \
      --named-ports name1:10,name1:20,name1:80,\
                    name2:8080,name3:8080,\
                    name4:9000

Untuk menghapus semua port yang bernama dari grup instance tidak terkelola dengan Google Cloud CLI, gunakan instance-groupsmanaged set-name-ports dengan daftar kosong port bernama:

gcloud compute instance-groups unmanaged set-named-ports instance-group-name \
    --zone=zone \
    --named-ports=""

Pada semua contoh di atas, ganti kode berikut jika ada:

  • instance-group-name: Nama grup instance.
  • zone: Zona grup.
  • port-name dan port-number: Nama dan nomor port mewakili pemetaan dari nama yang Anda pilih ke nomor port. Anda dapat menentukan beberapa pemetaan yang dipisahkan dengan koma; misalnya, port-one:80,port-two:8080 adalah daftar valid untuk port bernama.

REST

  1. Deskripsikan grup instance dan catat fingerprint.

  2. Untuk menambahkan port bernama, kirim permintaan POST menggunakan metode instanceGroups.setNamedPorts. Jika Anda ingin menghapus semua port bernama, tetapkan namedPorts ke daftar kosong.

    POST https://compute.googleapis.com/compute/v1/projects/project-id/zones/zone/instanceGroups/instance-group-name/setNamedPorts
    
    {
        "fingerprint": "fingerprint",
        "namedPorts": [
            {
            "name": "port-name",
            "port": port-number
            },
            {
            "name": "port-name",
            "port": port-number
            },
            ....
        ]
    }
    

    Ganti kode berikut:

    • instance-group-name: Nama grup instance.
    • zone: Zona grup.
    • project-id: Project ID untuk project yang berisi grup.
    • port-name dan port-number: Nama dan nomor port mewakili pemetaan dari nama yang Anda pilih ke nomor port.
    • fingerprint: Ini adalah sidik jari dari langkah sebelumnya.

Langkah selanjutnya