Argo CD系列视频配套图文版-Argo CD初步认识

2021-11-19 14:55:22 浏览数 (1)

“本系列课程,我们来研究 ArgoCD,我会从基础概念讲起,带领大家搭建实验环境,再到一个个特性的实践讲解,让大家对 ArgoCD 有个相对全面的认识。课程实验中,我们的模拟会尽量贴近生产环境,让大家学到知识的同时,更获得生产环境经验的积累。

视频直达

http://mpvideo.qpic.cn/0bc3zqacaaaaayacjxurezqvbtgdedgaaiaa.f10002.mp4?dis_k=bc82c252488ad374004642cb305e1100&dis_t=1637304681&vid=wxv_2135766899186630660&format_id=10002&support_redirect=0&mmversion=false

ArgoCD 介绍

基于 kubernetes 的声明式 Gitops 持续部署工具。

持续部署工具有很多,如 Jenkins 等等,我们为什么选择 ArgoCD 呢?

  • 应用定义,配置和环境变量管理等等,都是声明式的,基于云原生的。
  • 所有声明清单都存储在代码仓库中,受版本管理
  • 应用发布和生命周期管理都是自动化的,可审计的。

最重要的,ArgoCD 操作简单,非常易用。

工作原理

ArgoCD 被设计并实现为 Kubernetes 控制器,它会持续监控 ArgoCD 应用状态。ArgoCD 中的应用会对应一个 Git 仓库,ArgoCD 控制器确保应用状态始终同步。此处的 Git 仓库,并不存放项目源码,它保存的是项目在 Kubernetes 中的运行状态,也就是配置清单。Git 仓库内容的组织形式,支持 Helm, Kustomize 等;

当用户向 Git 仓库提交合并请求,合并被受理后,Git 仓库中应用状态的配置清单发生变化,此时 Git 仓库可以通过 WebHook 触发 ArgoCD 的应用同步。如果未配置 WebHookArgoCD 会轮询检测 Git 仓库的变更,检测周期默认为 3 分钟。当然,用户也可以通过 UI 或 CLI 的方式手动触发应用同步。

ArgoCDHook 机制,会在应用状态同步前,同步中,同步后及同步失败后,触发响应的钩子方法,用来完成一些额外操作,可以实现更加复杂的应用控制。ArgoRollouts 的蓝绿发布,就非常好的利用了 hooks 机制。

ArgoCD 不仅可以将应用发布到它所在的 Kubernates 集群,它也可以托管其他集群,实现多集群的应用部署。该功能由 ApplicationSet 实现。

单点登录:单点登录对于企业用户非常有必要,ArgoCD支持 oauth2ldap 等等协议,默认也支持集成 gitlabgithub, microsoft 等账号登录。

故障治愈: 当应用出现异常,健康检查会触发自动修复,保持应用状态同步。

命令行集成:UI 界面上提供的大部分功能,都在命令行有所支持。可以方便地编写脚本实现复杂的自动化操作。

必备知识

“ArgoCD 功能强大,简单易用,但想要真正掌握它,还需要一些基础知识。

熟悉 kubernetes 容器编排技术

我们的应用最终会运行在 kubernetes 中,所以需要诸位对 kubernetes 的基本概念有所了解。比如 deployment,replicas,service 这些概念。

了解 github 版本管理

课程中我们使用 Github 管理清单仓库,企业内部也可以使用 Gitlab 来管理。

熟悉 kustomize 资源编排方案

kustomize 用来组织 kubernetes 资源清单,这是 ArgoCD 官方推荐的编排方案,同时支持力度也是最好的。当然用户也可以选择使用 helm 来编排资源清单。

这些不但可以大大降低我们的沟通成本,而且能让大家对 ArgoCD 的理解,更上一层楼。

社区支持

实践过程中,如果遇到问题,不妨寻求社区的支持,如果你有一些新的想法,也可以到社区交流。

结束语

ArgoCD 的介绍我们就讲解到这里,下期视频,我们来一起手把手的教大家搭建实验环境。还是非常希望大家能够跟着一起动手,咱们保持实验环境的一致性,可以避免大家被一些莫名其妙的问题打断实践思路。

0 人点赞