Pasang dan Gunakan LXD di Rocky/AlmaLinux 8|9


LXD adalah pengelola kontainer sistem generasi berikutnya yang dibangun di sekitar REST yang sangat kuat dan menawarkan pengalaman pengguna yang mirip dengan mesin virtual tetapi menggunakan kontainer Linux. LXD menggunakan citra Linux yang sudah dibuat sebelumnya yang tersedia untuk banyak distribusi Linux.

Dalam panduan ini, saya akan menunjukkan langkah-langkah sederhana untuk menginstal dan menggunakan LXD di server/Desktop Rocky/AlmaLinux. Instalasi ini akan menggunakan Snap, yang telah dibahas pada panduan Menginstal Snapd dan aplikasi Snap di Rocky/AlmaLinux.

Fitur LXD

Dari situs resmi LXD, fitur-fitur terbesar dari LXD yang disebutkan adalah:

  • Aman secara desain (kontainer tanpa hak istimewa, pembatasan sumber daya, dan banyak lagi)
  • Dapat diskalakan (dari container di ribuan node komputasi Anda)
  • Intuitif (API yang sederhana dan jelas serta pengalaman baris perintah yang ringkas)
  • Berbasis gambar (dengan berbagai distribusi Linux yang diterbitkan setiap hari)
  • Dukungan untuk transfer container dan image antar-host (termasuk migrasi langsung dengan CRIU)
  • Kontrol sumber daya lanjutan (CPU, memori, I/O jaringan, I/O blok, penggunaan disk, dan sumber daya kernel)
  • Penerusan perangkat (USB, GPU, perangkat karakter dan blok Unix, NIC, disk, dan jalur)
  • Manajemen jaringan (pembuatan dan konfigurasi jembatan, terowongan lintas host, …)
  • Manajemen penyimpanan (dukungan untuk beberapa backend penyimpanan, pool penyimpanan, dan volume penyimpanan)

Menjalankan Kontainer LXD di Rocky/AlmaLinux

Sekarang mari kita mulai instalasi LXD di Rocky/AlmaLinux dengan mengikuti langkah-langkah di bawah ini

Langkah 1: Pasang snapd

Anda perlu menginstal snapd yang akan menyediakan alat baris perintah snap yang digunakan untuk menginstal paket LXD. Instal snapd dengan mengikuti panduannya:

  • Menginstal Snapd dan aplikasi Snap di Rocky/AlmaLinux

Setelah Anda menginstal snapd, lanjut ke langkah 2

Langkah 2: Konfigurasikan Parameter Kernel

Beberapa opsi Kernel diperlukan oleh LXD untuk diaktifkan pada sistem. Konfigurasikan dengan menjalankan perintah berikut di terminal Anda. Jalankan perintah ini sebagai pengguna root.

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" > /etc/sysctl.d/99-userns.conf

Anda perlu me-reboot sistem setelah melakukan perubahan.

sudo reboot

Langkah 3: Pasang snap lxd di Rocky/AlmaLinux

Akhirnya, pasang LXD snap dari toko snap

$ sudo snap install lxd
lxd (5.21/stable) 5.21.1-d46c406 from Canonical✓ installed

Instalasi seharusnya memakan waktu singkat jika Anda memiliki koneksi internet yang baik. Anda dapat memastikan pemasangan paket menggunakan:

$ sudo snap list
Name        Version         Rev    Tracking       Publisher              Notes
core20      20240416        2318   latest/stable  canonical✓             base
core22      20240408        1380   latest/stable  canonical✓             base
lxd         5.21.1-d46c406  28460  5.21/stable    canonical✓             -
powershell  7.4.3           269    latest/stable  microsoft-powershell✓  classic
snapd       2.63            21759  latest/stable  canonical✓             snapd

$ sudo snap services
Service          Startup  Current   Notes
lxd.activate     enabled  inactive  -
lxd.daemon       enabled  inactive  socket-activated
lxd.user-daemon  enabled  inactive  socket-activated

Langkah 4: Meluncurkan kontainer LXD uji

Memastikan

echo 'export PATH="$PATH:/snap/bin/"'|tee -a  ~/.bashrc
source ~/.bashrc

Mari tambahkan akun pengguna kita ke gruplxd agar dapat mengelola kontainer LXD tanpa kesalahan izin.

