Mengonfigurasi alamat IP stateful di MIG


Dengan mengonfigurasi alamat IP stateful di grup instance terkelola (MIG), Anda memastikan bahwa alamat IP dipertahankan saat instance VM dalam grup di-autohealing, diperbarui, dan dibuat ulang.

Anda dapat mempertahankan alamat IPv4 internal dan eksternal. Anda dapat mengonfigurasi alamat IP agar ditetapkan secara otomatis atau menetapkan alamat IP tertentu ke setiap instance VM di MIG.

Sebelum memulai

  • Tinjau kapan harus menggunakan MIG stateful dan cara kerja MIG stateful.
  • 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.

    Terraform

    Untuk menggunakan contoh Terraform di halaman ini dari lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.

    1. Menginstal Google Cloud CLI.
    2. Untuk initialize gcloud CLI, jalankan perintah berikut:

      gcloud init
    3. Buat kredensial autentikasi lokal untuk Akun Google Anda:

      gcloud auth application-default login

    Untuk informasi selengkapnya, lihat Siapkan autentikasi untuk lingkungan pengembangan lokal.

    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

Batasan

MIG dengan alamat IP stateful memiliki batasan berikut:

  • Alamat IPv6 tidak didukung.

  • Alamat IP internal tidak didukung di jaringan yang tidak memiliki subjaringan, misalnya, jaringan lama.

MIG dengan konfigurasi statefulMIG stateful—memiliki batasan berikut:

  • Anda tidak dapat menggunakan penskalaan otomatis jika MIG Anda memiliki konfigurasi stateful.
  • Jika ingin menggunakan update berkelanjutan otomatis, Anda harus menetapkan metode penggantian ke RECREATE.
  • Untuk MIG regional stateful, Anda harus menonaktifkan redistribusi proaktif (menetapkan jenis distribusi ulang ke NONE) untuk mencegah penghapusan instance stateful dengan redistribusi lintas zona otomatis.
  • Jika menggunakan konfigurasi semua instance untuk mengganti properti template instance, Anda tidak dapat menentukan properti tersebut dalam konfigurasi per instance mana pun dan pada saat yang sama dalam konfigurasi semua instance grup.

Harga

Anda akan ditagih untuk alamat IP eksternal sesuai dengan pricing jaringan.

Kapan harus menggunakan alamat IP stateful

Mempertahankan alamat IP instance berguna dalam skenario berikut:

  • Aplikasi Anda memerlukan alamat IP agar tetap statis setelah ditetapkan—misalnya, Kafka.
  • Konfigurasi aplikasi Anda bergantung pada alamat IP tertentu—misalnya, server DNS.
  • Pengguna, termasuk aplikasi lain, mengakses server Anda melalui alamat IP statis khusus, misalnya server file.
  • Anda perlu memigrasikan beban kerja yang ada tanpa mengubah konfigurasi jaringan.

Mengonfigurasi alamat IP stateful untuk semua VM dalam grup

Mengonfigurasi alamat IP stateful untuk semua VM di MIG berguna dalam skenario berikut:

  • Aplikasi Anda memerlukan alamat IP agar tetap statis setelah ditetapkan. Namun, aplikasi Anda tidak memerlukan penetapan alamat IP khusus ke instance tertentu. Alamat IP dapat ditetapkan secara otomatis saat pembuatan instance.
  • Pengguna Anda, termasuk aplikasi lain, mengakses server Anda melalui alamat IP statis yang Anda publikasikan setelah men-deploy aplikasi.
  • Anda ingin memanfaatkan autohealing instance dan update otomatis, sekaligus mempertahankan alamat IP statis yang ditetapkan secara otomatis pada pembuatan instance.

Untuk mempertahankan alamat IP internal atau eksternal statis bagi instance VM yang ada dan yang akan datang dalam grup, konfigurasikan dalam kebijakan stateful.

Saat Anda menambahkan konfigurasi alamat IP stateful ke kebijakan stateful grup, MIG akan menerapkan konfigurasi dengan cara berikut:

  • Untuk instance baru, MIG otomatis menetapkan dan mencadangkan alamat IP statis.
  • Untuk instance yang sudah ada, MIG mempromosikan penggunaan sementara alamat IP internal atau eksternal ke alamat statis dengan melakukan reservasi alamat IP statis yang sesuai.
  • Untuk instance yang ada tanpa alamat IP eksternal, MIG menetapkan dan mencadangkan alamat IP statis, serta menambahkan konfigurasi akses ke antarmuka jaringan yang sesuai dengan nilai default berikut:

    "accessConfigs": [
      {
        "kind": "compute#accessConfig",
        "name": "External NAT",
        "natIP": "XX.XX.XX.XX",
        "networkTier": "PREMIUM",
        "type": "ONE_TO_ONE_NAT"
      }
    ]
    

Untuk mencadangkan alamat IP statis, MIG akan membuat resource Address.

Mengonfigurasi alamat IP stateful pada pembuatan MIG

Gunakan Konsol Google Cloud, gcloud CLI, Terraform, atau REST.

Konsol

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

    Buka Instance groups

  2. Pilih project Anda lalu klik Continue.

  3. Klik Create grup instance.

  4. Pilih New managed instance group (stateful).

  5. Tentukan Name untuk grup instance.

  6. Pilih sebuah Instance template.

  7. Di bagian Number of instances, tentukan jumlah instance yang ingin Anda sertakan dalam grup instance terkelola.

  8. Di bagian Stateful configuration, luaskan IP Eksternal dan IP Internal yang ingin Anda jadikan stateful.

    1. Di bagian Stateful, pilih Ya.
    2. Dari menu drop-down On bulk instance Deletion, pilih tindakan yang akan dilakukan pada alamat IP stateful saat instance VM dihapus. Opsi yang tersedia adalah:
      • Detach IP: (Default.) Membatalkan penetapan alamat saat penghapusan instance dan menjaga alamat tetap dicadangkan.
      • Delete IP: Menghapus reservasi alamat IP statis saat instance dihapus secara permanen dari grup instance, misalnya, saat Anda menghapus instance secara manual atau mengurangi ukuran grup.
    3. Setelah Anda menyelesaikan konfigurasi stateful, klik Done.
  9. Klik Create.

gcloud

Saat membuat MIG, untuk menentukan alamat IP mana di antarmuka jaringan dari template instance yang harus stateful, gunakan satu atau beberapa flag berikut dengan perintah gcloud compute instance-groups managed create:

  • --stateful-internal-ip untuk menandai alamat IP internal dari antarmuka jaringan tertentu sebagai stateful.
  • --stateful-external-ip untuk menandai alamat IP eksternal dari antarmuka jaringan tertentu sebagai stateful.
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
    --template INSTANCE_TEMPLATE \
    --size SIZE \
    --instance-redistribution-type NONE \
    --stateful-internal-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    --stateful-external-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE]

Ganti kode berikut:

  • INSTANCE_GROUP_NAME: Nama MIG yang akan dibuat.
  • INSTANCE_TEMPLATE: Nama template instance yang akan digunakan saat membuat instance baru.
  • SIZE: Jumlah awal instance yang Anda perlukan dalam grup ini.
  • NI_NAME: (Opsional.) Nama antarmuka jaringan. Jika tidak diberikan, maka opsi enabled akan diperlukan dan antarmuka jaringan utama bernama nic0 akan digunakan secara default. Jika memiliki beberapa antarmuka jaringan, Anda dapat menentukan flag ini untuk setiap IP di setiap antarmuka jaringan.
  • DELETE_RULE: (Opsional.) Menentukan apa yang akan terjadi pada resource Address statis yang terkait saat instance VM dihapus secara permanen. Opsi yang tersedia adalah sebagai berikut:

    • never: (Default.) Jangan pernah menghapus alamat IP statis. Sebagai gantinya, batalkan penetapan alamat saat penghapusan instance dan pertahankan alamat tersebut.
    • on-permanent-instance-deletion: Menghapus reservasi alamat IP statis saat instance dihapus secara permanen dari grup instance, misalnya, saat Anda menghapus instance secara manual atau mengurangi ukuran grup.

    Terlepas dari nilai aturan hapus, grup selalu mempertahankan alamat IP stateful pada operasi autohealing, update, dan pembuatan ulang instance.

Contoh

Anda perlu membuat grup regional instance VM dengan alamat IP internal statis untuk jaringan default dan kustom, serta alamat IP eksternal statis hanya untuk jaringan default. Anda ingin alamat ditetapkan secara otomatis, tetapi perlu mempertahankannya melalui peristiwa autohealing, pembaruan, dan pembuatan ulang instance. Anda menyimpan konfigurasi instance dalam template instance bernama node-template.

