测验:仓库结构与环境晋级
当应用程序源代码和部署清单放在同一存储库时,CI 提交图像标签时会出现哪些典型问题?
- Git 存储库容量快速增长
- 标签提交可能会再次触发 CI,导致构建无限重复。
- kustomize 无法识别图像标签
- Argo CD 将无法克隆存储库
将环境划分为分支(Environment per Branch)的主要缺点是什么?
- 分支是 Git 不支持的功能,因此该工具受到限制。
- 如果您使用分支,Argo CD 无法轮询。
- 每个分支都需要一个单独的集群。
- 分支机构之间的差异表现出环境和时间的差异,并且采摘成本增加。
在精心设计的 GitOps 存储库中,阶段 → 产品推广 PR 的理想状态是什么样的?
- 用舞台覆盖内容覆盖整个产品覆盖。
- 强制将 prod 分支重置为 stage 分支。
- 产品覆盖层中的图像标签中只有一行发生变化。
- 添加删除并重新创建 prod 命名空间的清单。
如果使用latest作为图片标签,最接近违反哪条原则?
- 版本化且不可变——同一个提交在不同时间会做不同的事情
- 声明式 — 作为命令而不是 YAML 部署
- 自动拉取——代理无法拉取镜像
- 连续调节——调节环不起作用
app-of-apps 模式和 ApplicationSet 之间有什么区别?
- app-of-apps 仅支持多集群,ApplicationSet 仅适用于单集群。
- app-of-apps 将子应用程序指定为文件,ApplicationSet 使用生成器计算列表。
- app-of-apps 是 Flux 特定的模式,ApplicationSet 是 Argo CD 特定的模式。
- 两者完全一样,只是名字不同
拥有 AppProject 的主要目的是什么?
- 为每个应用程序设置不同的应用程序同步周期
- 以项目为基础合并 Helm 图表值
- 将分支保护规则从 Git 存储库反映到集群。
- 限制应用程序可以使用的源存储、目标集群、命名空间和资源的类型