本文将介绍Choerodon平台持续交付部署流水线的一个核心组件——Choerodon Agent。
▌文章的主要内容包括:
- 概述
- 实现分析
- 具体设计
- 建立连接初始化信息
- Command/Response模式
- 实时状态反馈
- Helm Operator
- GitOps
- 状态同步与修复
- Log和Exec长连接
- 总结
概述
Choerodon Agent是支撑Choerodon平台持续交付部署流水线的一个核心组件,负责将平台生成的部署文件应用到应用部署环境对应的Kubernetes集群之中。并实施返回各个应用实例以及应用实例下所有资源的最新状态信息,同时通过监听各个环境对应的部署文件Git库,执行CD操作。而且支持混合云以及多云作为平台的部署环境,通过返回回来的容器信息和反馈回来各个实例下的容器,还可以实时获取容器日志,以及容器exec执行远程命令。
Choerodon持续交付可以支持任意数量的集群加入平台,作为应用的部署环境,只要将平台中生成的Agent安装脚本在任意Kubernetes集群中执行,就可以将该集群加入平台,然后在平台上创建环境时可以选择该集群,可以一键创建环境。在同一个集群中可以创建多个环境,各个环境之间通过Kubernetes的命令空间隔离。
平台初始化部署集群只需要将平台生成的Agent安装脚本在Kubernetes环境中执行。Agent在集群中安装之后便可以在该集群中创建环境。作为项目应用的部署环境。
创建集群之后,平台会提供一份激活指令,将指令粘贴至Kubernetes集群中执行,成功后集群就连接成功了。在平台的界面上集群显示的状态也为运行中。下图所示脚本就是Agent的激活指令。
helm install --repo=http://chart.choerodon.com.cn/choerodon/c7ncd/ \
--namespace=choerodon \
--name=choerodon-cluster-agent-test \
--version=2018.12.10-112732-master \
--set config.connect=ws://devops.com.cn/agent/ \
--set config.token=dccf4539-43e7-4970-a2d4-271267850d67 \
--set config.clusterId=21 \
--set config.choerodonId=434ha8v7sz90 \
--set rbac.create=true \
choerodon-cluster-agent
集群连接成功之后,可以在环境流水线管理界面,选择相应的集群一键创建环境。创建环境时,平台会给Agent发送一条指令&#x