Untuk membuat skrip yang dimaksud, jalankan perintah berikut:

gcloud compute instance-groups managed create example-group \
    --region us-east1 \
    --template node-template \
    --base-instance-name node \
    --instance-redistribution-type NONE \
    --size 3 \
    --stateful-internal-ip interface-name=nic0,auto-delete=on-permanent-instance-deletion
    --stateful-internal-ip interface-name=nic1,auto-delete=on-permanent-instance-deletion
    --stateful-external-ip enabled,auto-delete=on-permanent-instance-deletion

IP internal dalam antarmuka jaringan nic0 dan nic1 serta IP eksternal dalam antarmuka jaringan nic0 dikonfigurasi sebagai stateful untuk semua instance dalam grup. Grup akan otomatis mencadangkan alamat IP internal dan eksternal statis untuk setiap instance. Karena flag auto-delete disetel ke on-permanent-instance-deletion, grup akan otomatis menghapus reservasi alamat IP statis saat Anda menghapus instance terkait atau seluruh grup.

Untuk memverifikasi bahwa IP internal dalam antarmuka jaringan nic0 dan nic1 serta IP eksternal dalam antarmuka jaringan nic0 dikonfigurasi sebagai stateful, jalankan perintah berikut:

gcloud compute instance-groups managed describe example-group \
    --zone us-east1-c

Outputnya akan terlihat seperti berikut:

baseInstanceName: node
...
name: example-group
...
statefulPolicy:
  preservedState:
    internalIPs:
      nic0:
        autoDelete: ON_PERMANENT_INSTANCE_DELETION
      nic1:
        autoDelete: ON_PERMANENT_INSTANCE_DELETION
    externalIPs:
      nic0:
        autoDelete: ON_PERMANENT_INSTANCE_DELETION
...

Anda dapat melihat bahwa kebijakan stateful grup mendeklarasikan IP internal dalam antarmuka jaringan nic0 dan nic1 serta IP eksternal dalam antarmuka jaringan nic0 sebagai stateful dengan aturan untuk menghapus IP statis reservasi saat penghapusan instance permanen.

Terraform

Jika Anda belum membuat template instance, yang menentukan jenis mesin, boot disk image, jaringan, dan properti VM lainnya yang Anda inginkan untuk setiap VM di MIG Anda, buat template instance.

Saat membuat MIG, untuk menentukan alamat IP mana dalam antarmuka jaringan dari template instance yang harus stateful, gunakan satu atau beberapa blok berikut:

  • stateful_internal_ip untuk menandai alamat IP internal antarmuka jaringan tertentu sebagai stateful.
  • stateful_external_ip untuk menandai alamat IP eksternal antarmuka jaringan tertentu sebagai stateful.

Contoh berikut mengonfigurasi alamat IP stateful saat membuat MIG regional. Untuk mengetahui informasi selengkapnya tentang resource yang digunakan dalam contoh, lihat resource google_compute_region_instance_group_manager.

resource "google_compute_region_instance_group_manager" "default" {
  name               = "example-group"
  base_instance_name = "node"
  target_size        = 3
  region             = "us-east1"

  version {
    instance_template = google_compute_instance_template.default.id
    name              = "primary"
  }
  update_policy {
    type                         = "OPPORTUNISTIC"
    minimal_action               = "REFRESH"
    instance_redistribution_type = "NONE"
    max_unavailable_fixed        = 3
  }
  stateful_internal_ip {
    interface_name = "nic0"
    delete_rule    = "ON_PERMANENT_INSTANCE_DELETION"
  }
  stateful_internal_ip {
    interface_name = "nic1"
    delete_rule    = "ON_PERMANENT_INSTANCE_DELETION"
  }
  stateful_external_ip {
    interface_name = "nic0"
    delete_rule    = "ON_PERMANENT_INSTANCE_DELETION"
  }
}

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

REST

Saat membuat MIG, untuk menentukan alamat IP mana dalam antarmuka jaringan dari template instance yang harus stateful, sertakan alamat tersebut dalam kolom statefulPolicy di dalam isi permintaan instanceGroupManagers.insert atau metode regionInstanceGroupManagers.insert:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/instanceGroupManagers

{
  "name": "INSTANCE_GROUP_NAME",
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/INSTANCE_TEMPLATE"
    }
  ],
  "targetSize": SIZE,
  "statefulPolicy": {
    "preservedState": {
      "internalIPs": {
        "NI_NAME": {"autoDelete": "DELETE_RULE" }
      },
      "externalIPs": {
        "NI_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  },
  "updatePolicy": {
    "instanceRedistributionType": "NONE"
  }
}

Ganti kode berikut:

  • PROJECT: Project ID untuk permintaan.
  • REGION: Untuk MIG regional, region tempat grup berada. Untuk MIG zona, ganti regions/REGION dengan zones/ZONE dan tentukan zona tempat MIG berada.
  • NAME: Nama MIG yang akan dibuat.
  • INSTANCE_TEMPLATE: Nama template instance yang akan digunakan saat membuat instance baru.
  • SIZE: Jumlah awal instance yang Anda perlukan dalam grup ini.
  • NI_NAME: (Opsional.) Nama antarmuka jaringan. Jika tidak diberikan, maka opsi enabled akan diperlukan dan antarmuka jaringan utama bernama nic0 akan digunakan secara default. Jika memiliki beberapa antarmuka jaringan, Anda dapat menentukan beberapa NI_NAMES.
  • DELETE_RULE: (Opsional) Menentukan apa yang harus terjadi pada resource Address statis yang terkait saat instance VM dihapus secara permanen. Opsi yang tersedia adalah sebagai berikut:

    • NEVER: (Default) Jangan pernah menghapus alamat IP statis. Sebagai gantinya, batalkan penetapan alamat saat penghapusan instance dan pertahankan alamat tersebut.
    • ON_PERMANENT_INSTANCE_DELETION: Menghapus reservasi alamat IP statis saat instance dihapus secara permanen dari grup instance, misalnya, saat Anda menghapus instance secara manual atau mengurangi ukuran grup.

    Terlepas dari nilai aturan hapus, grup selalu mempertahankan alamat IP stateful pada operasi autohealing, update, dan pembuatan ulang instance.

Contoh

Anda perlu membuat grup instance VM regional dengan alamat IP internal statis untuk jaringan default dan kustom, serta alamat IP eksternal statis hanya untuk jaringan default. Anda ingin alamat ditetapkan secara otomatis, tetapi perlu mempertahankannya melalui peristiwa autohealing, pembaruan, dan pembuatan ulang instance. Anda menyimpan konfigurasi instance dalam template instance bernama node-template.

Untuk membuat grup, gunakan metode regionInstanceGroupManagers.insert:

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers

{
  "name": "example-group",
  "baseInstanceName": "node",
  "versions": [
    {
      "instanceTemplate": "global/instanceTemplates/node-template"
    }
  ],
  "targetSize": 3,
  "statefulPolicy": {
    "preservedState": {
      "internalIPs": {
        "nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" },
        "nic1": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
      }
      "externalIPs": {
        "nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
      }
    }
  },
  "updatePolicy": {
    "instanceRedistributionType": "NONE"
  }
}

IP internal dalam antarmuka jaringan nic0 dan nic1 serta IP eksternal dalam antarmuka jaringan nic0 dikonfigurasi sebagai stateful untuk semua instance dalam grup. Grup akan otomatis mencadangkan alamat IP internal dan eksternal statis untuk setiap instance. Karena kolom auto-delete ditetapkan ke ON_PERMANENT_INSTANCE_DELETION, grup akan otomatis menghapus reservasi alamat IP statis saat Anda menghapus instance terkait atau seluruh grup.

Gunakan metode regionInstanceGroupManagers.get untuk memverifikasi bahwa IP internal dalam antarmuka jaringan nic0 dan nic1 serta IP eksternal dalam antarmuka jaringan nic0 telah dikonfigurasi dalam kebijakan stateful dari resource regionInstanceGroupManagers yang baru:

GET https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group

Responsnya berisi kebijakan stateful yang dikonfigurasi:

{
  "name": "example-group",
  "baseInstanceName": "node",
  ...
  "statefulPolicy": {
    "preservedState": {
      "internalIPs": {
        "nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" },
        "nic1": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
      }
      "externalIPs": {
        "nic0": {"autoDelete": "ON_PERMANENT_INSTANCE_DELETION" }
      }
    }
  }
  ...
}

