Argo CD Argo CD

使用 Argo CD CLI 管理应用

在终端中登录、创建、查看、对比、同步并回滚应用。

10 min 初级

Web UI 中的所有功能,都可以通过 argocd CLI 完成。在脚本中,或者想在应用变更之前先预览效果时,你都会用到它。本指南假设 Argo CD 已安装,并且安装指南中的 port-forward 正在运行。

安装 CLI 并登录

安装 CLI(macOS 上使用 brew install argocd,或从发布页面下载二进制文件),然后检查是否可用:

argocd version --client

通过 port-forward 登录 API 服务器。--insecure 会跳过对自签名证书的校验,这在本地环境可以接受,但不适用于真实的生产安装:

argocd login localhost:8080 --username admin --password '<initial-password>' --insecure

运行 argocd --help 可以列出所有命令。日常工作大多在 argocd app 之下。

创建并查看应用

用命令行参数代替清单文件来创建应用:

argocd app create webapp-prod \
  --repo https://github.com/your-org/webapp-config.git \
  --path prod \
  --dest-server https://kubernetes.default.svc \
  --dest-namespace webapp-prod \
  --sync-option CreateNamespace=true

如果不设置同步策略,应用就是手动同步的。然后查看现有内容:

argocd app list
argocd app get webapp-prod

list 会显示每个应用的集群、命名空间、项目、同步状态、健康状态和同步策略。get 会显示单个应用的详细信息及其资源。

预览与同步

刚创建的手动应用会显示 OutOfSync 和 Missing,因为还没有应用任何内容。同步之前,你可以先确切地看到将会发生什么变化:

argocd app diff webapp-prod
argocd app sync webapp-prod
argocd app wait webapp-prod --health

如果同步失败,错误信息会直接打印出来。常见的一种是目标命名空间尚不存在,这正是上面 CreateNamespace=true 选项的用途。在 Git 中做出修改后,argocd app diff 是同步前快速审查变更的好办法,它显示的信息与 UI 中的 App Diff 视图相同。

查看历史、回滚并读取日志

argocd app history webapp-prod
argocd app rollback webapp-prod <ID>
argocd app logs webapp-prod

history 列出已部署的修订版本及其 ID。rollback 会回到其中某一个版本,正如同步策略指南中所述,它只有在自动同步被禁用时才能使用。logs 会流式输出应用 Pod 的日志,适合在发布之初快速查看情况。

修改设置并清理

无需编辑 YAML 即可更新应用的设置:

argocd app set webapp-prod --sync-policy automated --auto-prune --self-heal

运行 argocd app set --help 可以查看所有可修改的项。用完应用后,将其删除:

argocd app delete webapp-prod

默认情况下,这也会删除该应用创建的资源,因此可能需要一分钟才能完成。之后运行 argocd app list 确认它已消失。

热门指南