sudo usermod -aG lxd $USER
newgrp lxd

Muat modul kernel.

sudo modprobe overlay
sudo modprobe br_netfilter

Pastikan modul dikonfigurasi untuk dimuat saat boot:

echo -e "noverlay\nbr_netfilter" | sudo tee /etc/modules-load.d/lxd.conf

Mulai ulang layanan LXD.

sudo systemctl restart snap.lxd.daemon

Konfigurasikan lingkungan LXD menggunakan

$ lxd init
Would you like to use LXD clustering? (yes/no) [default=no]: no
Do you want to configure a new storage pool? (yes/no) [default=yes]: no
Name of the new storage pool [default=default]: 
Name of the storage backend to use (btrfs, ceph, dir, lvm) [default=btrfs]: dir 
Would you like to connect to a MAAS server? (yes/no) [default=no]: 
Would you like to create a new local network bridge? (yes/no) [default=yes]: 
What should the new bridge be called? [default=lxdbr0]: 
What IPv4 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: 
What IPv6 address should be used? (CIDR subnet notation, “auto” or “none”) [default=auto]: 
Would you like LXD to be available over the network? (yes/no) [default=no]: 
Would you like stale cached images to be updated automatically? (yes/no) [default=yes] 
Would you like a YAML "lxd init" preseed to be printed? (yes/no) [default=no]:

Daftar kontainer seharusnya mengembalikan daftar kosong

$ lxc list
+------+-------+------+------+------+-----------+
| NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS |
+------+-------+------+------+------+-----------+

Untuk menampilkan daftar gambar VM yang tersedia jalankan:

lxc image list images:

Contoh nama gambar yang tersedia:

  • fedora/40
  • time
  • rockylinux/9
  • rockylinux/8
  • oracle/9
  • almalinux/8
  • almalinux/9
# Rocky linux 8|9
lxc image list images:centos/9-Stream
debian/12

Buat kontainer Rocky Linux 8 untuk pengujian dengan menjalankan:

# lxc launch images:rockylinux/8 rocky-8-container
Creating rocky-8-container
Starting rocky-8-container

Luncurkan kontainer Ubuntu dengan menjalankan:

# lxc launch images:ubuntu/22.04 ubuntu-container
Creating ubuntu-container
Starting ubuntu-container

Daftar wadah Anda:

# lxc list
+-------------------+---------+-----------------------+-----------------------------------------------+-----------+-----------+
|       NAME        |  STATE  |         IPV4          |                     IPV6                      |   TYPE    | SNAPSHOTS |
+-------------------+---------+-----------------------+-----------------------------------------------+-----------+-----------+
| rocky-8-container | RUNNING | 10.249.233.129 (eth0) | fd42:380b:91a6:efc0:216:3eff:fece:1ee3 (eth0) | CONTAINER | 0         |
+-------------------+---------+-----------------------+-----------------------------------------------+-----------+-----------+
| ubuntu22          | RUNNING | 10.249.233.40 (eth0)  | fd42:380b:91a6:efc0:216:3eff:feb1:7d6f (eth0) | CONTAINER | 0         |
+-------------------+---------+-----------------------+-----------------------------------------------+-----------+-----------+
| ubuntu-container  | RUNNING | 10.249.233.189 (eth0) | fd42:380b:91a6:efc0:216:3eff:fe6f:7d3e (eth0) | CONTAINER | 0         |
+-------------------+---------+-----------------------+-----------------------------------------------+-----------+-----------+

Hentikan, mulai, muat ulang, hapus, periksa informasi sebuah kontainer

lxc start container
lxc stop container
lxc restart container

Dapatkan info tentang sebuah container menggunakan opsi perintah info

lxc info container

Contoh output:

Untuk lebih banyak pilihan baris perintah, jalankan

lxc --help
lxc command --help e.g lxc start --help

Buku Linux yang Direkomendasikan untuk Dibaca:

  • Buku Linux Terbaik untuk Pemula & Ahli
  • Buku Pemrograman Kernel Linux Terbaik
  • Buku Scripting Bash Linux Terbaik

Anda telah berhasil menginstal LXD di Rock/AlmaLinux melalui snap dan membuat kontainer lxc. Terima kasih telah menggunakan panduan kami. Jika Anda mengalami masalah, jangan ragu untuk meninggalkan komentar.