Anda dapat melihat bahwa kebijakan stateful grup mendeklarasikan IP internal dalam nic0 dan pada antarmuka jaringan nic1 dan IP eksternal dalam antarmuka jaringan nic0 sebagai stateful dengan aturan untuk menghapus reservasi alamat IP statis terkait saat penghapusan instance permanen.

Menetapkan dan memperbarui konfigurasi stateful untuk alamat IP di MIG yang ada

Jika Anda menjalankan beban kerja pada MIG stateless (MIG tanpa konfigurasi stateful) dan beban kerja memerlukan alamat IP statis, Anda dapat mengonfigurasi alamat IP yang sudah ditetapkan ke instance VM terkelola agar menjadi stateful. Hal ini memastikan bahwa alamat IP VM yang ada dipertahankan saat peristiwa autohealing, update, dan pembuatan ulang instance. Secara opsional, Anda dapat mempertahankan reservasi alamat IP statis setelah instance dihapus.

Dengan mengonfigurasi kebijakan stateful untuk alamat IP di MIG yang ada, Anda dapat melakukan hal berikut:

  • Mengonfigurasikan alamat IP sebagai stateful untuk semua instance yang ada dan yang akan datang dalam grup. Hal ini akan mempromosikan alamat IP sementara yang sesuai dari semua instance yang ada ke alamat IP statis.
  • Perbarui konfigurasi stateful yang ada untuk alamat IP.

MIG menerapkan konfigurasi yang telah diperbarui dalam kebijakan stateful secara otomatis dan asinkron ke semua instance. Pembaruan pada konfigurasi alamat IP dalam kebijakan stateful tidak akan mengganggu pengoperasian instance VM. Untuk mempelajari lebih lanjut, baca cara menerapkan pembaruan kebijakan stateful.

Konsol

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

    Buka Instance groups

  2. Klik nama grup instance yang alamat IP stateful-nya ingin Anda tentukan.

  3. Klik Edit untuk mengubah grup instance terkelola.

  4. Di bagian Stateful configuration, luaskan IP Eksternal dan Internal IP yang ingin Anda jadikan stateful.

    1. Di bagian Stateful, pilih Ya.
    2. Dari menu drop-down On bulk instance Deletion, pilih tindakan yang akan dilakukan pada alamat IP stateful saat instance VM dihapus. Opsi yang tersedia adalah:
      • Detach IP: (Default.) Membatalkan penetapan alamat saat penghapusan instance dan menjaga alamat tetap dicadangkan.
      • Delete IP: Menghapus reservasi alamat IP statis saat instance dihapus secara permanen dari grup instance—misalnya, saat Anda menghapus instance secara manual atau mengurangi ukuran grup.
    3. Setelah Anda memperbarui konfigurasi stateful, klik Done.
    4. Klik Save untuk menyelesaikan update.

gcloud

Untuk menentukan alamat IP mana yang harus stateful atau untuk memperbarui konfigurasi IP stateful untuk MIG yang ada, gunakan satu atau beberapa flag --stateful-internal-ip atau --stateful-external-ip dengan perintah gcloud compute instance-groups managed update.

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --stateful-internal-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    --stateful-external-ip [enabled | interface-name=NI_NAME][,auto-delete=DELETE_RULE]

Ganti kode berikut:

  • INSTANCE_GROUP_NAME: Nama MIG yang akan diupdate.
  • NI_NAME: (Opsional.) Nama antarmuka jaringan. Jika tidak diberikan, maka opsi enabled akan diperlukan dan antarmuka jaringan utama bernama nic0 akan digunakan secara default. Jika memiliki beberapa antarmuka jaringan, Anda dapat menentukan flag ini untuk setiap IP di setiap antarmuka jaringan.
  • DELETE_RULE: (Opsional.) Menentukan apa yang akan terjadi pada resource Address statis yang terkait saat instance VM dihapus secara permanen. Opsi yang tersedia adalah sebagai berikut:

    • never: (Default.) Jangan pernah menghapus alamat IP statis. Sebagai gantinya, batalkan penetapan alamat saat penghapusan instance dan pertahankan alamat tersebut.
    • on-permanent-instance-deletion: Menghapus reservasi alamat IP statis saat instance dihapus secara permanen dari grup instance, misalnya, saat Anda menghapus instance secara manual atau mengurangi ukuran grup.

    Terlepas dari nilai aturan hapus, grup selalu mempertahankan alamat IP stateful pada operasi autohealing, update, dan pembuatan ulang instance.

Jika alamat IP yang ditentukan sudah dikonfigurasi dalam kebijakan stateful untuk antarmuka jaringan tertentu, perintah akan memperbarui konfigurasi.

Contoh

Anda harus mengekspos server file, yang berjalan di MIG stateful bernama example-fs-group, kepada pengguna eksternal melalui alamat IP eksternal statis. Instance dalam grup memiliki alamat IP eksternal sementara. Anda harus memastikan bahwa alamat IP dipertahankan saat autohealing instance dan update sehingga pengguna eksternal memiliki akses berkelanjutan ke server melalui alamat IP yang dipublikasikan. Anda juga harus menjaga alamat IP tetap dicadangkan untuk kontinuitas jika terjadi penghapusan grup yang tidak diinginkan.

Perbarui MIG untuk menentukan alamat IP eksternal sebagai stateful dengan menggunakan perintah berikut:

gcloud compute instance-groups managed update example-fs-group \
    --stateful-external-ip enabled

Akibatnya, grup ini mempromosikan alamat IP eksternal sementara dalam antarmuka jaringan nic0 ke alamat IP statis untuk semua instance terkelola secara asinkron.

Alamat IP eksternal kini dipertahankan saat peristiwa autohealing, update, dan pembuatan ulang instance. Reservasi alamat IP statis terkait tidak ditetapkan dan dipertahankan saat instance dihapus karena aturan auto-delete yang tidak ditentukan ditetapkan ke never secara default.

Anda dapat memverifikasi bahwa IP eksternal stateful telah dikonfigurasi dalam kebijakan stateful dengan menjalankan perintah gcloud compute instance-groups managed describe example-fs-group.

REST

Untuk menentukan alamat IP mana yang harus stateful atau untuk memperbarui konfigurasi IP stateful untuk MIG yang ada, gunakan metode instanceGroupManagers.patch atau regionInstanceGroupManagers.patch:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "statefulPolicy": {
    "preservedState": {
      "internalIPs": {
        "NI_NAME": {"autoDelete": "DELETE_RULE" }
      },
      "externalIPs": {
        "NI_NAME": {"autoDelete": "DELETE_RULE" }
      }
    }
  }
}

Ganti kode berikut:

  • PROJECT: Project ID untuk permintaan.
  • REGION: Untuk MIG regional, region tempat grup berada. Untuk MIG zona, ganti regions/REGION dengan zones/ZONE dan tentukan zona tempat MIG berada.
  • NAME: Nama MIG yang akan dibuat.
  • NI_NAME: (Wajib) Nama antarmuka jaringan. Antarmuka jaringan utama diberi nama nic0. Jika memiliki beberapa antarmuka jaringan, Anda dapat menentukan beberapa NI_NAMES.
  • DELETE_RULE: (Opsional) Menentukan apa yang harus terjadi pada resource Address statis yang terkait saat instance VM dihapus secara permanen. Opsi yang tersedia adalah sebagai berikut:

    • NEVER: (Default) Jangan pernah menghapus alamat IP statis. Sebagai gantinya, batalkan penetapan alamat saat penghapusan instance dan pertahankan alamat tersebut.
    • ON_PERMANENT_INSTANCE_DELETION: Menghapus reservasi alamat IP statis saat instance dihapus secara permanen dari grup instance, misalnya, saat Anda menghapus instance secara manual atau mengurangi ukuran grup.

    Terlepas dari nilai aturan hapus, grup selalu mempertahankan alamat IP stateful pada operasi autohealing, update, dan pembuatan ulang instance.

Jika alamat IP yang ditentukan sudah dikonfigurasi dalam kebijakan stateful, metode ini akan men-patch konfigurasi.

Contoh

Anda harus mengekspos server file, yang berjalan di MIG stateful bernama example-fs-group, kepada pengguna eksternal melalui alamat IP eksternal statis. Instance dalam grup memiliki alamat IP eksternal sementara. Anda harus memastikan bahwa alamat IP dipertahankan saat autohealing instance dan update sehingga pengguna eksternal memiliki akses berkelanjutan ke server melalui antarmuka jaringan yang dipublikasikan. Anda juga harus menjaga alamat IP tetap dicadangkan untuk kontinuitas jika terjadi penghapusan grup yang tidak diinginkan.

