Choerodon Agent


    场景演示

    通过猪齿鱼平台创建三个环境,各个环境对应的 Choerodon Agent 安装脚本可以在任意 Kubernetes 集群中执行。 在B集群中安装一个正式环境对应 Choerdon Agent ,在A集群中安装了开发环境和测试环境对应 Agent。 Choerodon Agent 安装所在的 Kubernetes 集群对于猪齿鱼持续交付部署服务完全透明,通过平台创建的环境安装成功之后,即可作为开发的部署环境,成为环境流水线中的一员。

    Choerodon Agent 通过 WebSocket Client 与外部的猪齿鱼部署服务进行连接、执行命令等交互。内部通过 Helm 客户端与 Kubernetes 集群。 Helm 客户端 直接执行 Chart 安装删除等操作,并且通过 Kube Client 直接对 Kubernetes 各种资源对象进行操作,监听各资源对象的状态变更。 通过长连接及时通知部署服务。

    Agent - 图2

    Choerodon Agent 和部署服务之间的交互采用 Command/response 模式,启动时立即向部署服务建立连接,接收 Command 执行并返回结果 Repsonse 。 作为 WebSocket Client 将 Command 通过 Channel 不断的发送至执行器,执行器 Worker 是一个可伸缩配置的工作线程/协程池,执行后将结果通过 Channel 给 Websocket client 写回。

    优势

    • Choerodon Agent 基于 Go 语言实现,启动快速。占用内存小,消耗资源也很少,通过 Helm 命令一键安装,此集群立即就可以加入猪齿鱼平台。

    • 安全

      Choerodon Agent 通过 WebSocket 与部署服务交互,执行命令。作为 WebSocket 客户端,主动连接猪齿鱼平台中的部署服务,不对外界暴露连接。向部署服务连接时指定的 token 和相关环境信息。

    • 易于扩展

      一个部署服务可以不限制通过 Choerodon Agent 将 Kubernetes 集群部署环境加入平台,这些环境可以在同一个集群的不同命令空间中,也可以在不同的集群中。

    • Chart 应用安装、删除、回滚、升级、停止、重启

    • 创建 Kubernetes Serivice,Ingress

    • 容器日志

    • 各个 Kubernetes 资源对象状态更新通知

    优化升级

    • 增加性能监控相关功能接口。