测验:GitOps 原则与术语
OpenGitOps 的第三条原则到底是什么?
- 自动推送 - 管道将批准的更改推送到集群
- 手动批准 - 所有更改在部署前都需要人工批准。
- 提交时同步 — 同步仅在提交发生时发生
- 自动拉取 - 软件代理自行拉取批准的更改
当团队将清单放入 Git 并合并它时,GitHub Actions 运行器会使用 kubeconfig 运行kubectl apply。此配置明显违反了 GitOps 的哪条原则?
- 声明性——由于我们使用的是 YAML,所以它不是声明性的。
- 版本控制和不可变——使用 Git,但不是不可变的,因为没有标签
- 自动拉取 — 集群外 CI 正在推送
- GitOps 因为它满足所有四个原则
“Git 是唯一真理来源”这句话实际上定义了什么?
- 所有源代码和二进制文件必须位于 Git 中
- 当集群和Git不同时,修复哪一个的方向由Git决定。
- 必须有一个 Git 存储库 (monorepo)
- 集群状态必须定期备份到Git。
什么最准确地描述了“趋同”与“和解”之间的关系?
- 和解是一种状态,而趋同是达到该状态的行为。
- 两者是完全一样的东西,只是根据工具不同名称不同而已。
- 和解是调整的行为,趋同是两种状态变得相同的结果。
- 融合意味着合并 Git 分支。
GitOps 代理原则上不能检测到什么?
- 操作员将副本值更改为
kubectl scale - 修改开发者笔记本中尚未提交的清单
- 更改刚刚合并到设置存储库中的图像标签
- ConfigMap 留在集群中但从 Git 中删除
在 GitOps 中回滚生产的推荐方法是什么?为什么?
kubectl rollout undo— 最快且不接触 Git- 在配置存储库中进行新的提交,恢复为
git revert— 历史记录将被保留,代理会自动收敛。 - 删除配置存储库中有问题的提交(
git reset --hard)并强制推送它。 - 短暂停止代理并直接部署到上一个映像
以下关于 webhook 的哪些表述是正确的?
- 如果没有 webhook,GitOps 代理将永远无法意识到更改。
- Webhooks 是一种减少轮询延迟的优化,即使没有它们,它们最终也会通过定期调整来收敛。
- Webhook 将集群凭据传递到 Git 服务器以运行部署。
- Webhooks 被指定为 OpenGitOps 的四大原则之一