Lakukan patch pada MIG untuk menentukan alamat IP eksternal sebagai stateful:

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-fs-group

{
  "statefulPolicy": {
    "preservedState": {
      "externalIPs": {
        "nic0": {"autoDelete": "NEVER" }
      }
    }
  }
}

Akibatnya, grup ini mempromosikan alamat IP eksternal sementara dalam antarmuka jaringan nic0 ke alamat IP statis untuk semua instance terkelola secara asinkron.

Alamat IP eksternal kini dipertahankan saat peristiwa autohealing, update, dan pembuatan ulang instance. Reservasi alamat IP statis terkait tidak akan ditetapkan dan dipertahankan saat instance dihapus karena aturan autoDelete disetel ke NEVER.

Verifikasi bahwa alamat IP eksternal dikonfigurasi dalam kebijakan stateful dengan melihat resource regionInstanceGroupManagers, yang ditampilkan oleh metode regionInstanceGroupManagers.get.

Mendeklarasikan alamat IP stateful sebelumnya sebagai stateless

Anda mungkin perlu mengonfigurasi alamat IP stateful agar bersifat sementara, misalnya, karena alasan berikut:

  • Anda merancang ulang aplikasi agar tidak lagi mengandalkan alamat IP statis.
  • Anda tidak sengaja mengonfigurasi IP agar menjadi stateful dan ingin mengembalikannya.

Anda dapat menghapus konfigurasi IP stateful dari kebijakan stateful grup untuk mendeklarasikan alamat IP dalam antarmuka jaringan tertentu sebagai sementara untuk semua instance terkelola.

Saat Anda menghapus konfigurasi IP stateful dari kebijakan stateful, MIG akan menghapus alamat IP secara otomatis dan asinkron dari status yang dipertahankan dari semua instance dalam grup. Operasi ini tidak akan mengganggu instance VM yang berjalan. Alamat IP tetap aktif di instance, tetapi tidak lagi stateful. Saat Anda membuat ulang atau mengupdate instance, atau saat instance di-autohealing, MIG membatalkan penetapan alamat IP statis terkait dan otomatis menetapkan alamat sementara. Jika tidak perlu lagi menyimpan reservasi alamat IP eksternal statis, sekarang Anda dapat melepaskannya.

Untuk mempelajari lebih lanjut, baca dokumen berikut:

Konsol

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

    Buka Instance groups

  2. Klik nama grup instance tempat Anda ingin menghapus konfigurasi stateful untuk alamat IP-nya.

  3. Klik Edit untuk mengubah grup instance terkelola.

  4. Di bagian Stateful configuration, luaskan IP Eksternal dan IP Internal yang ingin dijadikan stateless.

    1. Ubah opsi Stateful menjadi No.
    2. Klik Done.
  5. Setelah melakukan perubahan, klik Save.

gcloud

Untuk menentukan alamat IP mana dari kebijakan stateful MIG guna dibuat sementara, gunakan flag --remove-stateful-internal-ips atau --remove-stateful-external-ips dengan perintah gcloud compute instance-groups managed update:

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --remove-stateful-internal-ips NI_NAME[,NI_NAME,...] \
    --remove-stateful-external-ips NI_NAME[,NI_NAME,...]

Ganti kode berikut:

  • INSTANCE_GROUP_NAME: Nama MIG yang akan diupdate.
  • NI_NAME: (Wajib.) Nama antarmuka jaringan. Antarmuka jaringan utama diberi nama nic0. Jika memiliki beberapa antarmuka jaringan, Anda dapat menentukan beberapa NI_NAMES.

Jika perlu mengubah alamat IP stateful dari antarmuka jaringan utama default bernama nic0 menjadi alamat IP sementara, Anda juga dapat menggunakan perintah berikut:

gcloud compute instance-groups managed update INSTANCE_GROUP_NAME \
    --stateful-internal-ip disabled \
    --stateful-external-ip disabled

Contoh

Aplikasi Anda telah diekspos kepada pengguna melalui alamat IP eksternal statis yang dipublikasikan dari instance VM dalam MIG yang disebut example-group. Anda telah mendesain ulang layanan dengan men-deploy load balancer di depan MIG dan mengarahkan traffic ke VM terkelola melalui MIG tersebut. Anda tidak perlu lagi mempertahankan alamat IP eksternal statis dan ingin membuat alamat IP eksternal VM bersifat sementara.

Untuk membuat alamat IP eksternal stateful pada VM dalam sementara MIG, jalankan perintah berikut:

gcloud compute instance-groups managed update example-group \
    --remove-stateful-external-ips nic0

MIG menghapus alamat IP eksternal statis antarmuka jaringan nic0 secara otomatis dan asinkron dari status yang dipertahankan untuk semua instance dalam grup. Alamat IP eksternal tetap aktif di instance, tetapi tidak lagi stateful. Saat Anda membuat ulang atau mengupdate instance, atau saat instance di-autohealing, MIG membatalkan penetapan alamat IP statis terkait dan otomatis menetapkan alamat sementara. Jika tidak perlu lagi menyimpan reservasi alamat IP eksternal statis, sekarang Anda dapat melepaskannya.

REST

Untuk menentukan alamat IP mana dari kebijakan stateful MIG agar dapat dibuat sementara, hapus setiap konfigurasi IP dari kebijakan stateful MIG menggunakan metode instanceGroupManagers.patch atau regionInstanceGroupManagers.patch:

PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

{
  "statefulPolicy": {
    "preservedState": {
      "internalIPs": {
        "NI_NAME": null
      },
      "externalIPs": {
        "NI_NAME": null
      }
    }
  }
}

Ganti kode berikut:

  • PROJECT: Project ID untuk permintaan.
  • REGION: Untuk MIG regional, region tempat grup berada. Untuk MIG zona, ganti regions/REGION dengan zones/ZONE dan tentukan zona tempat MIG berada.
  • INSTANCE_GROUP_NAME: Nama MIG yang akan dibuat.
  • NI_NAME: (Wajib) Nama antarmuka jaringan. Antarmuka jaringan utama diberi nama nic0. Jika memiliki beberapa antarmuka jaringan, Anda dapat menentukan beberapa NI_NAMES.

Contoh

Aplikasi Anda telah diekspos kepada pengguna melalui alamat IP eksternal statis yang dipublikasikan dari instance VM dalam MIG yang disebut example-group. Anda telah mendesain ulang layanan dengan men-deploy load balancer di depan MIG dan mengarahkan traffic ke VM terkelola melalui MIG tersebut. Anda tidak perlu lagi mempertahankan alamat IP eksternal statis dan ingin membuat alamat IP eksternal VM bersifat sementara.

Untuk membuat alamat IP eksternal stateful pada VM dalam sementara MIG, lakukan patch MIG:

PATCH https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group

{
  "statefulPolicy": {
    "preservedState": {
      "externalIPs": {
        "nic0": null
      }
    }
  }
}

MIG menghapus alamat IP eksternal statis antarmuka jaringan nic0 secara otomatis dan asinkron dari status yang dipertahankan untuk semua instance dalam grup. Alamat IP eksternal tetap aktif di instance, tetapi tidak lagi stateful. Saat Anda membuat ulang atau mengupdate instance, atau saat instance di-autohealing, MIG membatalkan penetapan alamat IP statis terkait dan otomatis menetapkan alamat sementara. Jika tidak perlu lagi menyimpan reservasi alamat IP eksternal statis, sekarang Anda dapat melepaskannya.

Mengonfigurasi alamat IP stateful secara individual untuk VM di MIG

Mengonfigurasi alamat IP stateful satu per satu untuk VM di MIG berguna dalam skenario berikut:

  • Memigrasikan beban kerja yang ada (dengan membawa alamat IP statis yang dicadangkan yang sudah ada) dari instance VM mandiri ke MIG stateful untuk mendapatkan manfaat dari autohealing dan update otomatis.
  • Menetapkan alamat IP statis khusus yang dicadangkan yang diperlukan oleh arsitektur atau konfigurasi beban kerja.

Mengonfigurasi alamat IP statis pada pembuatan VM di MIG

Anda dapat mencadangkan dan menetapkan alamat IP statis ke instance tertentu saat membuat instance tersebut satu per satu di MIG. Hal ini berguna untuk memigrasikan aplikasi stateful dari VM mandiri yang ada ke MIG stateful dalam situasi saat arsitektur, konfigurasi, atau pengguna mengandalkan alamat IP statis tertentu.

