Compose → Kind/Helm cùng một ứng dụng
Một hệ thống cần thay đổi runtime manifests, không đổi business contract.
Nắm bản chất
Capstone Buổi 20 gồm Nginx frontend, API, Publisher, Worker, PostgreSQL và Redis. Compose điều phối local environment; Kind/Helm mô phỏng Kubernetes delivery. Database migration là one-shot job; secrets cần tạo trước; app Deployments được cài sau khi dependencies ready.
Chỉ số quan trọng không phải Pod Running mà là smoke test end-to-end: POST idempotent job, outbox publish, Redis consume, Worker ghi status completed. Port-forward chỉ mở localhost; ứng dụng lab chưa có authentication để public.
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
python3 scripts/init_secrets.py
docker compose up -d --build
python3 scripts/smoke.py
bash scripts/kind-up.sh
kubectl -n final20 get pods,svc,pvc,job
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
Thực hành Compose trước rồi Kind, ghi lại sự khác nhau giữa Service DNS, storage, migration và healthchecks; không dùng chung live DB giữa hai môi trường.
Lỗi dễ mắc
Chạy hai stacks cùng lúc có thể trùng host ports hoặc tiêu tốn RAM; kiểm tra context và local resources trước.
Tự kiểm tra
Tại sao migration Job Exit(0) lại được coi là thành công?Xem đáp án ↗
Vì migration là one-shot workload, hoàn thành việc rồi dừng đúng là thiết kế.
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 20Đố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 ↗