Melakukan upgrade OS image sekali klik di MIG


Dengan menggunakan kombinasi kelompok image kustom dan update berkelanjutan, Anda dapat mengaktifkan upgrade OS image sekali klik pada grup instance terkelola (MIG).

Menggunakan upgrade OS image sekali klik akan memberikan sejumlah manfaat, antara lain:

  • Berfungsi dengan semua jenis mesin VM dan semua ukuran grup instance.
  • Mendukung image dan container Windows dan Linux.
  • Instance dibuat ulang berdasarkan template instance-nya saat ini, atau secara opsional, berdasarkan template baru, sehingga Anda dapat mempertahankan metadata dan skrip startup kustom.
  • Works with stateful MIGs, so you can optionally preserve data on non-boot disk.
  • Peluncuran update ke versi OS baru terjadi secara otomatis, tanpa memerlukan input pengguna tambahan setelah permintaan awal.
  • Mendukung update batch dengan health check opsional.

Sebelum memulai

  • 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.
    1. Instal Google Cloud CLI, lalu initialize dengan menjalankan perintah berikut:

      gcloud init
    2. Menetapkan region dan zona default.

Bagaimana cara kerja upgrade OS image sekali klik?

Saat Anda memanggil update, MIG akan mengganti boot disk untuk semua VM dalam grup dengan versi image OS terbaru yang tersedia dari kelompok image kustom Anda. MIG menyimpan metadata dan skrip startup yang Anda siapkan di template instance untuk setiap VM dalam grup. Non-boot disk dibuat ulang berdasarkan spesifikasinya di template instance. Untuk informasi tentang cara mempertahankan data, lihat Mengonfigurasi disk stateful di MIG.

Untuk membatasi gangguan aplikasi, Anda dapat melakukan update dalam batch, dengan menjaga persentase VM tertentu berjalan selama update. Untuk meningkatkan keandalan, Anda dapat mengonfigurasi health check berbasis aplikasi untuk MIG Anda: grup menunggu respons yang baik dari aplikasi di VM yang diupdate sebelum melanjutkan update lebih lanjut pada VM lainnya.

Sebelum memulai

  • Instal Google Cloud CLI atau update ke versi terbaru.

  • Pastikan Anda telah membuat template instance yang mengarah ke kelompok image. Google merekomendasikan agar Anda menggunakan kelompok image kustom untuk mengurangi risiko peluncuran versi image yang tidak kompatibel dengan aplikasi Anda. Anda dapat memastikan bahwa hanya versi image kompatibel yang akan diluncurkan dengan menambahkan gambar ke kelompok image kustom hanya setelah pengujian kompatibilitas dengan aplikasi Anda.

    Jika template instance Anda mengarah ke kelompok image, MIG akan selalu membuat instance dari image terbaru dalam kelompok tersebut, misalnya:

    • Saat MIG menambahkan instance baru karena Anda atau autoscaler MIG meningkatkan ukuran MIG.
    • Saat MIG membuat ulang instance, yang dipicu secara manual atau dengan autohealing.
  • Uji image baru dengan aplikasi Anda sebelum menambahkannya ke kelompok image dan meluncurkannya.

  • Atau, buat health check berbasis aplikasi untuk MIG Anda. Health check berbasis aplikasi akan memverifikasi bahwa aplikasi Anda merespons seperti yang diharapkan pada setiap VM di MIG. Anda dapat mengonfigurasi update agar tidak mengizinkan lebih dari satu VM yang tidak tersedia. Jika aplikasi tidak merespons seperti yang diharapkan, MIG akan menandai VM tersebut sebagai tidak tersedia, dan peluncuran Anda tidak akan dilanjutkan.

Melakukan upgrade OS image sekali klik untuk MIG

Untuk mengupdate semua VM dalam MIG ke image terbaru dari kelompok image kustom, lakukan langkah-langkah berikut:

  1. Mulai penggantian berkelanjutan dengan perintah berikut.

    gcloud compute instance-groups managed rolling-action replace instance-group-name \
        [--max-surge=max-surge ] [--max-unavailable=max-unavailable]

    Ganti kode berikut:

    • instance-group-name: nama MIG yang akan beroperasi.
    • max-surge: jumlah maksimum VM tambahan yang dapat dibuat sementara selama proses update. Ini dapat berupa angka tetap (misalnya, 5) atau persentase ukuran MIG (misalnya, 10%).
    • max-unavailable: jumlah maksimum VM yang tidak tersedia selama proses update. Ini dapat berupa angka tetap (5) atau persentase ukuran MIG (10%).

    Anda dapat menggabungkan health check menggunakan opsi--max-unavailable dan --max-surge untuk menghentikan update lebih lanjut jika VM tidak tersedia.

  2. Pantau update dengan menggunakan subperintah wait-until untuk memeriksa apakah kolom status.versionTarget.isReached MIG ditetapkan ke true.

    gcloud compute instance-groups managed wait-until instance-group-name --version-target-reached

    Ganti kode berikut:

    • instance-group-name: nama MIG yang akan beroperasi.

    Perintah akan ditampilkan saat grup diperbarui.

    Anda juga dapat mencantumkan instance untuk melihat status setiap instance.

    gcloud compute instance-groups managed list-instances instance-group-name

    Perintah ini menampilkan daftar instance dan detailnya, termasuk status, status kesehatan, dan tindakan saat ini untuk setiap VM. Jika semua VM adalah RUNNING dan tidak ada tindakan saat ini, berarti MIG sudah yang terbaru dan stabil.

  3. Jika perlu melakukan roll back ke image OS sebelumnya, Anda harus membuat template instance dan menentukan image yang ingin digunakan. Kemudian, mulai update berkelanjutan untuk mengupdate semua instance terkelola agar menggunakan template tersebut. Untuk informasi selengkapnya, lihat Update roll back.

