Tìm kiếm trang web

Cài đặt và sử dụng LXD trên Rocky/AlmaLinux 8|9


LXD là một trình quản lý container hệ thống thế hệ mới được xây dựng xung quanh REST rất mạnh mẽ và cung cấp trải nghiệm người dùng tương tự như các máy ảo nhưng sử dụng container Linux thay thế. LXD sử dụng các hình ảnh Linux đã được tạo sẵn, có sẵn cho nhiều bản phân phối Linux khác nhau.

Trong hướng dẫn này, tôi sẽ chỉ cho bạn các bước đơn giản để cài đặt và sử dụng LXD trên máy chủ/máy tính để bàn Rocky/AlmaLinux. Việc cài đặt sẽ sử dụng Snap, đã được đề cập trong hướng dẫn Cài đặt Snapd và các ứng dụng Snap trên Rocky/AlmaLinux.

Các tính năng của LXD

Trên trang web chính thức của LXD, các tính năng lớn nhất của LXD được đề cập là:

  • Bảo mật theo thiết kế (container không đặc quyền, hạn chế tài nguyên và nhiều hơn thế nữa)
  • Có khả năng mở rộng (từ các container trên hàng nghìn nút tính toán của bạn)
  • Trực quan (API đơn giản, rõ ràng và trải nghiệm dòng lệnh mượt mà)
  • Dựa trên hình ảnh (với nhiều bản phân phối Linux đa dạng được phát hành hàng ngày)
  • Hỗ trợ chuyển container và hình ảnh giữa các máy chủ (bao gồm di chuyển trực tiếp với CRIU)
  • Kiểm soát tài nguyên nâng cao (CPU, bộ nhớ, I/O mạng, I/O khối, sử dụng đĩa và tài nguyên kernel)
  • Chuyển tiếp thiết bị (USB, GPU, thiết bị ký tự và khối của Unix, NIC, ổ đĩa và đường dẫn)
  • Quản lý mạng (tạo và cấu hình cầu nối, đường hầm chéo giữa các máy chủ, …)
  • Quản lý lưu trữ (hỗ trợ nhiều hệ thống lưu trữ, nhóm lưu trữ và các ổ lưu trữ)

Chạy các Container LXD trên Rocky/AlmaLinux

Bây giờ hãy bắt đầu cài đặt LXD trên Rocky/AlmaLinux bằng cách làm theo các bước dưới đây

Bước 1: Cài đặt snapd

Bạn cần cài đặt snapd, đây sẽ cung cấp công cụ dòng lệnh snap được sử dụng để cài đặt gói LXD. Hãy cài đặt snapd theo hướng dẫn sau:

  • Cài đặt Snapd và các ứng dụng Snap trên Rocky/AlmaLinux

Sau khi bạn đã cài snapd, hãy chuyển sang bước 2

Bước 2: Cấu hình các tham số Kernel

Một số tùy chọn Kernel cần được LXD yêu cầu kích hoạt trên hệ thống. Cấu hình chúng bằng cách chạy các lệnh sau trên terminal của bạn. Chạy các lệnh này với quyền người dùng 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

Bạn sẽ cần khởi động lại hệ thống sau khi thực hiện các thay đổi.

sudo reboot

Bước 3: Cài đặt lxd snap trên Rocky/AlmaLinux

Cuối cùng, cài đặt LXD snap từ cửa hàng snap

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

Quá trình cài đặt sẽ mất ít thời gian nếu bạn có kết nối internet tốt. Bạn có thể xác nhận việc cài đặt gói bằng cách sử dụng:

$ 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

Bước 4: Khởi chạy container LXD thử nghiệm

Đảm bảo

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

Hãy thêm tài khoản người dùng của chúng ta vào nhóm lxd để quản lý các container LXD mà không gặp lỗi quyền.

sudo usermod -aG lxd $USER
newgrp lxd

Tải các mô-đun nhân.

sudo modprobe overlay
sudo modprobe br_netfilter

Đảm bảo các mô-đun được cấu hình để tải khi khởi động:

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

Khởi động lại dịch vụ LXD.

sudo systemctl restart snap.lxd.daemon

Cấu hình môi trường LXD bằng cách sử dụng

$ 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]:

Danh sách các container nên trả về danh sách rỗng

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

Để liệt kê các hình ảnh VM có sẵn, chạy:

lxc image list images:

Ví dụ về các tên hình ảnh có sẵn:

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

Tạo một container Rocky Linux 8 để thử nghiệm bằng cách chạy:

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

Khởi chạy container Ubuntu bằng cách chạy:

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

Liệt kê các thùng của bạn:

# 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         |
+-------------------+---------+-----------------------+-----------------------------------------------+-----------+-----------+

Dừng, bắt đầu, khởi động lại, xóa, kiểm tra thông tin một container

lxc start container
lxc stop container
lxc restart container

Lấy thông tin về một container bằng tùy chọn lệnh info

lxc info container

Ví dụ kết quả:

Để biết thêm các tùy chọn dòng lệnh, hãy chạy

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

Sách Linux được khuyến nghị nên đọc:

  • Những cuốn sách Linux hay nhất cho người mới bắt đầu và chuyên gia
  • Những cuốn sách lập trình Kernel Linux hay nhất
  • Những cuốn sách hay nhất về lập trình Bash trên Linux

Bạn đã cài đặt thành công LXD trên Rock/AlmaLinux từ snap và đã tạo một container lxc. Cảm ơn bạn đã sử dụng hướng dẫn của chúng tôi. Nếu gặp bất kỳ vấn đề nào, đừng ngần ngại để lại bình luận.