目录
1. 为什么要把 Spring Boot 应用塞进容器?
1.1 准备一个 Spring Boot 项目
1.2 为什么要选 Docker 和 K8s?
2. 打造一个精致的 Docker 镜像
2.1 编写 Dockerfile
2.2 打包 Spring Boot 应用
2.3 构建和测试 Docker 镜像
2.4 优化镜像:让它更小更快
2.5 推送镜像到仓库
3. 初探 Kubernetes:让容器“群舞”
3.1 准备 K8s 环境
3.2 编写 K8s 部署文件
3.3 部署到 K8s
4. 进阶:环境变量与配置管理
4.1 用环境变量
4.2 用 ConfigMap
5. 用 Ingress 打通外部访问
5.1 什么是 Ingress?
5.2 安装 Ingress Controller
5.3 编写 Ingress 规则
5.4 本地测试 Ingress
5.5 HTTPS 配置(生产必备)
6. 自动扩展:让应用随流量起舞
6.1 配置资源指标
6.2 创建 HPA
6.3 模拟高负载测试
7. 日志与监控:抓住应用的“脉搏”
7.1 收集日志
7.2 监控应用
8. 持续部署:让更新丝滑如流水
8.1 安装 GitHub Actions
8.2 更新 Deployment
9. 服务网格:给 Spring Boot 应用加个“智能管家”
9.1 为什么应该服务网格?
9.2 安装 Istio
9.3 给 Spring Boot 应用注入 Sidecar
9.4 配置流量管理
9.5 可观测性:追踪请求
10. 故障注入与混沌工程:让应用更“抗揍”
10.1 模拟服务延迟
10.2 模拟服务失败
10.3 混沌工程器具
11. 多环境部署:从开发到生产无缝切换
11.1 环境隔离的思路
11.2 用 Namespace 隔离环境
11.3 环境专属的 ConfigMap 和 Secret
11.4 动态加载配置
11.5 验证多环境部署
12. 安全加固:给 Spring Boot 应用穿上“防弹衣”
12.1 镜像安全
12.2 K8s 安全配置
12.3 Spring Boot 应用安全
13. 数据库集成:让 Spring Boot 和 MySQL 愉快玩耍
13.1 部署 MySQL
13.2 配置 Spring Boot 连接 MySQL
13.3 测试数据库连接
1. 为什么要把 Spring Boot 应用塞进容器?
容器化已经不是什么新鲜玩意儿,但它为什么这么火?简单来说,Docker 和 Kubernetes(K8s)让你的应用像乐高积木一样,随时拼装、拆卸、搬运,还能保证在不同环境下跑得稳稳当当。对于 Spring Boot 应用,容器化能解决“在我机器上明明好好的”这种玄学疑问。Docker 献出一致的运行环境,K8s 则让你像指挥交响乐团一样管理成百上千的容器。