ArgoCD Applications 测验
本测验用于测试你对 ArgoCD Applications 及其配置的理解。
- ArgoCD Application resource 的主要目的是什么?
- A) 定义用户访问控制
- B) 指定应用程序的期望状态及其同步设置
- C) 配置通知
- D) 管理 secrets
显示答案
答案:B) 指定应用程序的期望状态及其同步设置
说明: ArgoCD Application 是一种 Kubernetes custom resource,用于定义应用程序的源(Git 仓库、路径、revision)和目标(cluster、namespace),以及同步策略和运行状况检查。
- Application spec 中的哪个字段定义了应将 manifests 部署到何处?
- A) source
- B) target
- C) destination
- D) cluster
显示答案
答案:C) destination
说明:destination 字段指定应部署应用程序 resources 的目标 cluster(通过 server URL 或名称)和 namespace。
- Application 中的
spec.source.path字段指定什么?- A) ArgoCD 安装路径
- B) Git 仓库中包含 manifests 的目录
- C) 本地文件系统路径
- D) API server 路径
显示答案
答案:B) Git 仓库中包含 manifests 的目录
说明:source 下的 path 字段指定 Git 仓库中包含 Kubernetes manifests、Helm chart 或 Kustomize 配置的目录。
- 如何将应用程序部署到一个尚不存在的特定 namespace?
- A) 先手动创建 namespace
- B) 使用带有 CreateNamespace=true 的 syncPolicy.syncOptions
- C) 无法做到
- D) 使用 pre-sync hook
显示答案
答案:B) 使用带有 CreateNamespace=true 的 syncPolicy.syncOptions
说明: 在 syncPolicy.syncOptions 中设置 CreateNamespace=true 会指示 ArgoCD 在同步应用程序 resources 之前,如果目标 namespace 不存在则自动创建它。
targetRevision: HEAD和targetRevision: main之间有什么区别?- A) 没有区别
- B) HEAD 始终指向默认 branch,而 main 是显式指定的
- C) HEAD 更快
- D) main 支持 webhooks,HEAD 不支持
显示答案
答案:B) HEAD 始终指向默认 branch,而 main 是显式指定的
说明:HEAD 是一个 symbolic reference,指向仓库的默认 branch;而 main 明确指定 main branch。如果默认 branch 发生变化,使用 HEAD 会更灵活。
- 要从 Helm repository(而非 Git)部署 Helm chart,应使用哪种 source type?
- A) git
- B) helm
- C) directory
- D) kustomize
显示答案
答案:B) helm
说明: 从 Helm repository 部署时,需设置 source.chart 和 source.repoURL 以指向 Helm repository,ArgoCD 会将其视为 Helm source 而非 Git source。
- 设置
spec.source.helm.releaseName后会发生什么?- A) 创建一个新的 Helm repository
- B) 覆盖默认 release name(即 Application 名称)
- C) 启用 Helm hooks
- D) 设置 chart version
显示答案
答案:B) 覆盖默认 release name(即 Application 名称)
说明: 默认情况下,ArgoCD 使用 Application 名称作为 Helm release name。显式设置 releaseName 可让你为 Helm release 使用不同的名称。
- 如何在 ArgoCD Application 中指定 Helm values?
- A) 仅通过仓库中的 values files
- B) 仅以内联方式写在 Application spec 中
- C) 可同时通过 values files 和内联 values 指定
- D) values 必须存储在 ConfigMap 中
显示答案
答案:C) 可同时通过 values files 和内联 values 指定
说明: ArgoCD 支持通过 spec.source.helm.valueFiles(引用仓库中的文件)和/或 spec.source.helm.values(内联 YAML)指定 Helm values。两者可以同时使用,其中内联 values 优先。