Blog
Thoughts on engineering, design, and building great products.
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.
Deployment và ReplicaSet: Giữ Ứng Dụng Luôn Sống
Deployment là đối tượng bạn dùng nhiều nhất để chạy ứng dụng: nó giữ N bản sao pod luôn sống (qua ReplicaSet), tự dựng lại khi pod chết, scale lên/xuống, và cập nhật phiên bản dần không downtime — kèm rollback. Bài này chứng minh từng tính chất bằng lệnh thật.