部署与伸缩(Docker / Compose / K8s)
所属:阶段七 · 工程化部署与运维 目标:掌握容器化、Compose 一键全家桶、K8s 部署、HPA、任务队列、优雅停机。
📌 学习目的
掌握容器化、Compose 一键全家桶、K8s 部署、HPA、任务队列、优雅停机。
✅ 学习要求(前置条件)
已完成「01_agent_engineering_best_practices」+ 阶段一「08_software_engineering_basics」。
📚 主要学习内容
- Dockerfile 多阶段构建 / 镜像分层缓存
- docker-compose:app + worker + Redis + PG + Qdrant 全家桶
- K8s:Deployment + Service + HPA
- 任务队列:API 入队即返回 / worker 消费(arq)
- 优雅停机:SIGTERM → 停接新请求 → 等存量 → 落盘 → 退出
📖 对应 docs
- 目录:
docs/07-阶段七-工程化部署与运维/(按目录名里的第 X 篇对应) - 在 docs 目录里找到对应的小点 markdown 文件阅读详细理论。
🛠️ 建议练习
- 用 docker-compose 拉起 app + worker + Redis + PG + Qdrant
- 为长任务 Agent 接 arq 任务队列
- 实现优雅停机(preStop hook + 状态持久化)
🏁 完成后达成标准
- 能用 docker-compose 拉起 Agent 全栈
- 能用 K8s 部署并配置 HPA
- 能实现优雅停机
🚀 运行提示
# 激活根目录的虚拟环境
cd /Users/jack/source/Demo/py/demo_python_agent
source .venv/bin/activate # 或直接用 uv run ...
# 进入本章目录
cd code/007_phase7_engineering/02_deployment_and_scaling
# 跑你的练习文件
uv run python your_exercise.py