

Một buổi tối khi hệ thống đang chạy bình thường, một node trong Kubernetes cluster đột nhiên không còn ở trạng thái Ready. Pod bắt đầu được reschedule sang các node khác, một vài service phản hồi chậm hơn bình thường và dashboard hiển thị hàng loạt cảnh báo.
Bạn mở terminal và bắt đầu kiểm tra:
kubectl get nodes
kubectl describe node
kubectl logs ...Sau vài phút xem log và trạng thái hệ thống, một câu hỏi quen thuộc xuất hiện:
Đây là những câu hỏi mà hầu hết kỹ sư vận hành Kubernetes đều từng gặp phải trong quá trình troubleshooting.
Ngày nay, việc tạo một Kubernetes cluster đã trở nên dễ dàng hơn bao giờ hết.
Chỉ với vài lệnh kubeadm, một bản phân phối Kubernetes như RKE2, hoặc thậm chí vài cú click trên các dịch vụ managed Kubernetes trên cloud, chúng ta có thể nhanh chóng có một cluster sẵn sàng chạy workload.
Những công cụ này giúp tự động hóa gần như toàn bộ quá trình cài đặt:
Nhờ vậy, việc triển khai Kubernetes trở nên nhanh và thuận tiện hơn rất nhiều.
Tuy nhiên, chính sự tiện lợi này đôi khi cũng khiến chúng ta bỏ qua một câu hỏi quan trọng:
“Kubernetes cluster thực sự được xây dựng và vận hành như thế nào bên dưới những công cụ tự động đó?”
Khi mọi thứ hoạt động bình thường, câu hỏi này có thể không quá quan trọng.
Nhưng khi hệ thống gặp sự cố — node mất kết nối, Pod liên tục restart, scheduling không diễn ra như mong muốn — việc hiểu rõ cách Kubernetes hoạt động bên trong sẽ trở nên cực kỳ quan trọng.
Series “Xây dựng Kubernetes Cluster từ Con Số 0” được viết với một mục tiêu khác so với các hướng dẫn cài đặt Kubernetes thông thường.
Thay vì chỉ tập trung vào việc triển khai cluster nhanh nhất có thể, chuỗi bài này sẽ đi từng bước trong quá trình xây dựng Kubernetes cluster từ nền tảng, để hiểu rõ:
Thông qua quá trình này, mục tiêu không chỉ là tạo ra một cluster chạy được workload, mà quan trọng hơn là hiểu được cách Kubernetes vận hành như một hệ thống phân tán.
Khi hiểu được những cơ chế này, việc troubleshooting, vận hành và thiết kế hệ thống trên Kubernetes sẽ trở nên chủ động và hiệu quả hơn.
Trong series này, chúng ta sẽ từng bước xây dựng một Kubernetes cluster từ nền tảng cơ bản đến khi có thể vận hành hoàn chỉnh, dựa trên phương pháp triển khai thủ công (the hard way) để hiểu rõ bản chất từng thành phần.
Tìm hiểu kiến trúc tổng thể của Kubernetes (Control Plane và Worker Node), các thành phần cốt lõi và chuẩn bị các yêu cầu về hạ tầng, network, OS trước khi triển khai
Thiết lập máy quản trị (jumpbox), khởi tạo các node (control plane, worker) và cấu hình networking cơ bản giữa các máy.
Xây dựng hệ thống chứng chỉ (CA, TLS), tạo kubeconfig cho các thành phần và cấu hình mã hóa dữ liệu (encryption at rest) cho cluster.
Cài đặt và cấu hình etcd — datastore trung tâm của Kubernetes, hiểu về quorum và cách đảm bảo tính nhất quán dữ liệu.
Triển khai các thành phần chính của control plane: API Server, Controller Manager và Scheduler — thành phần điều khiển toàn bộ cluster.
Cấu hình các worker node, cài đặt kubelet, kube-proxy và thực hiện join node vào cluster.
Cấu hình kubectl để truy cập cluster, thiết lập networking cho Pod (routing/CNI), và thực hiện các bài kiểm thử để xác nhận cluster hoạt động đúng.
Trước khi cài đặt bất kỳ thành phần nào của Kubernetes, điều quan trọng là phải hiểu rõ kiến trúc của hệ thống.
Chúng ta sẽ bắt đầu từ những nền tảng đó: kiến trúc của Kubernetes cluster và các thành phần cốt lõi của hệ thống trong Part 1 nhé!