Saat Anda membuat instance di MIG secara manual dan memberikan alamat IP statis, MIG akan melakukan tindakan berikut:

  1. Membuat reservasi alamat IP internal atau eksternal statis untuk alamat IP yang diberikan jika belum ada ini.
  2. Membuat instance dari template instance menggunakan nama instance dan alamat IP yang diberikan.
  3. Membuat konfigurasi per instance dengan konfigurasi stateful yang disediakan untuk alamat IP.

gcloud

Untuk membuat instance dengan alamat IP statis yang telah ditetapkan, gunakan perintah gcloud compute instance-groups managed create-instance dengan satu atau beberapa flag berikut:

  • --stateful-internal-ip untuk menetapkan alamat IP internal statis antarmuka jaringan tertentu.
  • --stateful-external-ip untuk menyetel alamat IP eksternal statis dari antarmuka jaringan tertentu.
gcloud compute instance-groups managed create-instance INSTANCE_GROUP_NAME \
    --instance INSTANCE_NAME \
    --stateful-internal-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    --stateful-external-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE]

Ganti kode berikut:

  • INSTANCE_GROUP_NAME: Nama MIG.
  • INSTANCE_NAME: Nama instance yang akan dibuat.
  • NI_NAME: (Opsional.) Nama antarmuka jaringan. Jika tidak diberikan, antarmuka jaringan utama yang bernama nic0 diasumsikan secara default. Jika memiliki beberapa antarmuka jaringan, Anda dapat menentukan flag ini untuk setiap IP di setiap antarmuka jaringan.
  • ADDRESS: (Wajib.) Alamat IP statis yang akan ditetapkan ke instance dalam salah satu format berikut:

    • Address. URL reservasi alamat IP statis, misalnya: "projects/example-project/regions/us-east1/addresses/example-ip-name".
    • Literal–misalnya: "130.211.181.55".
      • Jika alamat IP yang diberikan belum dicadangkan, MIG akan otomatis membuat pencadangan alamat IP yang sesuai.
      • Jika alamat IP yang diberikan dicadangkan, MIG akan menetapkan reservasi ke instance tersebut.
  • DELETE_RULE: (Opsional.) Menentukan apa yang akan terjadi pada resource Address statis yang terkait saat instance VM dihapus secara permanen. Opsi yang tersedia adalah sebagai berikut:

    • never: (Default.) Jangan pernah menghapus alamat IP statis. Sebagai gantinya, batalkan penetapan alamat saat penghapusan instance dan pertahankan alamat tersebut.
    • on-permanent-instance-deletion: Menghapus reservasi alamat IP statis saat instance dihapus secara permanen dari grup instance, misalnya, saat Anda menghapus instance secara manual atau mengurangi ukuran grup.

    Terlepas dari nilai aturan hapus, grup selalu mempertahankan alamat IP stateful pada operasi autohealing, update, dan pembuatan ulang instance.

Contoh

Anda perlu menambahkan satu instance VM lagi ke cluster server proxy, yang berjalan pada MIG bernama proxy-cluster. Anda telah membuat reservasi alamat IP internal statis bernama proxy-node-03-ip dan perlu menetapkannya ke node baru. Anda perlu mempertahankan reservasi alamat IP meskipun memutuskan untuk menghapus node di masa mendatang.

Jalankan perintah berikut untuk membuat node-nya:

gcloud compute instance-groups managed create-instance proxy-cluster \
    --instance proxy-node-03 \
    --stateful-internal-ip address="projects/example-project/regions/us-east1/addresses/proxy-node-03-ip",auto-delete=never

Perintah tersebut membuat instance bernama proxy-node-03, menetapkan alamat IP internal statis yang disediakan bernama proxy-node-03-ip ke instance, dan menyimpan konfigurasi stateful untuk IP di bagian konfigurasi per instance. Karena tanda auto-delete disetel ke never, IP akan tetap dicadangkan jika Anda menghapus instance nanti.

Terraform

Untuk membuat VM dengan alamat IP statis yang telah ditetapkan sebelumnya, gunakan satu atau beberapa blok berikut:

  • preserved_state.internal_ip untuk menandai alamat IP internal dari antarmuka jaringan tertentu sebagai stateful.
  • preserved_state.external_ip untuk menandai alamat IP eksternal dari antarmuka jaringan tertentu sebagai stateful.

Contoh berikut mengonfigurasi alamat IP statis pada pembuatan VM di MIG regional. Untuk mengetahui informasi selengkapnya tentang resource yang digunakan dalam contoh, lihat resource google_compute_region_per_instance_config. Untuk MIG zona, gunakan resource google_compute_per_instance_config.

resource "google_compute_region_per_instance_config" "default" {
  region_instance_group_manager = google_compute_region_instance_group_manager.default.name
  region                        = google_compute_region_instance_group_manager.default.region
  name                          = "proxy-node-03-ip"
  preserved_state {
    internal_ip {
      interface_name = "nic0"
      auto_delete    = "NEVER"
      ip_address {
        address = google_compute_address.default.id
      }
    }
  }
}

Untuk mempelajari cara menerapkan atau menghapus konfigurasi Terraform, lihat Perintah dasar Terraform.

REST

Untuk membuat satu atau beberapa instance di MIG, menetapkan nama instance kustom, dan menetapkan alamat IP statis yang telah ditetapkan ke instance tersebut, gunakan metode instanceGroupManagers.createInstances atau regionInstanceGroupManagers.createInstances.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/createInstances

{
  "instances": [
    {
      "name": "INSTANCE_NAME",
      "preservedState" : {
        "internalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        "externalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        ...
      }
    },
    ...
  ]
}

Ganti kode berikut:

  • PROJECT_ID: Project ID untuk permintaan.
  • NAME: Nama MIG.
  • REGION: Untuk MIG regional, region tempat grup berada. Untuk MIG zona, ganti regions/REGION dengan zones/ZONE dan tentukan zona tempat MIG berada.
  • INSTANCE_NAME: Nama instance yang akan dibuat.
  • NI_NAME: (Wajib.) Nama antarmuka jaringan. Antarmuka jaringan utama diberi nama nic0. Jika memiliki beberapa antarmuka jaringan, Anda dapat menentukan beberapa NI_NAMES.
  • ADDRESS: (Opsional.) Alamat IP statis yang akan ditetapkan ke instance dalam format URL reservasi alamat IP statis, misalnya: "projects/example-project/regions/us-east1/addresses/example-ip-name". Anda harus dan hanya dapat menetapkan satu kolom pada satu waktu, baik address atau literal, saat menetapkan alamat IP statis.
  • LITERAL: (Opsional.) Alamat IP statis yang akan ditetapkan ke instance dalam format literal, misalnya: "130.211.181.55". Anda harus dan hanya dapat menetapkan satu kolom pada satu waktu, baik address atau literal, saat menetapkan alamat IP statis.
    • Jika alamat IP literal yang diberikan belum dicadangkan, MIG akan otomatis membuat pencadangan alamat IP yang sesuai.
    • Jika alamat IP literal yang diberikan dicadangkan, MIG akan menetapkan reservasi ke instance.
  • DELETE_RULE: (Opsional.) Menentukan apa yang akan terjadi pada resource Address statis yang terkait saat instance VM dihapus secara permanen. Opsi yang tersedia adalah sebagai berikut:

    • NEVER: (Default.) Jangan pernah menghapus alamat IP statis. Sebagai gantinya, batalkan penetapan alamat saat penghapusan instance dan pertahankan alamat tersebut.
    • ON_PERMANENT_INSTANCE_DELETION: Menghapus reservasi alamat IP statis saat instance dihapus secara permanen dari grup instance, misalnya, saat Anda menghapus instance secara manual atau mengurangi ukuran grup.

    Terlepas dari nilai aturan hapus, grup selalu mempertahankan alamat IP stateful pada operasi autohealing, update, dan pembuatan ulang instance.

Contoh

Anda perlu menambahkan satu instance VM lagi ke cluster server proxy, yang berjalan pada MIG bernama proxy-cluster. Anda telah membuat reservasi alamat IP internal statis bernama proxy-node-03-ip dan perlu menetapkannya ke node baru. Anda perlu mempertahankan reservasi alamat IP meskipun memutuskan untuk menghapus node di masa mendatang.

Panggil metode regionInstanceGroupManagers.createInstances untuk membuat instance tambahan:

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/proxy-cluster/createInstances

