04 第4周D22 运维与CICD实操
D22 运维与 CI/CD 实操
D22 运维与 CI/CD 实操
精讲(必修,生产级收尾)。把培训闭环:亲手打 tag 发一次版、会看监控日志备份、按公司规范记录运维。这是从"学员"到"能干活的人"的最后一课。
教学目标(学完能做什么)
- 能说出并实操公司发版链路:
git tag→ GitHub Actions → 镜像 → k3s 部署(对照 D6 那张图,今天亲手跑) - 会用只读手段查看集群监控、日志、备份状态
- 理解 OPS_JOURNAL 的意义,会写规范运维记录
- 完成一次故障排查演练(定位→根因→处理→复盘)
前置要求
- D6(tag 触发机制)、D8(kubectl 只读)、D7(镜像)
本模块在业务中的位置
- 日常运维 = 公司生产稳定性的守卫。今天不追求"会所有运维",而是把链路跑通一遍 + 建立运维心智。参考
.agent/skills/cicd-deploy/SKILL.md与docs/dev-ops/guides/。
内容分段
1. 发版全流程实操(对照 D6 那张图,今天亲手跑)
git tag <app>-vX.Y.Z
git push origin <app>-vX.Y.Z
→ GitHub Actions(runner: self-hosted, linux, x64, k3s-test)
→ 构建镜像 → push registry.akria.net/<app>:<tag>
→ k3s 拉新镜像 → 滚动更新- 实操口径:用讲师准备的测试应用(或你自己的 mini 项目 mock 流程),不碰生产应用。
- 观察点:Actions 日志每步在干嘛;镜像 tag 是否正确;
kubectl rollout status是否完成。 - 详细指南:
.agent/skills/cicd-deploy/SKILL.md(发版前必读)。
2. 监控与日志
- 集群:
kubectl top nodes、headlamp(monitor.akria.net)。 - 服务可用性:uptime-kuma(
kuma.akria.net)。 - 日志:
kubectl logs/journalctl(D5/D8 已会)。 - 运维习惯:先看监控与日志再动手;告警=信号不是结论。
3. 备份意识
- 公司备份:Velero + Longhorn,定时计划见 CLAUDE.md(如 infra-daily 02:00 TTL 7d)。
- 查询备份(只读):
kubectl get backup.velero.io # 注意用 .velero.io,不是 backup
kubectl get schedules.velero.io- 理解:备份≠万无一失,要定期验证可恢复;恢复演练是更高级的活,本期了解即可。
4. OPS_JOURNAL:运维记录规范
- 意义:有运维价值的操作要记录(CLAUDE.md 要求),复盘有据、新人可学。
- 记录要点:时间 / 操作人 / 操作内容 / 命令 / 结果 / 影响 / 后续。
- 写一条示例(讲师演示):发版记录、故障处理记录。
5. 故障排查演练(今天的重头戏)
- 讲师制造一个"故障场景"(测试环境),学员按流程:
- 先看日志/监控,收集事实;
- 分段定位(客户端→服务→依赖);
- 找根因(4xx 查自己、5xx 查服务);
- 最小化修复(不动无关东西);
- 验证恢复;
- 写 OPS_JOURNAL 复盘。
- 常见演练故障:镜像 tag 拉不到、Pod CrashLoop(查日志)、依赖 DB 连不上、接口 500。
6. 新人运维红线(回顾 + 强调)
- 只读四件套(get/describe/logs/top);不删 CrashLoopBackOff Pod;不 force-delete PVC;不碰生产写操作。
- 任何有运维价值的操作先想:要不要记 OPS_JOURNAL。
- 拿不准就问;宁可慢,不可莽。
讲解节奏建议(约 90 分钟)
| 时段 | 内容 |
|---|---|
| 09:00-09:20 | 发版链路再讲 + 操作演练(测试应用 tag→部署) |
| 09:20-09:40 | 监控/日志/备份只读实操 |
| 09:40-10:00 | OPS_JOURNAL 规范与示例 |
| 10:00-10:50 | 故障排查演练(讲师设障,学员全流程) |
| 10:50-11:20 | 复盘 + 复盘记录 |
| 11:20-11:50 | 红线回顾 + 小结 |
| 11:50-12:00 | 布置作业 |
常见误区汇总
| 误区 | 正确理解 |
|---|---|
| 发版=打个 tag 就完 | 要看 Actions 全绿、镜像在、rollout 完成、服务健康 |
| 备份有就行 | 要定期验证可恢复;备份是手段不是保险柜 |
| 故障先重启再说 | 先看日志定位根因,盲目重启是掩盖 |
| 运维操作不用记 | 有运维价值就记 OPS_JOURNAL,复盘与传承靠它 |
| 查备份用 kubectl get backup | 用 backup.velero.io(AGENTS.md 明确) |
| 新人也能在生产"试着改改" | 只读;写操作属 Class A,先批准 |