

Trước khi bắt đầu cài đặt Kubernetes, điều quan trọng là phải hiểu một Kubernetes cluster thực chất được tổ chức như thế nào.
Ở mức tổng thể, Kubernetes được thiết kế theo mô hình control plane – worker node, trong đó control plane chịu trách nhiệm quản lý trạng thái của hệ thống, còn worker node cung cấp tài nguyên để chạy các workload.
Trong bài viết này, chúng ta sẽ:
Một Kubernetes cluster thường có kiến trúc như sau:

Một Kubernetes cluster thực chất là một hệ thống phân tán gồm nhiều node phối hợp với nhau để chạy containerized workloads. Các thành phần trong cluster được chia thành hai nhóm chính:
Control Plane đóng vai trò như “bộ não” của hệ thống. Nó nhận các yêu cầu từ người dùng hoặc hệ thống tự động (CI/CD, controllers), sau đó quyết định ứng dụng nên chạy ở đâu, trạng thái mong muốn của cluster là gì, và làm thế nào để duy trì trạng thái đó.
Worker Nodes, ngược lại, là các máy chủ chịu trách nhiệm chạy workload thực tế. Mỗi worker node sẽ chạy các Pod, trong đó Pod chứa một hoặc nhiều container của ứng dụng.
Control Plane bao gồm một số thành phần cốt lõi phối hợp với nhau để quản lý cluster.
👉 kube-apiserver: API Server là trung tâm giao tiếp của Kubernetes.
👉 etcd: cơ sở dữ liệu distributed key-value store lưu trữ toàn bộ trạng thái của cluster. Các thông tin được lưu trong etcd:
👉 kube-scheduler: chịu trách nhiệm quyết định Pod sẽ được chạy trên Node nào. Khi một Pod mới được tạo ra nhưng chưa được gán Node, Scheduler sẽ:
👉 kube-controller-manager: chạy nhiều control loop khác nhau để đảm bảo trạng thái cluster luôn đúng với cấu hình mong muốn. Một số controller phổ biến:
Worker Node là nơi các workload thực sự được chạy. Mỗi Worker Node thường bao gồm hai thành phần chính.
👉 kubelet là agent chạy trên mỗi node. Nó chịu trách nhiệm:
👉 kube-proxy: chịu trách nhiệm thiết lập các quy tắc mạng trên node để hỗ trợ Kubernetes Service.
Từ góc nhìn kiến trúc, Kubernetes được tổ chức theo mô hình phân tách rõ ràng giữa Control Plane và Worker Nodes.
Nhờ cơ chế theo dõi trạng thái liên tục giữa Control Plane và các Worker Nodes, Kubernetes có thể tự động điều chỉnh hệ thống khi có sự thay đổi hoặc sự cố xảy ra. Điều này giúp cluster duy trì trạng thái ổn định và đảm bảo workload luôn được vận hành đúng như mong muốn.
Trước khi bắt đầu xây dựng Kubernetes cluster, chúng ta cần chuẩn bị một môi trường hạ tầng tối thiểu để thực hiện các bước bootstrap hệ thống.
Trong thực tế, Kubernetes có thể chạy trên nhiều loại hạ tầng khác nhau: từ máy vật lý (bare-metal), máy ảo trong datacenter, cho tới các môi trường cloud. Tuy nhiên để phục vụ mục tiêu học tập và hiểu rõ các thành phần bên trong Kubernetes, chúng ta sẽ triển khai một cluster nhỏ với cấu trúc tối giản nhưng đầy đủ các thành phần cốt lõi.
Tùy vào mục đích sử dụng, Kubernetes có thể được triển khai theo nhiều mô hình khác nhau.
Đây là mô hình đơn giản nhất, trong đó Control Plane và Worker chạy trên cùng một node. Mô hình này thường được sử dụng cho:
Đây là mô hình phổ biến hơn trong các cluster nhỏ hoặc môi trường lab. trong mô hình này Control Plane và Worker Nodes được tách riêng và chạy trên các máy chủ hoặc máy ảo khác nhau. Việc tách biệt này giúp hệ thống dễ dàng mở rộng, đồng thời đảm bảo tính ổn định khi cluster vận hành workload ở quy mô lớn.
Trong các môi trường production, Control Plane thường được triển khai theo mô hình high availability (HA) với tối thiểu 3 node control plane. Cấu hình này giúp cluster vẫn có thể tiếp tục hoạt động ngay cả khi một node control plane gặp sự cố.
Tuy nhiên, đối với mục tiêu học tập hoặc môi trường thử nghiệm, việc triển khai đầy đủ mô hình HA là không thực sự cần thiết và cũng tiêu tốn nhiều tài nguyên hơn. Vì vậy, trong phạm vi của series này chúng ta sẽ sử dụng một cấu hình tối thiểu của mô hình phân tách, trong đó:

Cấu hình này đủ để chúng ta hiểu rõ cách các thành phần của Kubernetes được bootstrap và cách cluster vận hành trong thực tế. Cụ thể, lab trong hướng dẫn sẽ sử dụng 4 máy với cấu hình như sau:
Name | Description | CPU | RAM | Storage |
| jumpbox | Administration host | 1 | 512 MB | 10 GB |
| server | Kubernetes Control Plane | 1 | 2 GB | 20 GB |
| node-0 | Kubernetes Worker Node | 1 | 2 GB | 20 GB |
| node-1 | Kubernetes Worker Node | 1 | 2 GB | 20 GB |
Jumpbox là máy quản trị trung tâm được sử dụng để thực hiện toàn bộ các thao tác cấu hình và bootstrap cluster. Thay vì thao tác trực tiếp trên từng node, chúng ta sẽ sử dụng jumpbox như một điểm truy cập quản trị duy nhất.
Trong quá trình xây dựng cluster, jumpbox sẽ được sử dụng để:
Cách tiếp cận này khá phổ biến trong nhiều môi trường production, nơi các node trong cluster thường được truy cập thông qua một administration host hoặc bastion host thay vì truy cập trực tiếp từ bên ngoài.
Node này chạy các thành phần quan trọng của Kubernetes:
Control Plane chịu trách nhiệm:
Các Worker Node là nơi thực sự chạy workload của hệ thống.
Trên mỗi worker node sẽ có các thành phần:
Các Pod và container của ứng dụng sẽ được scheduler phân phối xuống các worker node này.
Tất cả các máy trong lab cần chạy:
Debian 12 (bookworm)
Bạn có thể kiểm tra phiên bản hệ điều hành bằng lệnh:
cat /etc/os-releaseKết quả mong đợi:
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debianKubernetes được thực hiện nhất quán. Việc sử dụng cùng một phiên bản hệ điều hành giúp đảm bảo các bước cài đặt và cấu hình
Sau khi đã hiểu kiến trúc của Kubernetes và chuẩn bị xong môi trường hạ tầng, chúng ta đã sẵn sàng bước vào phần quan trọng nhất: bắt đầu xây dựng cluster từ những thành phần đầu tiên.
Trong Part 2, chúng ta sẽ thiết lập jumpbox – điểm quản trị trung tâm của cluster – và chuẩn bị các công cụ cần thiết cho quá trình bootstrap Kubernetes.
