Praktik terbaik upgrade sistem operasi

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-agent dan google-oslogin mengelola 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

  1. 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.
  2. Pastikan aplikasi dan dependensi Anda berhasil diinstal dan dijalankan di versi OS baru dalam lingkungan pengujian non-produksi.
  3. 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, seperti debian-12 atau ubuntu-2404-lts.
  • IMAGE_PROJECT: project yang menghosting gambar, seperti debian-cloud atau ubuntu-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=REGION dengan --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

  1. Hentikan instance komputasi lama untuk memastikan data tetap konsisten:

    gcloud compute instances stop LEGACY_INSTANCE_NAME --zone=ZONE
    
  2. Lepaskan disk data sekunder dari instance komputasi lama:

    gcloud compute instances detach-disk LEGACY_INSTANCE_NAME \
        --disk=DATA_DISK_NAME \
        --zone=ZONE
    
  3. Buat 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_TYPE
    
  4. Pasang disk data sekunder yang ada ke instance komputasi baru:

    gcloud compute instances attach-disk NEW_INSTANCE_NAME \
        --disk=DATA_DISK_NAME \
        --zone=ZONE
    
  5. Hubungkan ke instance komputasi baru, pasang sistem file di disk data, dan mulai layanan aplikasi Anda.

  6. 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, seperti debian-13 atau ubuntu-2604-lts.
  • IMAGE_PROJECT: project yang menyediakan gambar, seperti debian-cloud atau ubuntu-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:

  1. Ambil snapshot disk booting sebelum menjalankan perintah upgrade apa pun. Ini adalah mekanisme pemulihan utama Anda jika upgrade gagal.
  2. 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-agent dan google-oslogin aktif:

    sudo systemctl status google-guest-agent
    
  3. 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=ZONE
    

    Ganti kode berikut:

    • INSTANCE_NAME: nama instance komputasi Anda.
    • ZONE: zona tempat instance komputasi Anda berada.

    Untuk mengetahui informasi selengkapnya, lihat Berinteraksi dengan konsol serial.

  4. 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. Ganti USERNAME dengan nama akun pengguna lokal Anda.

  5. Pastikan partisi root / dan partisi boot /boot memiliki ruang kosong yang cukup, dengan minimal 5 GB yang direkomendasikan, untuk mendownload dan mengekstrak paket baru:

    df -h / /boot
    
  6. 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.

  1. Perbarui repositori paket Debian yang ada:

    sudo apt update && sudo apt upgrade -y && sudo apt dist-upgrade -y
    
  2. Perbarui sumber paket di /etc/apt/sources.list dan /etc/apt/sources.list.d/ dengan mengganti nama kode rilis saat ini, seperti bullseye, dengan nama kode rilis target, seperti bookworm. Pastikan URL repositori paket Cloud de Confiance sesuai dengan rilis baru.

  3. Lakukan upgrade minimal untuk mengupdate alat pengemasan inti:

    sudo apt update
    sudo apt upgrade --without-new-pkgs -y
    
  4. Jalankan upgrade distribusi penuh:

    sudo apt full-upgrade -y
    
  5. Pastikan google-guest-agent aktif dan diaktifkan:

    sudo systemctl enable --now google-guest-agent
    
  6. Mulai ulang instance komputasi:

    sudo systemctl reboot
    

Ubuntu

Untuk mengelola upgrade LTS ke LTS di Ubuntu, gunakan alat do-release-upgrade.

  1. Perbarui semua paket saat ini:

    sudo apt update && sudo apt dist-upgrade -y
    
  2. Instal paket inti untuk pengelola update:

    sudo apt install update-manager-core -y
    
  3. Mulai alat untuk upgrade rilis:

    sudo do-release-upgrade
    
  4. 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.

  5. Mulai ulang instance komputasi saat diminta.

RHEL

Untuk mengupgrade antar-versi utama RHEL, gunakan utilitas leapp Red Hat yang didukung.

  1. Verifikasi status langganan Red Hat Anda dan pastikan instance komputasi terhubung ke Infrastruktur Update Red Hat (RHUI) Compute Engine.
  2. Instal utilitas Leapp dan paket yang berisi data migrasi.
  3. Jalankan penilaian pra-upgrade:

    sudo leapp preupgrade
    
  4. Tinjau laporan di /var/log/leapp/leapp-report.txt dan selesaikan semua masalah penghambat yang diidentifikasi Leapp.

  5. Lakukan upgrade:

    sudo leapp upgrade
    
  6. 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:

  1. Perbarui sistem yang ada:

    sudo zypper patch
    
  2. Jalankan zypper migration untuk melakukan migrasi online, atau ikuti alur kerja upgrade distribusi, menggunakan zypper 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, dan tier: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:

  1. Pastikan SSH atau RDP terhubung secara normal.
  2. 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
    
  3. Verifikasi bahwa instance komputasi dapat membuat kueri server metadata instance:

    curl -H "Metadata-Flavor: Google" http://metadata.google.internal/computeMetadata/v1/instance/id
    
  4. 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:

  1. 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=ZONE
    
  2. Jika Anda mengaktifkan serial console interaktif sebelum upgrade, hubungkan langsung ke terminal:

    gcloud compute connect-to-serial-port INSTANCE_NAME \
        --zone=ZONE
    

    Login menggunakan kredensial pengguna lokal Anda, periksa log sistem dengan journalctl -xe, dan mulai ulang jaringan atau layanan google-guest-agent.

    Ganti kode berikut:

    • INSTANCE_NAME: nama instance komputasi yang Anda pecahkan masalahnya.
    • ZONE: zona tempat instance komputasi berada.
  3. 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.

Langkah berikutnya