ArgoCD试用

ArgoCD 遵循GitOPS模式,应用定义、配置和环境等都应该是声明式和版本化的。应用部署和生命周期管理是自动化、可审计和易于理解的 特性 拥有GitOPS的一切特性,如回滚到任意git commit点 自动发布应用到指定环境,支持多集群管理 支持多种配置管理工具、模板 (Kustomize,Helm, Jsonnet, plain-YAML,自定义配置管理插件) 支持单点登录 (OIDC, OAuth2, LDAP, SAML 2.0, GitHub, GitLab, Microsoft, LinkedIn) 支持多租户及RBAC授权 服务健康状态分析 资源版本偏移检查和Web UI实时可视化 可自动或手动同步资源到目标状态 提供命令行工具,自动化集成简单方便 Webhook 集成 (GitHub, BitBucket, GitLab) 支持访问令牌 支持各阶段钩子定义PreSync, Sync, PostSync hooks to support complex application rollouts (e.g.blue/green & canary upgrades) 应用事件和API调用审计追踪 有暴露Prometheus 指标 Parameter overrides for overriding helm parameters in Git 几个核心概念 Application:指定manifest路径下的一组kubernetes资源,是一个CRD AppProject:Application的逻辑分组,可以配置一些约束选项,如限制git源、目标集群、namespace和资源类型等,也可以订阅project roles App of Apps:官网文档中的 cluster bootstrapping,一个Application包含多个子Application,在批量创建Application时比较有用,也可以用来自我管理(官方文档有示例) 下图是定义了一个Application对象,其指定的仓库目录下包含多种资源,其中的子Application对象所指定的仓库目录又可以包含多种资源,我们可以开启递归的选项,在往仓库添加资源对象的时候自动apply到对应集群当中去 注意点: 一个ArgoCD实例中,Application名字是唯一的,且只能放在与argo部署的同一名称空间中 Application中没有指定resources-finalizer.argocd.argoproj.io终结器,在删除Application的时候是不会删除它所管理的资源,App of Apps也是一样 ApplicationSet 跨集群和仓库灵活的管理Applications,补充了以集群管理为中心的场景...

January 10, 2022 · 3 min · 485 words · erpan