Trang Chủ Linux Kubernetes là gì?

Kubernetes là gì?

bởi jw019681
Kubenetes logo

Sơ lược về Kubernetes

Kubernetes hay viết tắt là k8s, là một nền tảng mã nguồn mở, được khởi tạo bởi Google. Đây là một công cụ được dùng để quản lý container (container orchestration) trong những hệ thống cloud. Nó là một trong những công cụ đáng chú ý nhất trong IT kể từ khi cloud xuất hiện trước công chúng vào năm 2009.

Kubernetes trở nên phổ biến là kết quả của kiến trúc ưu việt. Nó cho phép những nhà phát triển có thể triển khai và vận hành những phần mềm với số lượng lớn. Nó chạy trên những hệ thống phức tạp với máy chủ đặt khắp mọi nơi trên thế giới. Kubernetes còn cho phép nâng cấp phần mềm liên tục và dễ dàng.

Kubernetes giảm rất nhiều những thao tác thủ công khi triển khai phần mềm bằng việc kế hợp với container. Nó giúp việc triển khai, lên lịch chạy và quản lí những ứng dụng một cách tự động.

Xem thêm: Công nghệ container là gì?

Kubenetes kết hợp những ứng dụng và giúp những ứng dụng có thể tương tác với nhau. Với sự kết hợp này, nó có thể nhân rộng hay thu hẹp những dịch vụ theo nhu cầu. Những ứng dụng được cập nhật, chuyển thông tin qua lại giữa những phiên bản khác nhau hoặc khôi phục phiên bản cũ hơn khi những bản mới có lỗi.

Công nghệ này rất “hot” và là sự lựa chọn hàng đầu cho những nhà cung cấp dịch vụ đám mây hàng đầu hiện nay trên thế giới như Google, Amazon, Microsoft. Tất cả những nhà cung cấp dịch vụ này đều có Kubernetes trên hệ thống của họ. Điển hình như AWS Elastic Container Service for Kubernetes, Google Kubernetes Engine and Azure Kubernetes Service.

Lịch sử Kubernetes và hệ sinh thái của nó

Kubernetes (từ tiếng Hi Lạp ‘κυβερνήτης’ nghĩa ‘người lái tàu thủy’) được phát triển bởi Google. Thiết kế của nó kế thừa rất nhiều từ dự án ‘Borg’ của Google. Borg chạy trên rất nhiều hệ thống của Google. Nó đã được trao cho tổ chức Cloud Native Computing Foundation (CNCF). Đây là một dự án hợp tác giữa Linux Foundation với Google, Cisco, IBM, Docker, Microsoft, AWS và VMware.

Kubernetes hoạt động như thế nào?

Kubernetes hoạt động trên một nhóm những máy tính, các máy này có thể là vật lý hoặc máy ảo. Mỗi máy được là “node”, mỗi nhóm gồm nhiều máy gọi là “cluster”. Kubernetes sẽ quản lí những container đang chạy trên cluster này. Kubernetes sẽ tạo ra một “siêu máy tính” với tốc độ xử lí nhanh hơn, nhiều không gian lưu trữ hơn và gia tăng độ kết nối hơn bất kỳ một máy đơn lẻ nào trong cluster. Các node sẽ có những dịch vụ cần thiết để chạy các “pod”. Mỗi pod sẽ chứa một hoặc nhiều container và là một thực thể của ứng dụng trong Kubernetes.

Một node (hoặc nhiều hơn) trong cluster được thiết kế như là “master” node. Master node sẽ chịu trách nhiệm cho việc quản lý cluster. Nó sẽ lên lịch chạy, phân chia công việc cho những node khác hay gọi là “worker” node. Yêu cầu đặt ra là master node phải tối ưu tài nguyên của cluster. Tất cả những tương tác trong cluster đều thông qua master node. Ví dụ như thay đổi cấu hình, thực thi hay hủy bỏ công việc hoặc điều khiển luồng dữ liệu vào-ra cluster.

Master node cũng chịu trách nhiệm cho việc giám sát toàn bộ cluster. Nó thực hiện những chức năng khác như tự động chạy lại trong trường hợp ứng dụng bị lỗi, chạy thêm ứng dụng nhưng vẫn đảm bảo các worker node có tải làm việc như nhau…

Kien truc kubernetes

Những thành phần chính trong Kubernetes

Cluster: tập hợp các node chạy những ứng dụng được container hóa và được quản lí bằng Kubernetes.

Pod: đơn vị nhỏ nhất trong Kubernetes được dùng để chứa các container.

Master node: được biết như “control plane”. Nó cung cấp các công cụ để phát triển, triển khai và quản lí vòng đời của các container.

Worker node: chạy các ứng dụng đã được container hóa. Một Kubernetes cluster thường có nhiều worker node (ít nhất là một).

API server: thành phần điều khiển chính. Nó chứa API của Kubernetes cho phép trao đổi thông tin giữa các thành phần trong cluster.

Controller-manager: giám sát trạng thái của cluster và tạo ra những thay đổi cần thiết để các node đạt đến trạng thái như mong đợi.

Container runtime: chịu trách nhiệm cho việc chạy các container.

Kubelet: chạy trên mỗi worker node trong cluster để đảm bảo các container chạy bên trong pod.

Kubectl: công cụ command-line cho việc điều khiển Kubernetes cluster.

Kubeproxy: giúp các worker node có thể giao tiếp với nhau bằng việc duy trì những dịch vụ về mạng trên các node.

CNI (Container Network Interface): tập hợp các công cụ định nghĩa các giao tiếp về mạng giữa nhà cung cấp dịch vụ mạng với Kubernetes.

CSI (Container Storage Interface): tập hợp các công cụ để quản lí việc lưu trữ và ứng dụng tích hợp với Kubernetes cluster.

Related Articles

Để lại bình luận