Kustomize và quản lý overlays
Khi cần chỉnh manifest không phải viết lại một chart hoàn chỉnh.
Nắm bản chất
Kustomize sử dụng bases và overlays để biến đổi Kubernetes resources mà không cần templating dạng Helm. Ví dụ Dev/Prod dùng cùng Deployment base nhưng khác replica count, namespace, resource limits hay config maps.
Helm và Kustomize không bắt buộc loại trừ nhau, nhưng mỗi resource phải có một owner và quy trình GitOps thống nhất để tránh drift. Nếu overlay patch selector labels không tương thích Pod template, Service có thể mất endpoints.
Luồng hoạt động
Hãy tự giải thích mỗi mũi tên: dữ liệu, quyền hoặc tín hiệu nào được truyền qua bước này?
Lệnh & cấu hình mẫu
# overlays/dev/kustomization.yaml
resources:
- ../../base
namespace: app-dev
replicas:
- name: api
count: 1
kubectl kustomize overlays/dev
kubectl apply -k overlays/dev
Lệnh có placeholder hoặc phụ thuộc môi trường thì cần thay thông tin thực tế, kiểm tra quyền và chỉ thực hiện trên tài nguyên được phép.
Bài tập 10–20 phút
Tạo một base Deployment và hai overlays chỉ khác replicas/resources. Diff
kết quả bằng kubectl kustomize, sau đó áp dụng vào namespaces
lab riêng.
Lỗi dễ mắc
Đừng copy-paste hai tập YAML hàng trăm dòng chỉ khác hai giá trị rồi sửa tay lâu dài; drift sẽ khó kiểm soát.
Tự kiểm tra
Kustomize overlay dùng làm gì?Xem đáp án ↗
Dùng để tùy biến một tập resource gốc theo môi trường mà không nhân bản toàn bộ file.
Học thêm qua lab
Có project thực hành đúng với chương này, kèm README và những giới hạn môi trường cần lưu ý.
↓ Tải mã nguồn thực hành chương 10Đối chiếu tài liệu gốc
Cú pháp và khả năng hỗ trợ có thể thay đổi theo phiên bản. Trước khi dùng Production, hãy kiểm tra tài liệu tương ứng.
Mở tài liệu chính thức ↗