Blog
Thoughts on engineering, design, and building great products.
PKI và TLS: Vì Sao Cluster Cần Nhiều Certificate Đến Vậy
Một cluster Kubernetes cần tới cả chục certificate và ba CA riêng. Bài này giải thích mô hình PKI/TLS làm nền cho mọi kết nối trong cluster: CA ký cho ai, mTLS hai chiều hoạt động ra sao, và một điểm hay quên — trường CN và O trong certificate chính là danh tính và nhóm RBAC mà api-server tin.
Kiến Trúc Kubernetes Nhìn Sâu: Vòng Lặp, Watch và API Server
Đào sâu hơn sơ đồ control plane / node quen thuộc: control loop chạy ở đâu, cơ chế list-watch giúp các thành phần phối hợp mà không cần biết nhau, vì sao mọi thứ đi qua api-server, và một lệnh kubectl apply đi qua những chặng nào trước khi container chạy.
Vì Sao Dựng Kubernetes Bằng Tay, và Ta Sẽ Dựng Cái Gì
Mở đầu series: 'from scratch' nghĩa là tự tay tạo từng certificate, bootstrap từng binary, nối mạng pod — không kubeadm, không script. Vì sao đi đường dài này lại giúp hiểu Kubernetes nhanh hơn, ta sẽ dựng một cluster HA ra sao, rồi dùng chính nó làm phòng thí nghiệm để đi sâu vào toàn bộ concept của Kubernetes.
Capstone: Deploy Ứng Dụng Hoàn Chỉnh và Tổng Kết Series
Ghép tất cả: một ứng dụng nhiều thành phần (frontend nhiều bản sao + database có lưu trữ) triển khai lên minikube từ đầu tới cuối, dùng đủ Deployment, Service, ConfigMap/Secret, PVC, Ingress, probes và resources. Rồi dọn dẹp cluster, tổng kết hành trình và gợi ý học tiếp.
Quan Sát và Gỡ Lỗi: logs, exec, describe, events
Khi pod không chạy, bạn cần biết nhìn vào đâu. Bài này rèn bộ kỹ năng gỡ lỗi hằng ngày qua hai ca hỏng thật — ImagePullBackOff và CrashLoopBackOff: đọc describe/events để biết vì sao, logs để xem app nói gì, exec để soi bên trong, và dashboard để nhìn tổng thể.
Các Loại Workload: StatefulSet, DaemonSet, Job và CronJob
Deployment hợp cho app không trạng thái, nhưng không phải mọi thứ đều như vậy. StatefulSet cho app cần danh tính ổn định (database), DaemonSet cho thứ phải chạy trên mọi node (agent log), Job/CronJob cho tác vụ chạy-rồi-xong. Bài này chạy thật từng loại và chỉ rõ khi nào dùng cái nào.
Resource Requests/Limits và Autoscaling (HPA)
Mỗi pod cần nói rõ nó muốn bao nhiêu CPU/RAM — đó là cách scheduler đặt pod đúng chỗ và cluster không sập vì một pod ngốn hết tài nguyên. Khai báo xong, HorizontalPodAutoscaler tự tăng/giảm số bản sao theo tải. Bài này tạo tải thật và xem HPA scale từ 1 lên nhiều pod.