Logo
Featured Image

Kubernetes (K8s): Kiến Trúc, Chức Năng & Cơ Chế Hoạt Động.

Author
Tobi 09/03/2026 6 views

 

Trong kỷ nguyên Cloud Native, Kubernetes (K8s) đã trở thành "hệ điều hành" cho các ứng dụng container. Nếu bạn đã quen với Docker, thì K8s chính là bước tiếp theo để vận hành hệ thống ở quy mô lớn.

1. Kubernetes (K8s) là gì?

Kubernetes (viết tắt là K8s) là một nền tảng mã nguồn mở dùng để tự động hóa việc triển khai, mở rộng và quản lý các ứng dụng container.

  • Tên gọi: Xuất phát từ tiếng Hy Lạp có nghĩa là "người lái tàu".

  • Nguồn gốc: Được phát triển bởi Google (dựa trên dự án nội bộ Borg) và hiện được quản lý bởi CNCF.


2. Kiến trúc chi tiết của Kubernetes

Kiến trúc K8s hoạt động theo mô hình Cluster (Cụm), chia làm hai phần chính: Control PlaneWorker Nodes.

2.1. Control Plane (Bộ não điều khiển)

Đóng vai trò quyết định và giám sát toàn bộ cluster:

  • kube-apiserver: "Cổng vào" duy nhất của Cluster. Mọi thao tác từ người dùng (qua kubectl) hay các thành phần khác đều đi qua đây.

  • etcd: Cơ sở dữ liệu lưu trữ mọi cấu hình và trạng thái của cluster.

  • kube-scheduler: Tìm kiếm Node phù hợp nhất để chạy các Pod mới dựa trên tài nguyên.

  • kube-controller-manager: Chạy các tiến trình nền để đảm bảo trạng thái thực tế luôn khớp với cấu hình mong muốn.

2.2. Worker Nodes (Nơi thực thi)

Là các máy chủ (vật lý hoặc ảo) chạy ứng dụng:

  • Kubelet: Một "đại lý" trên mỗi node, đảm bảo các container trong Pod hoạt động bình thường.

  • Kube-proxy: Quản lý quy tắc mạng, giúp định tuyến lưu lượng đến các container.

  • Container Runtime: Phần mềm chạy container (như containerd, Docker, CRI-O).


3. Chức năng chính của Kubernetes

Tại sao K8s lại trở thành tiêu chuẩn công nghiệp?

  1. Service Discovery & Load Balancing: K8s có thể "phơi" một container ra ngoài internet hoặc nội bộ và tự động cân bằng tải.

  2. Storage Orchestration: Tự động gắn các hệ thống lưu trữ (Local, Cloud như AWS EBS, Google Persistent Disk).

  3. Automated Rollouts & Rollbacks: Triển khai phiên bản mới của ứng dụng mà không gây gián đoạn (Zero Downtime). Nếu có lỗi, K8s tự động quay lại phiên bản cũ.

  4. Self-healing: Tự khởi động lại container bị lỗi, thay thế Pod khi Node chết.

  5. Secret & Configuration Management: Quản lý mật khẩu, mã Token mà không cần build lại image.


4. Cơ chế hoạt động của K8s

K8s hoạt động dựa trên cơ chế Declarative Configuration (Khai báo trạng thái) thay vì ra lệnh trực tiếp.

  1. Khai báo (YAML/JSON): Bạn mô tả trạng thái mong muốn (ví dụ: "Tôi muốn chạy 3 bản sao của ứng dụng Java Spring Boot").

  2. Lưu trữ: Thông tin được gửi đến api-server và lưu vào etcd.

  3. Hòa giải (Reconciliation Loop): Controller Manager liên tục kiểm tra. Nếu thấy hiện tại chỉ có 2 bản sao (do 1 cái bị lỗi), nó sẽ ra lệnh cho Scheduler tạo thêm 1 bản sao mới trên Node còn trống.


5. Tìm hiểu về Kubernetes Engine Services

Để giảm bớt gánh nặng quản lý Control Plane và etcd, các nhà cung cấp Cloud lớn đưa ra các dịch vụ Managed Kubernetes (Kubernetes Engine):

Dịch vụ Nhà cung cấp Đặc điểm
GKE (Google Kubernetes Engine) Google Cloud Tiên tiến nhất, tích hợp sâu các tính năng của Google.
EKS (Elastic Kubernetes Service) AWS Phổ biến nhất cho doanh nghiệp lớn, bảo mật cực cao.
AKS (Azure Kubernetes Service) Microsoft Tích hợp tốt nhất với hệ sinh thái Windows/Azure.
LKE/DOKS Linode/DigitalOcean Đơn giản, chi phí rẻ, phù hợp cho blog công nghệ.

6. Lời kết

Kubernetes không chỉ là một công cụ, nó là một cuộc cách mạng trong cách chúng ta vận hành phần mềm. Với Tobi, việc đưa ứng dụng từ Eclipse/Java lên Docker, sau đó đẩy lên K8s sẽ là một quy trình chuẩn DevOps giúp hệ thống của bạn (như satikey.store) luôn sẵn sàng 24/7.

Bình luận (0)

+ =
Zalo