✏️ Bài tập Ngày 5: Kustomize Multi-Environment¶
🎯 Mục tiêu¶
- Deploy 2 môi trường (Dev, Prod) từ cùng base code
- Thay đổi replicas giữa Dev và Prod bằng Kustomize
- Quan sát sự khác biệt trên ArgoCD UI
Bài tập 1: Render và so sánh¶
# Render Dev
kubectl kustomize kustomize/overlays/dev/ > /tmp/dev-rendered.yaml
# Render Prod
kubectl kustomize kustomize/overlays/prod/ > /tmp/prod-rendered.yaml
# So sánh
diff /tmp/dev-rendered.yaml /tmp/prod-rendered.yaml
Câu hỏi: Liệt kê tất cả điểm khác nhau giữa Dev và Prod.
Bài tập 2: Deploy lên ArgoCD¶
- Push thư mục
kustomize/lên Git repo - Tạo 2 ArgoCD Applications:
- Sync cả hai:
- Kiểm tra:
Bài tập 3: Thay đổi Replicas¶
- Sửa file
kustomize/overlays/dev/kustomization.yaml: - Thay
replicas: 2thànhreplicas: 3 - Commit & Push lên Git
- Quan sát ArgoCD tự động sync
- Kiểm tra:
Bài tập 4: Thêm overlay cho Staging (Nâng cao)¶
- Tạo thư mục
kustomize/overlays/staging/kustomization.yaml: - Kế thừa từ
../../base - replicas: 3
- namePrefix:
staging- - namespace:
kustomize-staging -
labels:
environment: staging -
Tạo ArgoCD Application mới cho staging
-
Deploy và kiểm tra
✅ Checklist hoàn thành¶
- [ ] Render thành công Dev và Prod manifests
- [ ] Deploy 2 môi trường qua ArgoCD
- [ ] Dev có 2 pods, Prod có 5 pods
- [ ] Thay đổi replicas qua Git → ArgoCD tự sync
- [ ] (Nâng cao) Thêm môi trường Staging thành công