第 3 课

Kubernetes 与 CI 中的 YAML

日常编辑的清单与工作流模式。

生产环境里 YAML 问题多半来自 Kubernetes 清单CI 工作流,而不是玩具示例。

Kubernetes 清单

Deployment 通常包含:

  • 顶层 API 元数据(apiVersionkindmetadata
  • 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 可能歧义解析 : 时应保持引号。

实用习惯

  1. apply 前校验 — 本地先抓语法错误
  2. PR 前格式化 — 统一缩进减少 Review 噪音
  3. 可选键排序 — 团队一致时 diff 更清晰
  4. 分享链接不含密钥 — 发给同事时用占位符示例

语法正确的 YAML 是必要条件,不是充分条件:资源名、命名空间与 RBAC 仍需结合集群审查。

想动手练习时,可使用 DevCove 相关工具——可选,不属于本课正文。

打开相关工具

返回课程概览