Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 🚀 Linux Containers – Chìa khóa cho thế giới Cloud Native

    🚀 Linux Containers – Chìa khóa cho thế giới Cloud Native


    Ngày nay khi nói đến cloud-native hay DevOps, gần như không thể bỏ qua Containers – nền tảng đứng sau Kubernetes, Docker, và hàng loạt hệ sinh thái CNCF. Nhưng đằng sau cái tên quen thuộc đó là những công nghệ Linux cực kỳ thú vị: NamespacesControl Groups (cgroups). 1️⃣ Hành trình containerization
    • Ban đầu, Linux chỉ có chroot – cô lập hệ thống file cơ bản.
    • FreeBSD phát triển thành Jails, mở rộng sang user và networking.
    • Solaris có Zones, Linux có VServer, OpenVZ, Process Containers.
    • Ngày nay, Docker, LXC, rkt… kế thừa và dựa vào namespaces + cgroups để tạo nên container hiện đại.
    2️⃣ Namespaces – trái tim của isolation


    Namespaces tạo ra các “vũ trụ thu nhỏ” bên trong kernel, cho phép mỗi container nhìn thấy một hệ thống riêng.
    • PID namespace: cô lập process (mỗi container có PID 1 riêng).
    • MNT namespace: mỗi container có view file system khác nhau.
    • NET namespace: mỗi container có network stack, interface, routing, firewall riêng.
    • USER namespace: mapping user ID, tránh container root = host root.
    • IPC, UTS namespaces: tách biệt hostname, domain name, inter-process communication.

    👉 Chính namespaces là cơ chế để container cách ly với container khác. 3️⃣ Cgroups – kiểm soát tài nguyên


    Cgroups được Google giới thiệu từ Linux 2.6.24, cho phép:
    • Giới hạn CPU, RAM, I/O, network.
    • Theo dõi mức sử dụng tài nguyên.
    • Ưu tiên tài nguyên cho nhóm process.
    • Quản lý vòng đời: pause, resume, restart group process.

    Nhờ cgroups, ta tránh được vấn đề “noisy neighbor” – khi một app chiếm hết tài nguyên, ảnh hưởng tới app khác. 4️⃣ Container Images – bất biến và portable


    Container image mang theo toàn bộ: OS, libs, tools, config. Vì bất biến nên dễ dàng scan CVE, ký số, kiểm soát chuỗi supply chain. Ví dụ: build từ Ubuntu base nhưng vẫn chạy trên CentOS host (chỉ cần chung kernel và kiến trúc CPU). 5️⃣ Privileged vs Unprivileged
    • Privileged container: UID 0 trong container = UID 0 trên host → rủi ro cao.
    • Unprivileged container: UID 0 trong container map sang non-root user trên host → an toàn hơn.
    • Docker mặc định chạy privileged, do đó cần thận trọng khi sử dụng flag --privileged.


    💡 Kết luận: Linux Containers không phải “máy ảo mini” mà là sự kết hợp tinh tế giữa namespaces (isolation)cgroups (resource control). Đây chính là nền tảng để Kubernetes, Docker và hạ tầng cloud-native phát triển mạnh mẽ.

    👉 Câu hỏi cho anh em DevOps/Automation:
    Theo bạn, giữa VMContainer, yếu tố nào quan trọng hơn để quyết định chọn mô hình triển khai: Isolation (tách biệt tuyệt đối) hay Efficiency (tận dụng tài nguyên tối đa)?
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X