Skip to the content.

Về lại trang chủ

Giới thiệu về Micro-service - Docker - Kubernetes (Phần 5)

Kiến trúc tổng quan của Kubernetes

Bắt đầu từ phần này, mình sẽ trình bày những phần đi sâu hơn về kiến trúc của Kubernetes, các thành phần trong một cụm Kubernetes và chức năng của chúng. Đương nhiên, để hiểu tường tận về cấu trúc bên dưới của một nền tảng phức tạp như K8S là một điều rất khó. Vậy nên, mình chỉ xin chia sẻ những hiểu biết của mình ở mức high-level, và hi vọng những kiến thức này sẽ giúp ích cho những người mới làm quen với K8S như mình hồi đó

Bắt đầu nhé !!!

Kiến trúc tổng quan của một cụm K8S

Khi nói về việc triển khai Kubernetes, tức là chúng ta đang tạo ra một cụm Kubernetes (Kubernetes cluster). Một Kubernetes cluster hoàn chỉnh sẽ bao gồm nhiều máy tính thợ (worker machine), và một trung tâm điểu khiển - gọi là Control Plane. Mình sẽ giới thiệu kĩ hơn về các thành phần này ở phía sau, nhưng về cơ bản, kiến trúc này giống như một mô hình Master-Slaver thông thường trong đó:

Bạn có thể tham khảo kiến trúc tổng quan này bên dưới

kubernetes-component

Các thành phần của Kubernetes (nguồn: kubernetes.io)

Các thành phần của một Node trong K8S cluster

Một Node là một máy tính giúp chạy các ứng dụng đóng gói trên K8S. Như bạn vẫn còn nhớ, Kubernetes là nền tảng cho phép quản lý các container ứng dụng một cách tự động. Trong Kubernetes cluster, các container này được đặt trong các Pod, và các Pod này chạy trên các Node.

Pod-Node

Mình sẽ giải thích kĩ hơn về khái niệm Pod trong những phần tiếp theo (tránh trường hợp người đọc bị ngộ độc thuật ngữ mới), nhưng về cơ bản, Pod sẽ bao gồm 1 hoặc nhiều container được chay trong một môi trường chung (shared context). Đơn giản là, thay vì việc bạn chạy các container trực tiếp bên trong Node, bạn sẽ bỏ chúng vào các Pod, nơi chúng sẽ cùng chia sẻ tài nguyên. Vậy nên, Pod được coi là đơn vị tính toán nhỏ nhất trong Kubernetes mà bạn có thể quản lý, chứ không phải là từng container riêng nhé.

Các thành phần chính trong một Node gồm có:

Các thành phần của Control Plane trong K8S cluster

Như mình đã nói sơ qua ở trên, Control Plane phụ trách việc điều hành toàn bộ cluster, trong đó bao gồm việc quản lý các Node cũng như các Pod. Control Plane thường được chạy ở một máy tính riêng để tránh chạy chung với container của người dùng

Các thành phần chính của Control Plane bao gồm:

Ngoài ra, một K8S cluster còn có các phần bổ sung khác, như DNS hoặc UI Dashboard.

Trong bài tiếp theo, mình sẽ đi sâu hơn vào chức năng cụ thể của các thành phần, cũng như quá trình chúng tương tác với nhau khi làm việc.