第 3 课
Kubernetes 与 CI 中的 YAML
日常编辑的清单与工作流模式。
生产环境里 YAML 问题多半来自 Kubernetes 清单 与 CI 工作流,而不是玩具示例。
Kubernetes 清单
Deployment 通常包含:
- 顶层 API 元数据(
apiVersion、kind、metadata) spec.template下的 Pod 模板- 含端口、环境变量与探针的容器数组
缩进错误常出现在 第三、四层嵌套,因此带行列号的解析提示比笼统的「YAML 无效」更有用。
GitHub Actions 工作流
工作流文件混合映射与序列:
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: npm test
常见问题:
steps缩进错误,导致 step 与jobs同级- 多行 shell 未使用
|或>块标量 - 在块风格文件里混用 JSON 式
{ }流式集合
Docker Compose
Compose 强调服务映射与依赖关系。像 "8080:80" 这样的端口字符串在 YAML 可能歧义解析 : 时应保持引号。
实用习惯
- apply 前校验 — 本地先抓语法错误
- PR 前格式化 — 统一缩进减少 Review 噪音
- 可选键排序 — 团队一致时 diff 更清晰
- 分享链接不含密钥 — 发给同事时用占位符示例
语法正确的 YAML 是必要条件,不是充分条件:资源名、命名空间与 RBAC 仍需结合集群审查。