Dokumen ini menjelaskan praktik terbaik dan strategi untuk mengupgrade sistem operasi pada instance Compute Engine. Pelajari cara mengupgrade versi OS utama menggunakan infrastruktur yang tidak dapat diubah, pembuatan ulang instance, atau alur kerja di tempat, dan cara mengotomatiskan penerapan patch keamanan rutin.
Saat versi sistem operasi mendekati akhir dukungan (EOS) atau akhir siklus proses (EOL), Anda harus mengupgrade ke versi OS yang didukung untuk mempertahankan update keamanan, kompatibilitas software, dan integrasi platform. Cloud de Confiance by S3NS Untuk mengetahui informasi selengkapnya tentang fase dukungan, lihat Siklus proses sistem operasi.
Risiko upgrade versi OS utama di tempat
Jika Anda melakukan upgrade di tempat sistem operasi utama—seperti mengupgrade Debian 12 ke 13, RHEL 9 ke 10, atau Ubuntu 24.04 ke 26.04 pada instance komputasi yang sedang berjalan—maka Anda akan menimbulkan risiko operasional yang signifikan di lingkungan cloud. Tidak seperti server fisik lokal, instance komputasi Anda bergantung pada paket khusus untuk lingkungan tamu agar dapat berkomunikasi dengan hypervisor dan server metadata Compute Engine.
Saat mengupgrade sistem operasi di tempat, Anda berisiko mengalami mode kegagalan berikut:
- Hilangnya konektivitas SSH dan RDP: Format konfigurasi untuk layanan jaringan, aturan firewall tingkat tamu, seperti ufw atau firewalld, atau setelan daemon SSH dapat berubah di antara versi OS, sehingga menghentikan akses administratif jarak jauh.
- Gangguan pada lingkungan tamu: Paket
google-guest-agentdangoogle-osloginmengelola kunci SSH, akun pengguna, antarmuka jaringan, dan sinkronisasi dengan metadata. Jika repositori atau dependensi paket rusak selama upgrade distribusi, agen tamu mungkin berhenti berjalan, sehingga mencegah login lebih lanjut atau konfigurasi jaringan. - Inkompatibilitas dengan driver penyimpanan dan kernel: Perubahan pada
kernel,
initramfs, atau driver untuk pengontrol disk (seperti virtio-scsi atau NVMe) dapat menyebabkan kegagalan booting atau mencegah instance komputasi mengenali volume Persistent Disk yang terpasang. - Konfigurasi yang tidak konsisten untuk repositori: Vendor sistem operasi sering menghentikan penggunaan atau mengganti repositori paket lama dan kunci penandatanganan, yang dapat menyebabkan pengelola paket gagal di tengah upgrade dan membuat sistem operasi dalam keadaan setengah terinstal yang tidak dapat dipulihkan.
Untuk menghindari risiko ini, gunakan model infrastruktur yang tidak dapat diubah, bukan mengupgrade versi OS utama di tempat pada instance komputasi produksi Anda.
Memilih strategi upgrade yang tepat
Bergantung pada apakah workload Anda stateless atau stateful, pilih salah satu strategi berikut:
| Strategi | Direkomendasikan untuk | Risiko periode nonaktif | Mekanisme rollback |
|---|---|---|---|
| Infrastruktur yang tidak dapat diubah | Workload stateless, grup instance terkelola (MIG), microservice, host container | Tanpa periode nonaktif dengan penggantian bertahap | Mengembalikan template instance ke image sebelumnya |
| Membuat ulang instance Compute dengan Persistent Disk | Instance komputasi mandiri stateful, database dengan penyimpanan sekunder terlampir, host aplikasi lama | Minimal dengan masa pemeliharaan terencana | Pasang kembali disk ke instance komputasi asli atau pulihkan snapshot |
| Upgrade OS di tempat | Instance komputasi mandiri tempat Anda tidak dapat mengotomatiskan atau mengekstrak konfigurasi lokal | Tinggi, memerlukan waktu non-operasional dan perencanaan pemulihan manual | Memulihkan dari snapshot Persistent Disk |
Infrastruktur yang tidak dapat diubah
Cara teraman dan paling andal untuk mengupgrade sistem operasi Anda adalah dengan menggunakan model infrastruktur yang tidak dapat diubah. Daripada mengubah instance komputasi yang sedang berjalan, Anda membuat instance komputasi baru dari image OS publik atau kustom yang telah diupdate dan mengganti instance lama Anda.
Jika workload Anda berjalan di grup instance terkelola (MIG), Anda dapat mengotomatiskan peluncuran ini tanpa waktu henti layanan.
Membuat gambar yang diperbarui
- Pilih image OS publik terbaru dari daftar Detail sistem operasi yang didukung, atau buat image dasar kustom menggunakan Image Builder atau alat otomatis seperti Packer atau Ansible.
- Pastikan aplikasi dan dependensi Anda berhasil diinstal dan dijalankan di versi OS baru dalam lingkungan pengujian non-produksi.
- Buat image OS kustom atau rujuk kelompok image publik baru. Untuk mengetahui informasi selengkapnya, lihat Praktik terbaik kelompok image.
Membuat template instance yang diperbarui
Buat template instance baru yang merujuk ke image OS yang telah diupdate:
gcloud compute instance-templates create NEW_TEMPLATE_NAME \
--image-family=IMAGE_FAMILY \
--image-project=IMAGE_PROJECT \
--machine-type=MACHINE_TYPE \
--region=REGION
Ganti kode berikut:
NEW_TEMPLATE_NAME: nama untuk template instance baru.IMAGE_FAMILY: kelompok image OS target, sepertidebian-12atauubuntu-2404-lts.IMAGE_PROJECT: project yang menghosting gambar, sepertidebian-cloudatauubuntu-os-cloud.MACHINE_TYPE: jenis mesin untuk instance Anda.REGION: region Compute Engine tempat Anda membuat template.
Melakukan penggantian bertahap di MIG
Terapkan template yang diupdate ke grup instance terkelola Anda dan mulai penggantian berkelanjutan:
gcloud compute instance-groups managed rolling-action replace MIG_NAME \
--max-surge=20% \
--max-unavailable=0 \
--region=REGION
Ganti kode berikut:
MIG_NAME: nama grup instance terkelola Anda.REGION: region tempat MIG Anda berada. Untuk MIG zona, ganti--region=REGIONdengan--zone=ZONE.
Membuat ulang instance komputasi dengan Persistent Disk
Jika Anda menjalankan instance komputasi mandiri stateful tempat aplikasi menyimpan konfigurasi dan data pada volume Persistent Disk, Anda dapat mengupgrade sistem operasi dengan membuat ulang instance komputasi dengan boot disk baru sambil mempertahankan disk data Anda.
Mencadangkan semua disk
Sebelum memodifikasi infrastruktur, buat snapshot standar atau regional dari boot disk dan semua volume Persistent Disk yang terpasang:
gcloud compute disks snapshot BOOT_DISK_NAME \
--snapshot-names=SNAPSHOT_NAME \
--zone=ZONE
Ganti kode berikut:
BOOT_DISK_NAME: nama boot disk yang akan dicadangkan.SNAPSHOT_NAME: nama untuk snapshot Persistent Disk baru.ZONE: zona tempat disk berada.
Untuk mengetahui informasi selengkapnya, lihat Membuat dan mengelola snapshot.
Memisahkan data aplikasi dari boot disk
Pastikan data aplikasi, file database, dan log transaksi berada di volume Persistent Disk sekunder atau layanan eksternal, seperti Cloud Storage atau Cloud SQL, bukan di disk booting.
Buat instance komputasi pengganti
Hentikan instance komputasi lama untuk memastikan data tetap konsisten:
gcloud compute instances stop LEGACY_INSTANCE_NAME --zone=ZONE
Lepaskan disk data sekunder dari instance komputasi lama:
gcloud compute instances detach-disk LEGACY_INSTANCE_NAME \ --disk=DATA_DISK_NAME \ --zone=ZONEBuat instance komputasi baru dengan versi OS target:
gcloud compute instances create NEW_INSTANCE_NAME \ --image-family=IMAGE_FAMILY \ --image-project=IMAGE_PROJECT \ --zone=ZONE \ --machine-type=MACHINE_TYPEPasang disk data sekunder yang ada ke instance komputasi baru:
gcloud compute instances attach-disk NEW_INSTANCE_NAME \ --disk=DATA_DISK_NAME \ --zone=ZONEHubungkan ke instance komputasi baru, pasang sistem file di disk data, dan mulai layanan aplikasi Anda.
Jika perlu, tetapkan ulang alamat IP eksternal statis atau data DNS untuk mengarah ke instance komputasi baru.
Ganti kode berikut:
LEGACY_INSTANCE_NAME: nama instance komputasi yang ada yang Anda upgrade.DATA_DISK_NAME: nama volume Persistent Disk sekunder yang akan dilepas dan dipasang kembali.NEW_INSTANCE_NAME: nama untuk instance komputasi pengganti baru.IMAGE_FAMILY: kelompok image untuk versi OS target, sepertidebian-13atauubuntu-2604-lts.IMAGE_PROJECT: project yang menyediakan gambar, sepertidebian-cloudatauubuntu-os-cloud.MACHINE_TYPE: jenis mesin untuk instance komputasi baru.ZONE: zona tempat instance komputasi Anda berada.
Upgrade OS di tempat
Jika Anda tidak dapat membuat ulang instance komputasi karena konfigurasi manual yang rumit, dan Anda harus melakukan upgrade di tempat, selesaikan pemeriksaan pra-upgrade ini dan ikuti petunjuk khusus distribusi dengan cermat.
Checklist pra-upgrade
Selesaikan setiap langkah dalam checklist ini sebelum memulai upgrade langsung:
- Ambil snapshot disk booting sebelum menjalankan perintah upgrade apa pun. Ini adalah mekanisme pemulihan utama Anda jika upgrade gagal.
Update semua paket saat ini dan lingkungan tamu untuk Cloud de Confiance ke versi terbaru yang tersedia untuk rilis OS Anda saat ini:
- Untuk Debian dan Ubuntu:
sudo apt update && sudo apt dist-upgrade -y - Untuk RHEL, CentOS, dan Rocky Linux:
sudo dnf upgrade -y - Untuk SLES:
sudo zypper update
Pastikan paket
google-guest-agentdangoogle-osloginaktif:sudo systemctl status google-guest-agent
- Untuk Debian dan Ubuntu:
Aktifkan konsol serial interaktif di instance komputasi Anda agar Anda dapat memecahkan masalah dan login jika SSH atau jaringan berhenti berfungsi selama upgrade:
gcloud compute instances add-metadata INSTANCE_NAME \ --metadata=serial-port-enable=TRUE \ --zone=ZONEGanti kode berikut:
INSTANCE_NAME: nama instance komputasi Anda.ZONE: zona tempat instance komputasi Anda berada.
Untuk mengetahui informasi selengkapnya, lihat Berinteraksi dengan konsol serial.
Jika Anda menggunakan Login OS atau kunci SSH yang dikelola oleh agen tamu, tetapkan sandi untuk akun pengguna lokal dengan hak istimewa administratif, seperti dengan
sudo passwd USERNAME, sehingga Anda dapat login melalui konsol serial jika Login OS tidak tersedia untuk sementara selama upgrade. GantiUSERNAMEdengan nama akun pengguna lokal Anda.Pastikan partisi root
/dan partisi boot/bootmemiliki ruang kosong yang cukup, dengan minimal 5 GB yang direkomendasikan, untuk mendownload dan mengekstrak paket baru:df -h / /boot
Pastikan agen pihak ketiga untuk keamanan, pencadangan, atau pemantauan (termasuk Agen Operasi Google Cloud) mendukung versi target sistem operasi.
Prosedur upgrade di tempat
Bagian berikut memberikan alur kerja tingkat tinggi untuk sistem operasi umum. Selalu lihat dokumentasi upgrade resmi untuk sistem operasi Anda sebelum melakukan upgrade.
Debian
Anda dapat mengupgrade Debian di antara rilis utama yang berurutan. Jangan lewati versi utama—misalnya, upgrade Debian 11 ke 12 terlebih dahulu, lalu upgrade Debian 12 ke 13.
Perbarui repositori paket Debian yang ada:
sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y
Perbarui sumber paket di
/etc/apt/sources.listdan/etc/apt/sources.list.d/dengan mengganti nama kode rilis saat ini, sepertibullseye, dengan nama kode rilis target, sepertibookworm. Pastikan URL repositori paket Cloud de Confiance sesuai dengan rilis baru.Lakukan upgrade minimal untuk mengupdate alat pengemasan inti:
sudo apt update sudo apt upgrade --without-new-pkgs -y
Jalankan upgrade distribusi penuh:
sudo apt full-upgrade -y
Pastikan
google-guest-agentaktif dan diaktifkan:sudo systemctl enable --now google-guest-agent
Mulai ulang instance komputasi:
sudo systemctl reboot
Ubuntu
Untuk mengelola upgrade LTS ke LTS di Ubuntu, gunakan alat do-release-upgrade.
Perbarui semua paket saat ini:
sudo apt update && sudo apt dist-upgrade -y
Instal paket inti untuk pengelola update:
sudo apt install update-manager-core -y
Mulai alat untuk upgrade rilis:
sudo do-release-upgrade
Ikuti perintah interaktif untuk mengonfirmasi pembaruan repositori dan penggantian paket. Jika diminta untuk mengubah file konfigurasi yang telah dimodifikasi, tinjau perbedaannya dengan cermat sebelum menimpa.
Mulai ulang instance komputasi saat diminta.
RHEL
Untuk mengupgrade antar-versi utama RHEL, gunakan utilitas leapp
Red Hat yang didukung.
- Verifikasi status langganan Red Hat Anda dan pastikan instance komputasi terhubung ke Infrastruktur Update Red Hat (RHUI) Compute Engine.
- Instal utilitas Leapp dan paket yang berisi data migrasi.
Jalankan penilaian pra-upgrade:
sudo leapp preupgrade
Tinjau laporan di
/var/log/leapp/leapp-report.txtdan selesaikan semua masalah penghambat yang diidentifikasi Leapp.Lakukan upgrade:
sudo leapp upgrade
Mulai ulang instance agar Leapp dapat melakukan upgrade OS di lingkungan yang terisolasi:
sudo reboot
SLES
Untuk melakukan migrasi paket layanan versi utama dan upgrade distribusi di
SLES, gunakan zypper:
Perbarui sistem yang ada:
sudo zypper patch
Jalankan
zypper migrationuntuk melakukan migrasi online, atau ikuti alur kerja upgrade distribusi, menggunakanzypper dup, yang ditentukan dalam dokumentasi upgrade SLES.
Windows
Untuk instance komputasi Windows Server, Anda dapat menggunakan media penginstalan dengan skrip PowerShell dan lisensi volume Compute Engine untuk mengotomatiskan upgrade tanpa intervensi manual.
Untuk melakukan upgrade di tempat pada Windows Server, ikuti tutorial untuk melakukan upgrade di tempat Windows Server.
Mengotomatiskan pengelolaan patch untuk update kecil
Membedakan upgrade versi OS utama dari update minor rutin dan patch keamanan. Untuk pemeliharaan rutin software, update paket, dan penerapan patch CVE, gunakan Patch VM Manager untuk mengotomatiskan deployment patch di seluruh armada instance komputasi Anda.
Ikuti praktik terbaik berikut untuk mengelola patch secara otomatis:
- Mengatur instance dengan label: Tetapkan label dengan metadata, seperti
env:dev,env:prod, dantier:frontend, untuk menargetkan grup tertentu dari instance komputasi untuk patch. - Deploy zona demi zona: Atur tugas patch secara bertahap di seluruh zona dan region. Jangan pernah menerapkan tugas patch ke semua zona secara bersamaan di lingkungan produksi.
- Gunakan skrip pra-patch dan pasca-patch: Konfigurasi skrip pra-patch untuk menghentikan koneksi atau menjeda layanan dengan aman, dan konfigurasi skrip pasca-patch untuk menjalankan pemeriksaan kondisi sebelum mengembalikan instance ke layanan.
- Memantau kepatuhan patch: Gunakan dasbor untuk VM Manager di konsolCloud de Confiance untuk melacak kepatuhan terhadap patch dan status kerentanan di seluruh kumpulan instance komputasi Anda.
Untuk mengetahui informasi selengkapnya, lihat Membuat tugas patch.
Verifikasi dan pemecahan masalah pasca-upgrade
Setelah menyelesaikan upgrade, lakukan langkah-langkah verifikasi berikut:
- Pastikan SSH atau RDP terhubung secara normal.
Pastikan agen tamu dan layanan untuk Login OS aktif dan melaporkan status sehat:
sudo systemctl status google-guest-agent sudo systemctl status google-oslogin-cache
Verifikasi bahwa instance komputasi dapat membuat kueri server metadata instance:
curl -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/id
Pastikan layanan aplikasi Anda dimulai dan health check dari load balancer melaporkan instance yang responsif.
Memecahkan masalah hilangnya koneksi
Jika Anda kehilangan akses SSH atau RDP ke instance komputasi setelah upgrade di tempat, selesaikan langkah-langkah pemecahan masalah berikut:
Periksa log konsol untuk melihat kernel panic, error selama startup layanan, atau kegagalan selama inisialisasi jaringan:
gcloud compute instances tail-serial-port-output INSTANCE_NAME \ --zone=ZONEJika Anda mengaktifkan serial console interaktif sebelum upgrade, hubungkan langsung ke terminal:
gcloud compute connect-to-serial-port INSTANCE_NAME \ --zone=ZONELogin menggunakan kredensial pengguna lokal Anda, periksa log sistem dengan
journalctl -xe, dan mulai ulang jaringan atau layanangoogle-guest-agent.Ganti kode berikut:
INSTANCE_NAME: nama instance komputasi yang Anda pecahkan masalahnya.ZONE: zona tempat instance komputasi berada.
Jika sistem operasi tidak dapat melakukan booting atau memulihkan, buat volume Persistent Disk baru dari snapshot yang Anda ambil sebelum upgrade dan pasang sebagai boot disk instance komputasi. Untuk langkah-langkah pemulihan yang mendetail, lihat Memulihkan snapshot ke disk baru.