LXD digambarkan sebagai container generasi berikutnya dan manajer mesin virtual yang menawarkan pengalaman mendalam untuk sistem Linux yang berjalan di dalam container atau sebagai mesin virtual.
Ini menyediakan gambar untuk banyak sekali distribusi Linux dengan dukungan untuk berbagai pilihan backend penyimpanan dan jenis jaringan. Ini juga menyediakan opsi untuk menginstal gambar pada PC/laptop individu dan bahkan pada instance cloud.
LXD memungkinkan Anda mengelola container dan VM menggunakan tiga cara. Anda dapat memanfaatkan klien lxc atau alat baris perintah, REST API, atau bahkan integrasi pihak ketiga.
Fitur LXD
LXD yang terkenal fitur termasuk:
- LXD berbasis gambar dengan gambar untuk berbagai pilihan distribusi Linux.
- Dibangun dengan keamanan sebagai prioritas utama.
- Ini menyediakan REST API dan alat baris perintah lxc untuk berinteraksi dengan container.
- Ini memberikan dukungan untuk berbagai macam backend penyimpanan, volume penyimpanan, dan kumpulan penyimpanan.
- Manajemen jaringan dilakukan melalui pembuatan jaringan jembatan dan terowongan lintas-host.
- Kontrol lanjutan atas sumber daya seperti CPU, RAM, penggunaan disk, blok I/O, dan sumber daya kernel.
- Fleksibel dan skalabel – Anda dapat menerapkan container di PC dan mengonfigurasi cluster yang dapat menggabungkan ribuan container di berbagai node.
Apa itu LXC?
Jangan bingung dengan lxc alat klien baris perintah yang disediakan oleh LXD , LXC (Penampung Linux ) adalah teknologi virtualisasi tingkat OS populer yang menggunakan API andal dan alat lain untuk memungkinkan pengguna membuat dan mengelola wadah dan mesin virtual dengan mulus dalam satu host. Ini terdiri dari template, bahasa alat, dan binding perpustakaan.
Fitur LXC
LXC memanfaatkan fitur kernel berikut untuk menangani proses:
- Ruang nama kernel:pid, mount, jaringan uts, dan pengguna.
- Grup (grup kontrol).
- Croot – Menggunakan pivot_root.
- Kebijakan Seccomp.
- Profil SELinux dan Apparmor.
Linuxcontainers.org adalah proyek payung di balik kedua LXD dan LXC . Tujuannya adalah untuk menawarkan platform distro dan vendor-netral untuk teknologi container Linux.
Dengan tidak adanya pengenalan tersebut, sekarang kami akan menunjukkan cara membuat dan mengelola LXC container pada distribusi Linux berbasis RHEL seperti CentOS , Linux Rocky, dan AlmaLinux .
Persyaratan
Sistem operasi Linux yang berfungsi dengan instalasi minimal:
- Instalasi RHEL Linux
- Instalasi CentOS Linux
- Instalasi Rocky Linux
- Instalasi AlmaLinux
Langkah 1:Setel SELinux ke Mode Permisif
Langsung saja, kita akan mulai dengan mengonfigurasi SELinux dan mengaturnya ke permisif. Namun sebelum kita melakukannya, mari kita perbarui paket sistem sebagai berikut:
$ sudo dnf update
Untuk menyetel SELinux untuk permisif, jalankan perintah:
$ sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
Agar ini berlaku, reboot server Anda.
$ sudo reboot
Dan konfirmasikan status SELinux .
$ getenforce
Langkah 2:Instal Repositori EPEL
EPEL adalah repositori dari Proyek Fedora yang menyediakan satu set paket berkualitas tinggi untuk RedHat Enterprise Linux dan distribusi berbasis RHEL lainnya.
$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm OR $ sudo yum install epel-release
Langkah 3:Tambahkan Parameter Kernel
Sebelum kita menginstal LXD , beberapa parameter tambahan diperlukan. Oleh karena itu beralih ke pengguna root:
$ su -
Dan tambahkan parameter sebagai berikut.
$ grubby --args="user_namespace.enable=1" --update-kernel="$(grubby --default-kernel)" $ grubby --args="namespace.unpriv_enable=1" --update-kernel="$(grubby --default-kernel)" $ echo "user.max_user_namespaces=3883" | sudo tee -a /etc/sysctl.d/99-userns.conf
Setelah parameter tersedia, lanjutkan dan aktifkan Snap.
Langkah 4:Instal dan Aktifkan Snap
Cara termudah untuk menginstal LXD di RHEL 8 adalah memasangnya sebagai jepret kemasan. Tapi pertama-tama, mari kita pasang snap sebagai berikut.
$ sudo dnf install snapd
Ini akan menginstal snapd daemon atau layanan bersama dependensi Python lainnya seperti yang ditunjukkan.
Dengan snap terpasang, lanjutkan dan aktifkan snap utama soket komunikasi.
$ sudo systemctl enable --now snapd.socket
Selain itu, aktifkan dukungan klasik dengan membuat symlink dari /var/lib/snapd/snap untuk /jepret .
$ sudo ln -s /var/lib/snapd/snap /snap
Untuk memperbarui jepret jalur, mulai ulang sistem Anda.
$ sudo reboot
Langkah 5:Instal Pengelola Kontainerisasi LXD
Ada dua cara memasang LXD dari jepret . Anda dapat menginstal versi terbaru LXD seperti yang ditunjukkan.
$ sudo snap install —-classic lxd
Atau, Anda dapat menginstal LTS stabil terbaru versi sebagai berikut:
$ sudo snap install lxd --channel=4.0/stable
Untuk dapat menjalankan lxc perintah tanpa beralih ke pengguna sudo, tambahkan pengguna yang saat ini masuk ke lxd grup.
$ sudo usermod -aG lxd $USER
Verifikasi bahwa pengguna telah ditambahkan ke lxd grup dengan mendaftar semua grup milik pengguna.
$ groups tecmint
Selanjutnya, jalankan newgrp perintah sebagai berikut.
$ newgrp lxd
Perintah mengubah ID grup saat ini selama sesi login. Ini menetapkan ID grup saat ini ke grup bernama yaitu lxd .
Langkah 6:Inisialisasi Lingkungan LXD
Sebelum kita mulai membuat dan mengelola LXD container, kita perlu menginisialisasi LXD lingkungan dengan menjalankan perintah.
$ lxc init
Berikut ini adalah serangkaian petunjuk yang memungkinkan Anda mengatur lingkungan Anda. Defaultnya akan berfungsi dengan baik, tetapi silakan tentukan preferensi Anda sendiri.
Kami telah membuat kumpulan penyimpanan yang disebut tec-pool dengan lvm opsi sebagai backend.
Untuk memverifikasi LXD lingkungan yang baru saja Anda konfigurasikan, ada sejumlah perintah yang dapat Anda gunakan. Misalnya, untuk menampilkan profil LXD default, jalankan:
$ lxc profile show default
Untuk menampilkan adaptor jaringan dan IPv4 dan IPv6 alamat, jalankan:
$ lxc network list
Anda dapat mempersempitnya lebih jauh dan menampilkan informasi yang lebih baik tentang lxdbr0 antarmuka sebagai berikut.
$ lxc network show lxdbr0
Anda juga dapat memverifikasi kumpulan penyimpanan.
$ lxc storage list
Anda bisa mendapatkan detail rumit lebih lanjut tentang kumpulan penyimpanan.
$ lxc storage show tec-pool
Untuk daftar menjalankan lxc container, jalankan perintah:
$ lxc list
Saat ini, kami belum memiliki wadah yang berjalan. Jadi Anda akan mendapatkan tabel kosong hanya dengan label kolom.
Langkah 7:Mencantumkan Gambar Kontainer LXC Prebuilt
Sama seperti Docker , LXC platform menyediakan repositori gambar pra-bangun tempat Anda dapat membuat wadah. Untuk membuat daftar semua gambar bawaan untuk semua sistem operasi termasuk mesin virtual, jalankan perintah:
$ lxc image list images:
Ini mengisi daftar besar gambar kontainer dan mesin virtual untuk semua sistem operasi. Untuk mempersempit distribusi Linux tertentu, gunakan sintaks:
$ lxc image list images: grep -i os-type
Misalnya, untuk mencari gambar yang tersedia untuk Linux Rocky , jalankan perintah:
$ lxc image list images: grep -i rocky
Jika Anda mencari Debian gambar, jalankan perintah:
$ lxc image list images: grep -i debian
Langkah 8:Meluncurkan Kontainer LXC
Untuk meluncurkan lxc wadah, gunakan sintaks:
$ lxc launch images:{distro}/{version}/{arch} {container-name-here}
Di sini, kami akan meluncurkan 2 kontainer:tec-container1 dari Debian 10 dan tec-container2 dari Rocky Linux 8 .
$ lxc launch images:debian/10/amd64 tec-container1 $ lxc launch images:rockylinux/8/amd64 tec-container2
Untuk mencantumkan lxc container, jalankan perintah:
$ lxc list
Outputnya menampilkan sejumlah informasi tentang kontainer. Ini termasuk nama container, status – apakah sedang berjalan atau berhenti – alamat IPv4 dan IPv6, jenis (apakah container atau mesin virtual), dan sejumlah snapshot.
Untuk membuat daftar container yang sedang berjalan saja, jalankan perintah:
$ lxc list | grep -i running
Demikian juga, untuk kontainer yang dihentikan, jalankan:
$ lxc list | grep -i stopped
Anda dapat menyelidiki informasi dan metrik container seperti proses yang berjalan, penggunaan CPU &memori, dan bandwidth untuk menyebutkan beberapa menggunakan perintah:
$ lxc info tec-container1
Langkah 9:Dapatkan Akses Shell ke Kontainer LXC
Anda bisa mendapatkan akses bash ke wadah menggunakan sintaks:
$ lxc exec container-name name-of-the-shell
Untuk mendapatkan akses shell ke tec-container1 , kita akan menjalankan perintah:
$ lxc exec tec-container1 bash
Setelah mendapatkan akses shell, Anda dapat mulai berinteraksi dengan container sebagai pengguna root dengan menjalankan perintah shell umum termasuk memperbarui sistem seperti yang ditunjukkan:
$ apt update
Untuk keluar dari container, jalankan perintah:
$ exit
Atau, Anda dapat menjalankan perintah secara langsung pada wadah tanpa mengakses shell menggunakan format berikut:
$ lxc exec container-name command
Misalnya, Anda dapat menjalankan perintah berikut yang akan memperbarui daftar paket, periksa versi OS yang berjalan pada wadah Debian dan periksa tanggalnya.
$ lxc exec tec-container1 apt update $ lxc exec tec-container1 cat /etc/debian_version $ lxc exec tec-container1 date
Langkah 10:Tarik / Dorong File ke Wadah LXC
Operasi lain yang dapat Anda lakukan adalah mentransfer file ke dan dari wadah. Untuk mendemonstrasikan ini, kami akan membuat direktori baru di LXD wadah dan navigasikan ke dalamnya.
# mkdir data && cd data
Selanjutnya, kita akan membuat file sampel dan menambahkan beberapa data. Untuk melakukannya, kami akan membuat file sampel dengan vim editor
# vim file1.txt
Selanjutnya, kita akan mengetikkan beberapa contoh teks dan menyimpan file tersebut.
Hello World, Welcome to LXD containers.
Untuk menarik file dari wadah ke sistem host lokal, kita akan menggunakan sintaks:
$ lxc file pull {container-name}/{path/to/file} {/path/to/local/dest}
Dalam hal ini, perintahnya adalah:
$ lxc file pull tec-container2/root/data/file1.txt /home/tecmint
Untuk mendorong atau menyalin file dari direktori lokal ke wadah, gunakan sintaks:
$ lxc file push {/path/to/file} {container-nane} /path/to/dest/dir/
Dalam hal ini, kami memiliki file sampel di direktori home bernama file2.txt disalin ke /root/data/ jalur di tec-container2 wadah.
$ lxc file push /home/tecmint/file2.txt tec-container2/root/data/
Untuk mengkonfirmasi keberadaan file dalam wadah, kami akan menjalankan:
$ lxc exec tec-container2 ls /root/data
Langkah 11:Hentikan / Mulai / Mulai Ulang dan Hapus Kontainer LXC
Dengan lxc utilitas baris perintah Anda dapat melakukan tugas pengelolaan container seperti menghentikan, memulai, memulai ulang, dan menghapus container.
Untuk menghentikan lxc wadah, gunakan sintaks:
$ lxc stop container-name
Misalnya, untuk menghentikan tec-container1 , kita akan menjalankan perintah:
$ lxc stop tec-container1
Untuk memulai lxc wadah, gunakan sintaks:
$ lxc start container-name
Misalnya, untuk memulai tec-container1 , kita akan mengeksekusi:
$ lxc start tec-container1
Untuk memulai ulang keduanya lxc container, kita akan menjalankan perintah:
$ lxc restart tec-container1 $ lxc restart tec-container2
Untuk menghapus lxc wadah, Anda harus, pertama, menghentikan wadah dan setelah itu menghapusnya. Misalnya untuk menghapus, kita akan menjalankan perintah:
$ lxc stop tec-container1 $ lxc delete tec-container1
Atau, Anda dapat menggabungkan dua perintah ini seperti yang ditunjukkan.
$ lxc stop tec-container1 && lxc delete tec-container1
Langkah 12:Dapatkan Bantuan tentang Opsi Baris Perintah LXC
Untuk mendapatkan bantuan tentang opsi perintah lain yang disediakan oleh LXC , cukup jalankan perintah:
$ lxc --help OR $ lxc command --help e.g $ lxc file --help
Kesimpulan
Itu adalah pembahasan mendalam tentang LXD wadah dan bagaimana Anda dapat membuat dan mengelolanya menggunakan lxc alat utilitas baris perintah. Kami percaya bahwa Anda merasa panduan ini bermanfaat.