Blog
Thoughts on engineering, design, and building great products.
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.
Health Checks: Liveness và Readiness Probes
Làm sao Kubernetes biết một pod 'Running' có thật sự khoẻ và sẵn sàng nhận traffic? Qua probe. Liveness probe restart container treo, readiness probe giữ traffic khỏi pod chưa sẵn sàng. Bài này demo cả hai bằng pod cố tình hỏng, xem K8s phản ứng.
Ingress: Định Tuyến HTTP Vào Cluster
NodePort cho mỗi service một cổng lạ — không ổn khi có nhiều service. Ingress là một điểm vào HTTP duy nhất, định tuyến theo tên miền và đường dẫn tới đúng service, kèm TLS. Bài này: bật ingress addon của minikube, viết Ingress rule, và test định tuyến theo Host.
Lưu Trữ: Volumes, PV, PVC và StorageClass
Dữ liệu trong pod bay hơi cùng pod — không ổn cho database hay file người dùng. Kubernetes tách 'yêu cầu lưu trữ' (PVC) khỏi 'ổ đĩa thật' (PV), với StorageClass cấp phát động. Bài này chứng minh dữ liệu sống lâu hơn pod bằng một thí nghiệm xóa-rồi-dựng-lại.
ConfigMap và Secret: Tách Cấu Hình Khỏi Image
Cùng một image phải chạy được ở dev, staging, production — nghĩa là cấu hình không thể nằm cứng trong image. ConfigMap giữ cấu hình thường, Secret giữ dữ liệu nhạy cảm. Bài này: tạo và inject chúng vào pod qua biến môi trường lẫn file, kèm cảnh báo quan trọng về 'Secret chỉ là base64'.
Namespace, Labels và Selectors
Hai cơ chế tổ chức nền tảng của Kubernetes: namespace chia cluster thành những ngăn tách biệt, còn label/selector là cách gắn thẻ và chọn lọc tài nguyên — chính là 'chất keo' mà Deployment và Service dùng để tìm pod. Bài này làm rõ cả hai bằng ví dụ thật.
Service: Địa Chỉ Ổn Định và Cân Bằng Tải
Pod đến rồi đi, IP đổi liên tục — vậy gọi chúng kiểu gì? Service cho một địa chỉ ổn định trước nhóm pod và tự chia tải. Bài này: ClusterIP, NodePort, LoadBalancer khác nhau ra sao, DNS nội bộ giúp gọi service bằng tên, và kube-proxy đứng sau.