{
  "instances": [
    {
      "name": "proxy-node-03",
      "preservedState" : {
        "internalIPs": {
          "nic0" : {
            "ipAddress": {
              "address": "projects/example-project/regions/us-east1/addresses/proxy-node-03-ip"
            },
            "autoDelete": "NEVER"
          }
        }
      }
    }
  ]
}

Metode ini membuat instance bernama proxy-node-03, menetapkan alamat IP internal statis yang disediakan bernama proxy-node-03-ip ke instance, dan menyimpan konfigurasi stateful untuk IP di bagian konfigurasi per instance. Karena kolom autoDelete disetel ke NEVER, IP akan tetap dicadangkan jika Anda menghapus instance di lain waktu.

Mengonfigurasi alamat IP statis untuk VM yang ada di MIG

Anda dapat menetapkan alamat IP statis yang telah ditetapkan atau mengupdate konfigurasi IP stateful untuk instance terkelola satu per satu, misalnya:

  • Menetapkan alamat IP statis ke instance yang ada di MIG. Untuk IP eksternal statis, operasi ini memerlukan pemuatan ulang instance, dan untuk IP internal statis, operasi ini memerlukan pembuatan ulang instance.
  • Perbarui aturan penghapusan untuk alamat IP statis yang sudah ditetapkan. Operasi ini dapat dilakukan tanpa mengganggu instance yang sedang berjalan.

Untuk instance yang ada tanpa alamat IP eksternal, tempat Anda mengonfigurasi IP stateful eksternal, MIG akan menambahkan konfigurasi akses ke antarmuka jaringan yang sesuai dengan nilai default berikut:

"accessConfigs": [
  {
    "kind": "compute#accessConfig",
    "name": "External Nat",
    "natIP": "XX.XX.XX.XX",
    "networkTier": "PREMIUM",
    "type": "ONE_TO_ONE_NAT"
  }
]

gcloud

Untuk mengonfigurasi alamat IP stateful satu per satu untuk instance VM di MIG, tambahkan atau perbarui konfigurasi IP stateful dalam konfigurasi per instance yang terkait.

Jika konfigurasi per instance belum ada untuk instance tersebut, gunakan perintah gcloud compute instance-groups managed instance-configs create dengan satu atau beberapa flag berikut:

  • --stateful-internal-ip untuk menetapkan alamat IP internal statis antarmuka jaringan tertentu.
  • --stateful-external-ip untuk menyetel alamat IP eksternal statis dari antarmuka jaringan tertentu.
gcloud compute instance-groups managed instance-configs create INSTANCE_GROUP_NAME \
    --instance INSTANCE_NAME \
    --stateful-internal-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    --stateful-external-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    [--no-update-instance | --update-instance]
    [--instance-update-minimal-action MINIMAL_ACTION]

Jika konfigurasi per instance sudah ada untuk instance, gunakan perintah gcloud compute instance-groups managed instance-configs update dengan satu atau beberapa flag --stateful-internal-ip atau --stateful-external-ip:

gcloud compute instance-groups managed instance-configs update INSTANCE_GROUP_NAME \
    --instance INSTANCE_NAME \
    --stateful-internal-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    --stateful-external-ip address=ADDRESS[,interface-name=NI_NAME][,auto-delete=DELETE_RULE] \
    [--no-update-instance | --update-instance]
    [--instance-update-minimal-action MINIMAL_ACTION]

Ganti kode berikut:

  • INSTANCE_GROUP_NAME: Nama MIG.
  • INSTANCE_NAME: Nama instance tempat mengonfigurasi alamat IP stateful.
  • NI_NAME: (Opsional.) Nama antarmuka jaringan. Jika tidak diberikan, antarmuka jaringan utama yang bernama nic0 diasumsikan secara default. Jika memiliki beberapa antarmuka jaringan, Anda dapat menentukan flag ini untuk setiap IP di setiap antarmuka jaringan.
  • ADDRESS: Alamat IP statis yang akan ditetapkan ke instance dalam salah satu format berikut:
    • Address. URL reservasi alamat IP statis, misalnya: "projects/example-project/regions/us-east1/addresses/example-ip-name".
    • Literal. Contoh: "130.211.181.55".
      • Jika alamat IP yang diberikan belum dicadangkan, MIG akan otomatis membuat pencadangan alamat IP yang sesuai.
      • Jika alamat IP yang diberikan dicadangkan, MIG akan menetapkan reservasi ke instance tersebut.
    • Subflag ini bersifat opsional jika alamat sudah ditentukan dalam konfigurasi per instance untuk instance tersebut. Jika tidak, subflag akan menjadi wajib.
    • Jika dihilangkan, alamat yang dikonfigurasi tetap tidak berubah.
  • DELETE_RULE: (Opsional.) Menentukan apa yang akan terjadi pada resource Address statis yang terkait saat instance VM dihapus secara permanen. Opsi yang tersedia adalah sebagai berikut:

    • never: (Default.) Jangan pernah menghapus alamat IP statis. Sebagai gantinya, batalkan penetapan alamat saat penghapusan instance dan pertahankan alamat tersebut.
    • on-permanent-instance-deletion: Menghapus reservasi alamat IP statis saat instance dihapus secara permanen dari grup instance, misalnya, saat Anda menghapus instance secara manual atau mengurangi ukuran grup.
    • Jika dihilangkan, nilai default akan ditetapkan untuk konfigurasi IP stateful baru; nilainya tetap tidak berubah dalam konfigurasi yang ada.

    Terlepas dari nilai aturan hapus, grup selalu mempertahankan alamat IP stateful pada operasi autohealing, update, dan pembuatan ulang instance.

  • --update-instance: (Opsional. Default.) Segera terapkan perubahan ke instance. Jika Anda menggunakan tanda --no-update-instance, perubahan tetap tidak diterapkan dan akan diterapkan saat Anda membuat ulang atau menerapkan update ke instance di lain waktu.

  • MINIMAL_ACTION: (Opsional.) Lakukan setidaknya tindakan yang ditentukan saat menerapkan update konfigurasi per instance ke instance. Harus digunakan bersama dengan tanda --update-instance. Nilainya harus berupa salah satu dari berikut:

    • none: Tidak ada tindakan.
    • refresh: Menerapkan update yang dapat diterapkan tanpa menghentikan instance.
    • restart: Menghentikan instance, lalu memulainya lagi.
    • replace: Membuat ulang instance.

Jika dihilangkan, tindakan yang paling tidak mengganggu yang diperlukan oleh update akan digunakan.

Contoh

Anda memiliki instance server file bernama file-server, yang merupakan satu instance dalam MIG stateful yang disebut fs-group. Grup ini memiliki konfigurasi per instance yang sesuai, tempat disk data stateful dikonfigurasi. Server file hanya dapat diakses secara internal, tetapi sekarang Anda memiliki pengguna yang perlu mengaksesnya secara eksternal melalui alamat IP statis. Anda telah mencadangkan IP eksternal statis dengan membuat reservasi alamat file-server-ip. Sekarang Anda perlu menetapkan IP ini ke instance server file.

Jalankan perintah berikut untuk mengonfigurasi IP eksternal stateful untuk instance server file:

gcloud compute instance-groups managed instance-configs update fs-group \
    --instance file-server \
    --stateful-external-ip interface-name=nic0,address="projects/example-project/regions/us-east1/addresses/file-server-ip",auto-delete=never \
    --update-instance

Perintah tersebut melakukan hal berikut:

  1. Mengupdate konfigurasi per instance untuk instance file-server:
    1. Menambahkan konfigurasi IP eksternal stateful, yang mengarah ke pencadangan alamat file-server-ip.
    2. Mempertahankan konfigurasi disk data stateful yang ada agar tidak berubah.
  2. Menerapkan update konfigurasi per instance ke instance file-server segera karena tanda --update-instance disertakan: memuat ulang instance dan menetapkan alamat IP eksternal statis dari reservasi file-server-ip.

REST

Untuk mengonfigurasi IP stateful satu per satu untuk instance VM di MIG, tambahkan atau perbarui konfigurasi IP stateful dalam konfigurasi per instance yang terkait.

