argocd 安装及入门使用
一、安装
1. 安装 argocd
|
|
如果使用其他命名空间,需要手动修改 ClusterRoleBinding 引用的 ServiceAccount 所在的 namespace
2. 暴露 argocd ui
|
|
3. 登陆 argocd
|
|
4. 安装 cli
|
|
二、简单使用
1. 准备 git 仓库
目录结构
|
|
deploy.yaml 是部署文件
2. 配置 argocd 仓库


3. 创建应用

4. 查看结果

三、cli 使用
3.1 快速入门操作
1. 登陆
|
|

2. 修改密码
|
|
3. 从 git 仓库创建一个 Application
|
|
创建一个 guestbook app, 指定仓库地址、应用路径、目标 apiserver 地址、目标 namespace
4. 列出所有 app 和指定 app
|
|
5. 手动从 git 仓库同步指定 app
|
|

3.2 管理项目
- 创建项目
|
|
-d
: 该项目允许使用的 apiserver 和 namespace-s
: 允许使用的 git 仓库
查看项目列表:
argocd proj list
添加项目可使用的 git 仓库:
argocd proj add-source <PROJECT> <REPO>
删除项目可使用的 git 仓库:
argocd proj remove-source <PROJECT> <REPO>
限制项目可使用的 k8s 资源 (cluster 级别资源默认拒绝,namespace 级别默认允许):
|
|
Application 分配给项目:
argocd app set guestbook-default --project myproject
获取项目信息:
argocd proj get myproject
编辑项目 yaml:
argocd proj edit myproject
3.3 管理 APP
查看 APP 列表: argocd app list|get|delete|create
-p
: 根据项目过滤-l
: 根据标签过滤-r
: 根据仓库过滤-o
: 输出格式。wide|name|json|yaml
手动同步: argocd app sync <APPNAME>
3.4 自动同步相关
开启自动同步: argocd app set <APPNAME> --sync-policy auto
关闭自动同步: argocd app set <APPNAME> --sync-policy none
自动同步时,自动删除 git 中不存在的资源: argocd app set <APPNAME> --auto-prune=true
是否允许一个 application 有 0 个资源: argocd app set <APPNAME> --allow-empty=true
时刻保证与 git 中定义的状态同步: argocd app set <APPNAME> --self-heal=true
自动同步会将所有对象都同步,对 apiserver 可能会造成更大的压力,可以只同步 out-of-sync状态
的资源: argocd app set <APPNAME> --sync-option ApplyOutOfSyncOnly=true
** 执行自动同步的要求 **
仅当 Application 为
OutOfSync
时才会执行自动同步。 同一个commit id
只会同步一次,不管成功还是失败
argocd 每三分钟会检测 git 仓库一次,用于判断 app 与 git 中描述的状态是否一致,如果不一致状态为
OutOfSync
。(注意这里并不会触发更新,除非配置了自动同步)

