Trong nội dung bài viết này, ta sẽ cùng nhau tiếp tục phần 5 trong việc thảo luận qua về linux container. Tôi sẽ chỉ giới hạn nội dung bài viết xoay quanh Linux container.

Ta sẽ tổng kết vấn đề này dưới góc nhìn toàn cảnh của việc hình thành và sử dụng linux container. Có rất nhiều thông tin về topic này, nhiều quá đến nỗi làm người đọc bị loạn mà quên đi mất việc kết nối các thành phần tạo nên bức tranh toàn cảnh về linux container. Ta sẽ tóm gọn nó qua 3 lớp:

a. Linux container được hình thành từ 2 features chính của Linux Kernel, đó chính là Linux Namespaces và Control groups (cgroup). Tóm lược lại, nhiệm vụ chính của namespace chính là “isolate” và “virtualize” các system resouces còn cgroup chính là “tính toán” và “giới hạn” việc sử dụng của các isolated, virtualized system resouces mà namespace thực hiện. Các bạn có thể tìm hiểu rất nhiều thông tin về 2 features này trên Internet.

b. Vậy khi có các features rồi, runtime sẽ như thế nào?

Runtime sẽ sử dụng các features trên của Linux kernel để quản lý các linux containers. Ta sẽ tổng kết nhanh về một số runtime cho linux container.

c. OK, cái ta cần hiện giờ chính là một wrapper của các runtime trên hay còn gọi là container manager.

Các wrapper của runtime cần phải được add thêm các tool cũng như features, e.g. networking, volume để quản lý container. Ngoài ra nó cũng cần thiết phải thân thiện với người dùng vì mục đích của các container manager này chính là cung cấp một API cho người dùng để thực hiện các thao tác tới container.

 

14/3/2017
VietStack team