Jika konfigurasi per instance belum ada untuk instance tertentu, gunakan metode instanceGroupManagers.updatePerInstanceConfigs atau metode regionInstanceGroupManagers.updatePerInstanceConfigs dengan konfigurasi stateful untuk satu atau beberapa alamat IP:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/updatePerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "INSTANCE_NAME",
      "preservedState" : {
        "internalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        "externalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        ...
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Jika konfigurasi per instance sudah ada untuk instance tertentu, gunakan metode instanceGroupManagers.patchPerInstanceConfigs atau metode regionInstanceGroupManagers.patchPerInstanceConfigs dengan konfigurasi stateful untuk satu atau beberapa alamat IP:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "INSTANCE_NAME",
      "preservedState" : {
        "internalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        "externalIPs": {
          "NI_NAME" : {
            "ipAddress": {
              "address": "ADDRESS",
              "literal": "LITERAL"
            },
            "autoDelete": "DELETE_RULE"
          },
          ...
        },
        ...
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Ganti kode berikut:

  • PROJECT_ID: Project ID untuk permintaan.
  • NAME: Nama MIG.
  • REGION: Untuk MIG regional, region tempat grup berada. Untuk MIG zona, ganti regions/REGION dengan zones/ZONE dan tentukan zona tempat MIG berada.
  • INSTANCE_NAME: (Wajib.) Nama instance yang akan dikonfigurasi IP stateful-nya.
  • NI_NAME: (Wajib.) Nama antarmuka jaringan. Antarmuka jaringan utama diberi nama nic0. Jika memiliki beberapa antarmuka jaringan, Anda dapat menentukan beberapa NI_NAMES.
  • ADDRESS: (Opsional.) Alamat IP statis yang akan ditetapkan ke instance dalam format URL reservasi alamat IP statis, misalnya: "projects/example-project/regions/us-east1/addresses/example-ip-name". Anda harus dan hanya dapat menetapkan satu kolom pada satu waktu, baik alamat maupun literal, saat menetapkan alamat IP statis.
  • LITERAL: (Opsional.) Alamat IP statis untuk ditetapkan ke instance dalam format literal. Contoh: "130.211.181.55". Anda harus dan hanya dapat menetapkan satu kolom pada satu waktu, baik alamat atau literal, saat menetapkan alamat IP statis.
    • Jika alamat IP literal yang diberikan belum dicadangkan, MIG akan otomatis membuat pencadangan alamat IP yang sesuai.
    • Jika alamat IP literal yang diberikan dicadangkan, MIG akan menetapkan reservasi ke instance.
  • DELETE_RULE: (Opsional.) Menentukan apa yang akan terjadi pada resource Address statis yang terkait saat instance VM dihapus secara permanen. Opsi yang tersedia adalah sebagai berikut:

    • NEVER: (Default.) Jangan pernah menghapus alamat IP statis. Sebagai gantinya, batalkan penetapan alamat saat penghapusan instance dan pertahankan alamat tersebut.
    • ON_PERMANENT_INSTANCE_DELETION: Menghapus reservasi alamat IP statis saat instance dihapus secara permanen dari grup instance, misalnya, saat Anda menghapus instance secara manual atau mengurangi ukuran grup.
    • Jika dihilangkan, nilai default akan ditetapkan untuk konfigurasi IP stateful baru; nilainya tetap tidak berubah dalam konfigurasi yang ada.

    Terlepas dari nilai aturan hapus, grup selalu mempertahankan alamat IP stateful pada operasi autohealing, update, dan pembuatan ulang instance.

  • FINGERPRINT: (Opsional.) Sidik jari untuk konfigurasi yang diberikan jika sudah ada. Digunakan untuk penguncian optimistis. Operasi akan gagal jika sidik jari berbeda dengan yang diberikan, karena menunjukkan bahwa konfigurasi per instance telah diubah sejak terakhir dibaca. Untuk melihat sidik jari terbaru, lihat output metode listPerInstanceConfigs untuk MIG regional atau zona. Jika fingerprint dihilangkan, operasi akan dilanjutkan tanpa perbandingan sidik jari.

Metode updatePerInstanceConfigs dan patchPerInstanceConfigs akan memperbarui konfigurasi per instance yang ditentukan, tetapi tidak menerapkan pembaruan konfigurasi pada instance terkelola terkait. Perubahan tersebut diterapkan ke instance saat MIG diminta untuk membuat ulang atau mengupdate instance. Anda dapat menerapkan update secara manual untuk menerapkan perubahan pada instance.

Contoh

Anda memiliki instance server file bernama file-server, yang merupakan satu instance dalam MIG stateful yang disebut fs-group. Grup ini memiliki konfigurasi per instance yang sesuai, tempat disk data stateful dikonfigurasi. Server file hanya dapat diakses secara internal, tetapi sekarang Anda memiliki pengguna yang perlu mengaksesnya secara eksternal melalui alamat IP statis. Anda telah mencadangkan IP eksternal statis dengan membuat reservasi alamat file-server-ip. Sekarang Anda perlu menetapkan IP ini ke instance server file.

Guna mengupdate konfigurasi per instance untuk file-server dengan IP eksternal stateful baru, panggil metode patchPerInstanceConfigs:

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/fs-group/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "file-server",
      "preservedState" : {
        "externalIPs": {
          "nic0" : {
            "ipAddress": {
              "address": "projects/example-project/regions/us-east1/addresses/file-server-ip"
            },
            "autoDelete": "NEVER"
          }
        }
      }
    }
  ]
}

Metode ini men-patch konfigurasi per instance untuk instance file-server:

  1. Menambahkan konfigurasi IP eksternal stateful, yang mengarah ke reservasi alamat file-server-ip.
  2. Mempertahankan konfigurasi disk data stateful yang ada agar tidak berubah.

Update konfigurasi belum diterapkan ke instance VM file-server. MIG akan menerapkan update konfigurasi saat Anda membuat ulang atau menerapkan update ke instance nanti.

Untuk menerapkan update konfigurasi per instance ke instance VM file-server, panggil metode regionInstanceGroupManagers.applyUpdatesToInstances untuk instance tersebut:

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/gs-group/applyUpdatesToInstances

{
  "instances": ["/zones/us-east1-b/instances/file-server"]
}

Metode ini menetapkan alamat IP eksternal statis yang dikonfigurasi dari reservasi file-server-ip ke instance terkelola. Metode ini memuat ulang instance file-server untuk menetapkan alamat IP eksternal.

Karena autoDelete ditetapkan ke NEVER dalam konfigurasi IP stateful, IP akan tetap dicadangkan jika Anda menghapus instance nanti.

Memisahkan alamat IP statis dari VM yang ada di MIG

Anda mungkin perlu memisahkan alamat IP statis dari VM yang ada, sehingga antarmuka jaringan menjadi singkat untuk VM. Hal ini berguna dalam skenario berikut:

  • Anda merancang ulang aplikasi agar tidak lagi mengandalkan alamat IP statis.
  • Anda tidak sengaja mengonfigurasi IP agar menjadi stateful dan ingin mengembalikannya.

Anda dapat memisahkan alamat IP statis dari VM yang ada di MIG dan membuat alamat IP sementara untuk setiap VM dengan menghapus konfigurasi stateful IP dari konfigurasi per instance terkait atau menghapusnya seluruh konfigurasi per instance jika tidak berisi status lain. Menerapkan perubahan memiliki efek berikut:

  • Alamat IP tetap aktif di instance, tetapi tidak lagi stateful.
  • Saat Anda membuat ulang atau mengupdate instance, atau saat instance dipulihkan secara otomatis, MIG membatalkan penetapan reservasi alamat IP statis terkait dan otomatis menetapkan alamat sementara.
  • Setelah ditetapkan, alamat IP statis akan tetap dicadangkan.

Menghapus konfigurasi IP stateful dari konfigurasi per instance tidak akan mengganggu instance VM yang berjalan, kecuali jika Anda secara eksplisit memilih untuk melakukannya.

Untuk mempelajari lebih lanjut, lihat dokumen berikut:

gcloud

Untuk menghapus konfigurasi IP stateful dari konfigurasi per instance yang terkait, gunakan perintah gcloud compute instance-groups managed instance-configs update dengan flag --remove-stateful-internal-ips atau --remove-stateful-external-ips:

gcloud compute instance-groups managed instance-configs update INSTANCE_GROUP_NAME \
    --instance INSTANCE_NAME \
    --remove-stateful-internal-ips NI_NAME[,NI_NAME,...] \
    --remove-stateful-external-ips NI_NAME[,NI_NAME,...]
    [--no-update-instance | --update-instance] \
    [--instance-update-minimal-action MINIMAL_ACTION]

