6 điểm bởi xguru 2025-02-28 | Chưa có bình luận nào. | Chia sẻ qua WhatsApp
  • Image mode của Red Hat Enterprise Linux (RHEL) giúp đơn giản hóa quá trình xây dựng, triển khai và quản lý RHEL dưới dạng container có thể khởi động
  • Nhà phát triển, vận hành và nhà cung cấp giải pháp có thể dùng cùng một bộ công cụ và kỹ thuật gốc container để quản lý ứng dụng và hệ điều hành nền tảng

Xây dựng container có thể khởi động vs. container ứng dụng

  • Tương tự container ứng dụng thông thường, có thể xây dựng container có thể khởi động bằng các công nghệ container hiện có như Podman, Docker hoặc buildkit
  • Image có thể được lưu trong các container registry như Quay.io, Docker Hub, GitHub Container Registry hoặc registry container nội bộ
  • Container có thể khởi động là bước tiến hóa tự nhiên của công nghệ container, mang lại quy trình làm việc và trải nghiệm người dùng gốc container toàn diện, bao gồm cả toàn bộ hệ điều hành và Linux kernel

Sử dụng Containerfile

  • Containerfile (còn gọi là Dockerfile) chứa mọi thông tin cần thiết để xây dựng container image, bao gồm image nền tảng, hướng dẫn cài đặt gói phần mềm và sao chép tệp từ Git repository
  • Quy trình làm việc và công cụ để xây dựng container có thể khởi động về bản chất là giống với container ứng dụng
  • Tuy nhiên, có một số phương pháp hay nhất cần áp dụng khi xây dựng container có thể khởi động

Các phương pháp hay nhất cho linting

  • Khuyến nghị chạy lệnh bootc container lint ở bước cuối cùng của Containerfile
  • Lệnh này thực hiện nhiều kiểm tra bên trong container image và sẽ báo lỗi nếu có vấn đề
  • Ví dụ, nó kiểm tra xem có nhiều kernel trong /usr/lib/modules hay không, kiểm tra cú pháp tệp trong /usr/lib/bootc/kargs.d, đồng thời rà soát tình trạng vệ sinh (hygiene) của /etc/usr/etc

GitHub Actions và dung lượng đĩa

  • Khi dùng GitHub Actions để xây dựng container, có thể gặp các vấn đề liên quan đến dung lượng đĩa do kích thước của container image có thể khởi động
  • Để giải quyết các vấn đề này, có thể thêm một bước xóa thư mục /opt/hostedtoolcache trong tệp workflow để giải phóng dung lượng đĩa

Hiểu về /var

  • /var là thư mục dành cho dữ liệu và trạng thái cục bộ của máy, có tính bền vững và có thể thay đổi; ngay cả khi cập nhật, nội dung /var của container image cũng không thay đổi
  • Vì vậy, nếu ứng dụng ghi dữ liệu vào /var, nên chuyển dữ liệu đó sang thư mục khác như /usr/share để tránh các vấn đề mount chỉ đọc

Sử dụng lệnh useradd

  • Nếu gọi useradd trong script đóng gói, có thể xảy ra state drift khi /etc/passwd bị sửa đổi cục bộ
  • Để tránh vấn đề này, có thể cân nhắc dùng tùy chọn DynamicUser=yes của systemd để tạo người dùng động
  • Tuy nhiên, trong các trường hợp phức tạp, việc chuyển sang DynamicUser=yes có thể khó khăn; khi đó nên dùng systemd-sysusers để tạo người dùng

Nhúng container bằng Quadlet

  • Chạy workload được container hóa trong systemd là một cách đơn giản nhưng mạnh mẽ để triển khai đáng tin cậy
  • Podman cung cấp công cụ Quadlet để tích hợp với systemd, cho phép quản lý workload được container hóa theo kiểu khai báo
  • Quadlet tích hợp hoàn hảo với image mode và có thể dùng các image được ràng buộc logic để kéo sẵn image container ứng dụng khi khởi động

Tóm tắt

  • Dùng image mode tạo ra một sự chuyển dịch mô hình trong cách vận hành host RHEL
  • Có thể xây dựng, triển khai và quản lý hệ điều hành bằng các công cụ cloud-native, đồng thời làm việc với một OS bất biến nơi phần lớn hệ thống được mount ở chế độ chỉ đọc

Chưa có bình luận nào.

Chưa có bình luận nào.