- Image mode pada Red Hat Enterprise Linux (RHEL) menyederhanakan proses membangun, menerapkan, dan mengelola RHEL sebagai container yang dapat di-boot
- Pengembang, tim operasi, dan penyedia solusi dapat mengelola aplikasi serta sistem operasi dasarnya dengan alat dan teknik native container yang sama
Membangun container yang dapat di-boot vs. container aplikasi
- Seperti container aplikasi pada umumnya, container yang dapat di-boot dapat dibangun menggunakan teknologi container yang sudah ada seperti Podman, Docker, atau buildkit
- Image dapat disimpan di registry container seperti Quay.io, Docker Hub, GitHub Container Registry, atau registry container internal
- Container yang dapat di-boot merupakan evolusi alami dari teknologi container, dengan menyediakan alur kerja native container dan pengalaman pengguna yang komprehensif termasuk seluruh sistem operasi dan Linux kernel
Menggunakan Containerfile
- Containerfile (juga dikenal sebagai Dockerfile) memuat semua informasi yang diperlukan untuk membangun image container, termasuk base image, petunjuk instalasi paket perangkat lunak, penyalinan file dari repositori Git, dan sebagainya
- Alur kerja dan alat untuk membangun container yang dapat di-boot pada dasarnya sama dengan container aplikasi
- Namun, ada beberapa praktik terbaik yang berlaku saat membangun container yang dapat di-boot
Praktik terbaik untuk linting
- Disarankan untuk menjalankan perintah
bootc container lint sebagai tahap terakhir di Containerfile
- Perintah ini melakukan berbagai pemeriksaan di dalam image container dan akan menghasilkan error jika ada masalah
- Misalnya, perintah ini memeriksa apakah ada beberapa kernel di
/usr/lib/modules, memeriksa sintaks file di /usr/lib/bootc/kargs.d, serta mengecek kebersihan (hygiene) pada /etc dan /usr/etc
GitHub Actions dan ruang disk
- Saat membangun container menggunakan GitHub Actions, Anda dapat menghadapi masalah terkait ruang disk karena ukuran image container yang dapat di-boot
- Untuk mengatasi masalah ini, Anda dapat menambahkan langkah di file workflow untuk menghapus direktori
/opt/hostedtoolcache agar membebaskan ruang disk
Memahami /var
/var adalah direktori untuk data dan status lokal mesin yang persisten serta dapat berubah, dan selama pembaruan, isi /var pada image container tidak berubah
- Karena itu, jika aplikasi menulis data ke
/var, sebaiknya pindahkan ke direktori lain seperti /usr/share untuk menghindari masalah mount read-only
Menggunakan perintah useradd
- Jika
useradd dipanggil dalam skrip packaging, modifikasi lokal pada /etc/passwd dapat menyebabkan state drift
- Untuk menghindari masalah ini, Anda dapat mempertimbangkan penggunaan opsi
DynamicUser=yes milik systemd untuk pembuatan pengguna dinamis
- Namun, pada kasus yang kompleks, beralih ke
DynamicUser=yes bisa sulit, dan dalam situasi seperti itu disarankan menggunakan systemd-sysusers untuk membuat pengguna
Menanamkan container dengan Quadlet
- Menjalankan workload yang dikontainerisasi di
systemd adalah cara yang sederhana namun kuat untuk deployment yang andal
- Podman menyediakan alat bernama Quadlet untuk integrasi dengan
systemd, yang memungkinkan pengelolaan workload terkontainerisasi secara deklaratif
- Quadlet terintegrasi sempurna dengan image mode, dan image yang terikat secara logis dapat digunakan untuk melakukan pre-fetch image container aplikasi saat boot
Ringkasan
- Dengan menggunakan image mode, terjadi pergeseran paradigma dalam cara kerja host RHEL
- Anda dapat membangun, menerapkan, dan mengelola sistem operasi dengan alat cloud-native, serta akan berhadapan dengan OS immutabel yang sebagian besar sistemnya di-mount sebagai read-only
Belum ada komentar.