Ganti kode berikut:

  • INSTANCE_GROUP_NAME: Nama MIG.
  • INSTANCE_NAME: (Wajib.) Nama instance yang konfigurasi IP stateful-nya akan dihapus.
  • NI_NAME: (Wajib.) Nama antarmuka jaringan. Antarmuka jaringan utama diberi nama nic0. Jika memiliki beberapa antarmuka jaringan, Anda dapat menentukan beberapa NI_NAMES.
  • --update-instance: (Opsional. Default.) Segera terapkan perubahan ke instance. Jika Anda menggunakan tanda --no-update-instance, perubahan tetap tidak diterapkan dan akan diterapkan saat Anda membuat ulang atau menerapkan update ke instance di lain waktu.
  • MINIMAL_ACTION: (Opsional.) Lakukan setidaknya tindakan yang ditentukan saat menerapkan update konfigurasi per instance ke instance. Flag ini hanya dapat digunakan bersama dengan flag --update-instance. Nilainya harus berupa salah satu dari berikut ini:

    • none: Tidak ada tindakan.
    • refresh: Menerapkan update yang dapat diterapkan tanpa menghentikan instance.
    • restart: Menghentikan instance, lalu memulainya lagi.
    • replace: Membuat ulang instance.

    Jika dihilangkan, tindakan yang paling tidak mengganggu yang diperlukan oleh update akan digunakan.

Contoh

Aplikasi Anda telah diekspos kepada pengguna melalui alamat IP eksternal statis tertentu yang dipublikasikan dari instance VM dalam MIG yang disebut example-group. Anda telah mendesain ulang layanan dengan men-deploy load balancer di depan MIG dan mengarahkan traffic ke VM terkelola melalui MIG tersebut. Anda tidak perlu lagi mempertahankan alamat IP eksternal statis dan ingin membuat alamat IP eksternal VM bersifat sementara.

Untuk membuat alamat IP eksternal stateful pada VM dalam sementara MIG, jalankan perintah berikut untuk setiap instance, misalnya, untuk node-1:

gcloud compute instance-groups managed instance-configs update example-group \
    --instance node-1 \
    --remove-stateful-external-ips nic0 \
    --update-instance

Perintah tersebut melakukan hal berikut:

  1. Menghapus konfigurasi stateful untuk alamat IP eksternal dalam antarmuka jaringan nic0 dari konfigurasi per instance untuk node-1.
  2. Menerapkan pembaruan konfigurasi per instance ke instance VM node-1 segera karena flag --update-instance disertakan. Instance VM tidak terganggu dan tetap menyajikan dari IP yang sama, yang tidak lagi stateful. MIG menghapus referensi ke reservasi IP statis dari preservedStateFromConfig instance terkelola dan memperlakukan alamat IP eksternal sebagai sementara. MIG akan otomatis menetapkan IP eksternal pada peristiwa pembuatan ulang, update, atau autohealing instance berikutnya.
  3. Setelah dibatalkan, IP statis asli tetap dicadangkan. Anda dapat melepaskan IP jika tidak lagi membutuhkannya.

REST

Untuk menghapus konfigurasi IP stateful dari konfigurasi per instance yang terkait, gunakan metode instanceGroupManagers.patchPerInstanceConfigs atau metode regionInstanceGroupManagers.patchPerInstanceConfigs.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "INSTANCE_NAME",
      "preservedState" : {
        "internalIPs": {
          "NI_NAME" : null
        },
        "externalIPs": {
          "NI_NAME" : null
        }
      },
      "fingerprint: "FINGERPRINT"
    },
    ...
  ]
}

Ganti kode berikut:

  • PROJECT_ID: Project ID untuk permintaan.
  • NAME: Nama MIG.
  • REGION: Untuk MIG regional, region tempat grup berada. Untuk MIG zona, ganti regions/REGION dengan zones/ZONE dan tentukan zona tempat MIG berada.
  • INSTANCE_NAME: (Wajib.) Nama instance yang konfigurasi IP stateful-nya akan dihapus.
  • NI_NAME: (Wajib.) Nama antarmuka jaringan. Antarmuka jaringan utama diberi nama nic0. Jika memiliki beberapa antarmuka jaringan, Anda dapat menentukan beberapa NI_NAMES.
  • FINGERPRINT: (Opsional.) Sidik jari untuk konfigurasi yang diberikan jika sudah ada. Digunakan untuk penguncian optimistis. Operasi akan gagal jika sidik jari berbeda dengan yang diberikan, karena menunjukkan bahwa konfigurasi per instance telah diubah sejak terakhir dibaca. Untuk melihat sidik jari terbaru, lihat output metode listPerInstanceConfigs untuk MIG regional atau zona. Jika fingerprint dihilangkan, operasi akan dilanjutkan tanpa perbandingan sidik jari.

Metode patchPerInstanceConfigs memperbarui konfigurasi per instance yang ditentukan, tetapi tidak menerapkan pembaruan konfigurasi ke instance terkelola yang terkait. Perubahan tersebut diterapkan ke instance saat MIG diminta untuk membuat ulang atau mengupdate instance. Anda dapat menerapkan update secara manual untuk menerapkan perubahan pada instance.

Contoh

Aplikasi Anda telah diekspos kepada pengguna melalui alamat IP eksternal statis tertentu yang dipublikasikan dari instance VM dalam MIG yang disebut example-group. Anda telah mendesain ulang layanan dengan men-deploy load balancer di depan MIG dan mengarahkan traffic ke VM terkelola melalui MIG tersebut. Anda tidak perlu lagi mempertahankan alamat IP eksternal statis dan ingin membuat alamat IP eksternal VM bersifat sementara.

Untuk membuat alamat IP eksternal stateful pada VM dalam sementara MIG, jalankan metode berikut untuk setiap instance, misalnya, untuk node-1, dan berikan nilai null ke konfigurasi stateful antarmuka jaringan:

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group/patchPerInstanceConfigs

{
  "perInstanceConfigs": [
    {
      "name": "node-1",
      "preservedState" : {
        "externalIPs": {
          "nic0" : null
        }
      }
    }
  ]
}

Metode ini menghapus konfigurasi untuk alamat IP stateful dalam antarmuka jaringan nic0 dari konfigurasi per instance untuk node-1. Update konfigurasi belum diterapkan ke instance VM node-1. MIG menerapkan update konfigurasi pada pembuatan ulang atau update instance berikutnya.

Untuk menerapkan update konfigurasi per instance ke instance VM node-1, jalankan metode regionInstanceGroupManagers.applyUpdatesToInstances untuk instance tersebut:

POST https://compute.googleapis.com/compute/v1/projects/example-project/regions/us-east1/instanceGroupManagers/example-group/applyUpdatesToInstances

{
  "instances": ["/zones/us-east1-c/instances/node-1"]
}

MIG menghapus referensi ke reservasi IP statis dari kolom preservedStateFromConfig untuk instance node-1 dan memperlakukan alamat IP sebagai sementara. MIG akan otomatis menetapkan IP eksternal pada peristiwa pembuatan ulang, update, atau autohealing instance berikutnya.

Setelah dibatalkan, IP statis asli tetap dicadangkan. Anda dapat melepaskan IP jika tidak lagi membutuhkannya.

Menghapus konfigurasi stateful

Untuk menghapus konfigurasi dari kebijakan stateful untuk semua VM di MIG, lihat dokumen berikut:

Untuk menghapus konfigurasi dari konfigurasi per instance untuk VM tertentu dalam MIG, lihat dokumen berikut:

Membersihkan alamat IP statis yang tidak digunakan

Saat mengonfigurasi alamat IP stateful untuk instance terkelola dalam grup, Anda dapat memilih apakah akan merilis reservasi alamat IP statis terkait secara manual atau secara otomatis saat instance dihapus secara permanen:

  • Untuk otomatis merilis reservasi alamat IP statis pada penghapusan instance permanen, tetapkan parameter autoDelete ke ON_PERMANENT_INSTANCE_DELETION.
  • Untuk merilis reservasi alamat IP statis secara manual, setel parameter autoDelete ke NEVER. Untuk menghapus reservasi alamat IP statis yang tidak digunakan, misalnya, untuk menghindari biaya yang tidak perlu, lihat dokumen berikut:

Jika Anda telah menginstruksikan MIG untuk tidak pernah menghapus reservasi IP terkait, alamat IP statis akan tetap dicadangkan setelah instance terkait atau MIG tidak lagi ada.

Masukan

Kami ingin mempelajari kasus penggunaan, tantangan, dan masukan Anda tentang MIG stateful. Anda dapat memberikan masukan kepada tim kami di mig-discuss@google.com.

Langkah selanjutnya