GitOps 多 Cluster 测验
相关文档: GitOps Multi-Cluster
选择题
1. 在 multi-cluster GitOps 中,hub-spoke 模型是什么?
- A) 一种网络拓扑模式
- B) 一个中央管理 cluster(集群),控制多个 workload cluster
- C) 一种数据复制策略
- D) 一种负载均衡算法
显示答案
答案:B) 一个中央管理 cluster,控制多个 workload cluster
解释: 在 hub-spoke 模型中,中央的 “hub” cluster 运行 ArgoCD,并管理到多个 “spoke” workload cluster 的部署。这会集中 GitOps 操作,同时让 workload 在各个 cluster 之间保持隔离。
2. ArgoCD 如何实现高可用性 (HA)?
- A) 运行单个 replica 并自动重启
- B) 为每个 component 运行多个 replica,并使用 leader election
- C) 使用外部数据库复制
- D) 跨多个 region 部署
显示答案
答案:B) 为每个 component 运行多个 replica,并使用 leader election
解释: ArgoCD HA 会部署 application-controller、repo-server 和 server component 的多个 replica。application-controller 使用 leader election 来确保每个 application 只有一个 instance 进行处理,而其他 instance 处于待命状态。
3. ArgoCD 中的 ApplicationSet 是什么?
- A) 一组手动创建的 Applications
- B) 一个基于 generator 动态生成 Applications 的 template
- C) Application configuration 的备份
- D) 一组 Helm charts
显示答案
答案:B) 一个基于 generator 动态生成 Applications 的 template
解释: ApplicationSet 是一个 controller,使用 generator(List、Cluster、Git、Matrix 等)从单个 template 自动创建并管理多个 ArgoCD Applications。这使可扩展的 multi-cluster 和 multi-environment 部署成为可能。
4. 哪个 ApplicationSet generator 会基于已注册的 cluster secrets 创建 Applications?
- A) List generator
- B) Git generator
- C) Cluster generator
- D) Matrix generator
显示答案
答案:C) Cluster generator
解释: Cluster generator 会遍历 ArgoCD 中注册的所有 cluster(以 secrets 形式存储),并为每个 cluster 生成一个 Application。这使得无需修改 ApplicationSet 就能自动部署到新的 cluster。
5. 如何将 IAM Identity Center (SSO) 与 ArgoCD 集成?
- A) 直接数据库连接
- B) 使用 SAML 或 OIDC authentication,并配合基于 group 的 RBAC
- C) SSH key authentication
- D) API key management
显示答案
答案:B) 使用 SAML 或 OIDC authentication,并配合基于 group 的 RBAC
解释: ArgoCD 支持 SAML 和 OIDC 进行 SSO 集成。IAM Identity Center groups 可以映射到 ArgoCD RBAC roles,从而实现集中式访问管理,权限由你的 identity provider 控制。
6. External Secrets Operator 在 GitOps 中的用途是什么?
- A) 加密 git repositories
- B) 将 secrets 从 external providers(AWS Secrets Manager)同步到 Kubernetes
- C) 轮换 TLS certificates
- D) 管理用于 git access 的 SSH keys
显示答案
答案:B) 将 secrets 从 external providers(AWS Secrets Manager)同步到 Kubernetes
解释: External Secrets Operator 会从 AWS Secrets Manager、HashiCorp Vault 或 Azure Key Vault 等外部 secret management systems 自动创建 Kubernetes secrets。这可以在保持 GitOps workflow 的同时,让 sensitive data 不进入 git。
7. 在 ArgoCD project configuration 中,sourceRepos 限制什么?
- A) 部署的 target clusters
- B) applications 允许使用的 git repositories
- C) Namespace selection
- D) Resource quotas
显示答案
答案:B) applications 允许使用的 git repositories
解释: ArgoCD Projects 中的 sourceRepos 字段指定哪些 git repositories 可以用作该 project 中 Applications 的 source。它通过防止未经授权的 repository access 来提供安全边界。
8. 在 ApplicationSets 中使用 Matrix generator 的好处是什么?
- A) 它执行数学计算
- B) 它组合多个 generator,以创建参数的笛卡尔积
- C) 它加密 application manifests
- D) 它验证 YAML syntax
显示答案
答案:B) 它组合多个 generator,以创建参数的笛卡尔积
解释: Matrix generator 会组合两个或更多 generator,为其输出的每一种组合创建 Applications。例如,将 Cluster generator 与 List generator 组合,会把多个 services 部署到多个 cluster。
9. 通过 GitOps 管理 NodePools 时,一个关键注意事项是什么?
- A) NodePools 不能通过 GitOps 管理
- B) 变更应逐步进行,以避免中断正在运行的 workloads
- C) NodePools 必须与 ArgoCD 位于同一个 namespace
- D) 只能管理 Spot instances
显示答案
答案:B) 变更应逐步进行,以避免中断正在运行的 workloads
解释: 通过 GitOps 进行 NodePool 变更时应谨慎管理,因为修改可能会触发 node replacements。使用 Progressive Sync 或为 node management 使用单独 Applications 等策略,有助于避免中断。
10. 向 ArgoCD 添加 remote cluster 的推荐方式是什么?
- A) 直接编辑 ArgoCD ConfigMap
- B) 使用
argocd cluster add,或创建包含 credentials 的 cluster Secret - C) 在每个 cluster 上安装 ArgoCD
- D) 使用 kubectl port-forward
显示答案
答案:B) 使用 argocd cluster add,或创建包含 credentials 的 cluster Secret
解释: Remote clusters 可通过 argocd cluster add CLI command 添加,或通过创建包含该 cluster 的 API server URL 和 credentials 的 Secret 添加。ArgoCD 使用这些 credentials 将 applications 部署并同步到 remote clusters。