Contoh

Contoh ini mencakup tugas-tugas berikut:

  1. Buat template instance untuk memudahkan update OS image:
  2. Buat MIG berdasarkan template.
  3. Siapkan health check untuk membatasi gangguan karena update image.
  4. Tambahkan image baru ke kelompok image.
  5. Panggil update OS dengan satu perintah.
  6. Pantau update.

Gunakan langkah-langkah berikut untuk mengaktifkan dan melakukan upgrade OS sekali klik di MIG:

  1. Buat template instance yang menentukan kelompok image kustom. Kelompok image harus berisi image yang diuji dan tepercaya. Setiap VM yang dibuat MIG dari template menggunakan image terbaru yang tersedia dari kelompok ini.

    gcloud compute instance-templates create example-template \
        --machine-type n1-standard-4 \
        --image-family my-image-family \
        --image-project my-project \
        --tags=http-server
    
  2. Buat MIG berdasarkan template instance. Contoh ini memulai MIG dengan tiga instance berdasarkan example-template. Karena template instance menentukan kelompok image, MIG akan membuat setiap VM dengan image terbaru dari kelompok tersebut.

    gcloud compute instance-groups managed create example-group \
      --base-instance-name example \
      --size 3 \
      --zone us-east1-b \
      --template example-template
    
  3. Opsional: Mengonfigurasi dan mengaktifkan health check berbasis aplikasi. Jika aplikasi tidak merespons setelah update image dilakukan, Anda dapat menggunakan status health check yang digabungkan dengan setelan maxUnavailable untuk menghentikan MIG agar tidak diluncurkan lebih lanjut.

    1. Buat health check yang mencari respons 200 HTTP pada jalur permintaan /health. Aplikasi GitHub yang ada di setiap instance menyajikan jalur tersebut.

      gcloud compute health-checks create http example-autohealer-check \
          --check-interval 10 \
          --timeout 5 \
          --healthy-threshold 2 \
          --unhealthy-threshold 3 \
          --request-path "/health"
      
    2. Buat aturan firewall untuk mengizinkan pemeriksaan health checker mengakses instance. Pemeriksaan health checker berasal dari alamat dalam rentang: 130.211.0.0/22 dan 35.191.0.0/16

      gcloud compute firewall-rules create default-allow-http-health-check \
          --network default \
          --allow tcp:80 \
          --source-ranges 130.211.0.0/22,35.191.0.0/16
      
    3. Tambahkan health check ke MIG Anda.

      gcloud compute instance-groups managed update example-group \
          --zone us-east1-b --health-check example-autohealer-check
      
  4. Saat update tersedia, diuji, dan dinyatakan kompatibel dengan aplikasi Anda, buat image baru, dan gunakan flag --family untuk menyertakan image tersebut dalam kelompok image kustom.

    gcloud compute images my-image-v2 \
        --source-disk boot-disk-1 \
        --source-disk-zone us-central1-f \
        --family my-image-family

    Dalam contoh ini, gambar terbaru di my-image-family sekarang menjadi my-image-v2, yang didasarkan pada disk sumber boot-disk-1.

  5. Panggil penggantian berkelanjutan untuk mengganti semua VM di MIG. MIG menggantikan setiap VM berdasarkan template instance grup. Template instance menentukan my-image-family, sehingga setiap VM mendapatkan image terbaru dalam kelompok (my-image-v2).

    Anda dapat configure level gangguan yang disebabkan oleh update. Dalam contoh ini, MIG membuat satu VM tambahan di atas ukuran target grup, dan tidak menghapus VM yang ada sampai satu VM tersebut aktif dan berjalan.

    gcloud compute instance-groups managed rolling-action replace example-group \
        --max-surge 1 --max-unavailable 0
    
  6. Jika Anda ingin memantau status update, gunakan perintah wait-until dengan flag --version-target-reached. Perintah akan ditampilkan saat grup diupdate.

    gcloud compute instance-groups managed wait-until --version-target-reached example-group \
        --zone us-east1-
    Waiting for group to reach version target
    ...
    Version target is reached
    

    Anda juga dapat menggunakan perintah list-instances untuk melihat status, status kesehatan , tindakan saat ini, template instance, dan versi untuk setiap VM.

    gcloud compute instance-groups managed list-instances example-group \
        --zone us-east1-b
    
    
    NAME       ZONE        STATUS   HEALTH_STATE  ACTION     INSTANCE_TEMPLATE  VERSION_NAME                        LAST_ERROR
    test-211p  us-east1-b  RUNNING  HEALTHY       NONE       example-template   0/2020-01-30 13:34:28.843377+00:00
    test-t5qb  us-east1-b  RUNNING  UNKNOWN       VERIFYING  example-template   0/2020-01-30 13:34:28.843377+00:00
    test-x331  us-east1-b  RUNNING  HEALTHY       NONE       example-template   0/2020-01-20 20:39:51.819399+00:00
    
  7. Jika perlu rollback ke gambar sebelumnya, lakukan langkah-langkah berikut:

    1. Buat template instance baru yang menentukan image yang Anda inginkan.
    2. Mulai update berkelanjutan untuk menerapkan template instance.

Langkah selanjutnya