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
-
Jika Anda belum melakukannya, siapkan autentikasi.
Autentikasi adalah
proses verifikasi identitas Anda untuk mengakses layanan dan API Google Cloud.
Untuk menjalankan kode atau contoh dari lingkungan pengembangan lokal, Anda dapat mengautentikasi ke Compute Engine dengan memilih salah satu opsi berikut:
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
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:
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.Pantau update dengan menggunakan subperintah
wait-until
untuk memeriksa apakah kolomstatus.versionTarget.isReached
MIG ditetapkan ketrue
.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.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:
- Buat template instance untuk memudahkan update OS image:
- Tentukan kelompok image kustom di template instance.
- Buat MIG berdasarkan template.
- Siapkan health check untuk membatasi gangguan karena update image.
- Tambahkan image baru ke kelompok image.
- Panggil update OS dengan satu perintah.
- Pantau update.
Gunakan langkah-langkah berikut untuk mengaktifkan dan melakukan upgrade OS sekali klik di MIG:
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
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
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.
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"
Buat aturan firewall untuk mengizinkan pemeriksaan health checker mengakses instance. Pemeriksaan health checker berasal dari alamat dalam rentang:
130.211.0.0/22
dan35.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
Tambahkan health check ke MIG Anda.
gcloud compute instance-groups managed update example-group \ --zone us-east1-b --health-check example-autohealer-check
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 menjadimy-image-v2
, yang didasarkan pada disk sumberboot-disk-1
.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 mengonfigurasi tingkat 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
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
Jika perlu melakukan rollback ke image sebelumnya, lakukan langkah-langkah berikut:
- Buat template instance baru yang menentukan image yang Anda inginkan.
- Mulai update berkelanjutan untuk menerapkan template instance.
Langkah selanjutnya
- Pelajari praktik terbaik kelompok image lebih lanjut.
- Pelajari lebih lanjut group instance.
- Pelajari template instance lebih lanjut.
- Pelajari lebih lanjut update berkelanjutan di MIG.