Podman adalah platform containerization yang sesuai dengan OCI yang sering digunakan sebagai pengganti Docker. Model tanpa daemon dan set fitur yang ekstensif menjadikannya pesaing yang baik untuk digunakan dalam pengembangan dan produksi.
Dalam artikel ini kami akan menunjukkan cara menggunakan sistem pembaruan otomatis Podman untuk memulai ulang container Anda saat gambar baru dirilis. Podman dapat dikonfigurasi secara berkala untuk memeriksa pembaruan, menarik gambar terbaru, dan membuat ulang container yang terpengaruh menggunakan pengaturannya saat ini.
Mengapa Container Pembaruan Otomatis?
Container sering berumur pendek tetapi masih perlu dipelihara secara teratur. Kerentanan kritis di dalam gambar dapat memberi penyerang pijakan ke dalam aplikasi Anda yang dieksploitasi dalam beberapa jam setelah penemuannya.
Teknologi container paling populer mengharuskan Anda memperbarui container secara manual. Hal ini membebani tim operasi untuk berlangganan pengumuman rilis dan membuat alat yang meluncurkan perubahan baru. Sistem pembaruan kontainer bawaan Podman mengatasi tantangan ini dan menjaga beban kerja tetap segar. Penampung dapat segera diperbarui setelah Anda mendorong versi gambar baru, memberikan ketenangan pikiran bahwa penerapan Anda menjalankan patch terbaru dan perbaikan bug.
Mengaktifkan Pembaruan Otomatis
Pembaruan otomatis diaktifkan untuk wadah dengan menyetel label io.containers.autoupdate saat Anda create it.
$ podman run -d -p 8080:80 --name nginx-container --label io.containers.autoupdate=registry docker.io/library/nginx:latest
Label dapat memiliki dua kemungkinan nilai:
- registry – Selama pemeriksaan pembaruan, Podman akan menghubungi registri gambar untuk memeriksa apakah tag yang digunakan oleh penampung Anda memiliki versi baru yang tersedia. Gambar akan ditarik dan wadah Anda dimulai ulang saat ini terjadi. Pembaruan registri hanya berfungsi ketika Anda menggunakan jalur registri yang sepenuhnya memenuhi syarat
- – referensi docker.io/library/nginx:latest yang ditunjukkan di atas disengaja, karena nginx:latest terlalu kabur.local
- – Metode pembaruan ini membatasi Podman untuk melihat container gambar yang sudah ada di sistem file host Anda. Penampung akan dimulai ulang jika versi lokal dari tag gambar berbeda dari versi penampung yang dijalankan. Ini dapat berguna saat membuat ulang gambar selama pengembangan.
Kehadiran label membuat wadah sampel NGINX ini memenuhi syarat untuk pembaruan otomatis. Namun lebih banyak pekerjaan diperlukan sebelum pembaruan benar-benar dapat diterapkan.
Membuat Systemd Service
Podman mekanisme pembaruan memerlukan wadah Anda untuk berjalan di dalam layanan systemd. Karena Podman tidak memiliki daemon, ia tidak memiliki pengontrol pusat yang dapat memulai dan menghentikan kontainer Anda. Membungkusnya dalam layanan systemd memberikan kemampuan manajemen siklus hidup dan opsi untuk memulai ulang sebagai respons terhadap peristiwa tertentu. CLI
Podman menyertakan perintah yang membuat definisi unit systemd dari container:
$ podman generate systemd --name nginx-container > /etc /systemd/system/nginx-container.service
Perintah di atas membuat wadah NGINX baru dengan layanan systemd di lokasi yang benar.
Selanjutnya muat ulang systemd untuk mendaftarkan definisi layanan, lalu aktifkan dan mulai layanan:
$ systemctl daemon-reload $ systemctl aktifkan nginx-container.service $ systemctl start nginx-container.service
Wadah NGINX Anda sekarang menjadi layanan systemd yang akan dimulai secara otomatis ketika host Anda melakukan booting. Anda dapat menggunakan perintah systemctl untuk memulai dan menghentikan container, alih-alih CLI:
$ dari Podman systemctl start nginx-container.service $ systemctl stop nginx-container.service
Untuk menghapus container di masa mendatang, Anda harus menghentikan, menonaktifkan, dan menghapus file unit layanan. Mulai ulang systemd setelahnya untuk menerapkan sepenuhnya change.
$ systemctl stop nginx-container.service $ systemctl disable nginx-container.service $ rm /etc/systemd/system/nginx-container.service $ systemctl daemon-reloadPerforming an Update
Sekarang semuanya sudah diatur untuk berhasil memperbarui penampung NGINX Anda secara otomatis. Anda dapat menjalankan pemeriksaan pembaruan sesuai permintaan menggunakan perintah pembaruan otomatis Podman:
$ podman pembaruan otomatis Mencoba menarik docker.io/library/nginx:latest... Mendapatkan tanda tangan sumber gambar ... UNIT CONTAINER IMAGE POLICY UPDATED nginx -container.service 2de4ba96b09 docker.io/library/nginx:registri terbaru true
Ini memperbarui wadah dalam layanan systemd yang dapat diakses oleh pengguna yang menjalankan perintah. Anda mungkin perlu menggunakan sudo untuk mengikuti contoh di atas; jika demikian, jalankan perintah pembaruan otomatis sebagai root juga:
$ sudo podman auto-update
Strategi pembaruan registri digunakan dalam contoh ini sehingga Podman terhubung ke registri gambar, memeriksa perubahan, dan kemudian menarik gambar baru jika berlaku. Keluaran perintah menunjukkan apakah setiap container layanan telah diperbarui.
Karena container dikelola oleh systemd, Podman dapat mendeteksi apakah container baru berhasil dijalankan. Podman akan secara otomatis mengembalikan ke versi gambar sebelumnya jika kegagalan pembaruan terdeteksi. Agar ini berfungsi dengan andal, aplikasi di dalam wadah harus memberi tahu systemd ketika berhasil dimulai. Hal ini dapat dilakukan dengan menjalankan systemd-notify --ready.
Memeriksa Pembaruan
Terkadang Anda mungkin perlu memeriksa apakah armada kontainer Anda memiliki pembaruan yang tersedia tanpa segera menerapkannya. Gunakan perintah pembaruan otomatis dengan flag --dry-run untuk mendapatkan daftar layanan tempat gambar yang diperbarui telah dipublikasikan:
$ podman pembaruan otomatis --dry-run ... UNIT CONTAINER IMAGE POLICY UPDATED nginx-container .service 2de4ba96b09 docker.io/library/nginx:registri terbaru pending
Layanan yang ditampilkan sebagai tertunda memiliki pembaruan yang tersedia.
Menerapkan Pembaruan pada Schedule
Sekarang kami telah berhasil menyiapkan pembaruan kontainer sesuai permintaan. Anda tidak perlu menarik gambar baru secara manual atau memulai ulang wadah Anda. Langkah terakhir adalah menyiapkan jadwal sehingga Podman menerapkan pembaruan secara berkala, tanpa Anda menjalankan perintah pembaruan otomatis.
Sebagian besar distribusi Podman menyertakan pengatur waktu systemd untuk tujuan ini. Anda dapat mengaktifkan timer menggunakan systemctl:
$ systemctl enable podman-auto-update.timer
Timer dikonfigurasi untuk memeriksa pembaruan setiap hari. Anda dapat menyesuaikan jadwal dengan membuka file timer menggunakan systemctl edit dan mengubah nilai bidang OnCalendar:
$ systemctl edit podman-auto-update.timer [Timer] OnCalendar=Jum *-*-* 18:00
Ekspresi waktu yang ditampilkan diatas akan menjalankan update check setiap hari jumat jam 6 sore. Sintaksnya didokumentasikan dalam manual.
systemd. Sekarang pengatur waktu diaktifkan, Anda dapat mulai menggunakan wadah Anda dengan label io.containers.autoupdate. Mereka akan diperbarui dan dimulai ulang secara berkala, mengotomatiskan prosedur pemeliharaan Anda.
Anda tidak perlu menggunakan pengatur waktu sistem Podman untuk membuat jadwal pembaruan. Anda dapat menjalankan pembaruan otomatis podman di dalam alat yang ada atau penjadwal pekerjaan lain seperti cron.
Kesimpulan
Pembaruan otomatis Podman memungkinkan Anda memindahkan wadah ke versi gambar baru tanpa memulai ulang secara manual atau menggunakan alat eksternal. Ini dapat membantu Anda mempertahankan armada container karena gambar merilis perbaikan bug dan patch keamanan.
Meskipun pembaruan otomatis adalah alat yang berguna, pembaruan tidak boleh digunakan tanpa pertimbangan yang matang. Mengizinkan pembaruan otomatis dapat menimbulkan masalah tersendiri jika gambar yang rusak terlepas secara tidak sengaja. Kontainer yang memulai ulang sendiri juga dapat menyebabkan waktu henti atau mengganggu layanan yang bergantung.
Oleh karena itu, Anda harus menilai kesesuaian aplikasi Anda sendiri sebelum menerapkan solusi ini. Salah satu pendekatan perantara adalah menjalankan pembaruan otomatis --dry-run secara berkala dan mengirimkan hasilnya ke layanan pemantauan. Ini memberi Anda informasi tentang pembaruan yang tersedia tanpa menimbulkan risiko menerapkannya tanpa persetujuan.
Itulah berita seputar
Cara Mengaktifkan Pembaruan Wadah Otomatis Podman, semoga bermanfaat.
Disadur dari HowToGeek.com.