jenkins/remoting-kafka-agent Docker Image
自动构建
远程Kafka代理,用于实现跨环境Kafka集群的消息传输与通信中继
Remoting Kafka插件
概述
当前版本的Jenkins Remoting基于TCP协议实现通信。若TCP连接失败,代理连接及构建任务将随之中断。此外,流量优先级管理和多代理通信问题也会影响Jenkins的稳定性与可扩展性。
本项目旨在更新Remoting和Jenkins架构,引入流行的消息队列/总线技术(Kafka)作为通信层,以提供容错能力更强的通信机制,提升Jenkins的整体稳定性和可扩展性。
更多项目信息参见:https://jenkins.io/projects/gsoc/2018/remoting-over-message-bus/
核心功能与特性
- Kafka通信层:替代传统TCP协议,基于Kafka实现代理与主节点的异步通信
- 容错机制:支持连接中断后的自动恢复,减少因网络波动导致的构建失败
- SSL加密:Kafka通信支持SSL加密,保障数据传输安全性
- 自动连接:预配置的主节点与代理实例可通过Kafka启动器自动建立连接
- 多代理优化:改善多代理场景下的通信效率,提升系统可扩展性
- Kafka监控:集成Kafka Manager(访问localhost:9000),支持集群状态监控
- 演示作业:内置示例作业,可快速验证代理通信功能
使用场景与适用范围
- 大规模Jenkins环境:需管理大量构建代理,存在多代理并发通信需求的场景
- 高稳定性要求场景:对构建连续性要求严格,需避免因网络问题导致任务中断的环境
- 复杂网络环境:网络稳定性较差,需要容错通信机制保障的场景
- 安全敏感环境:需对代理通信进行加密保护的企业级部署环境
使用方法与配置说明
前提条件
- Docker部署:需安装docker及docker-compose
- Kubernetes部署:需Kubernetes集群(如minikube)及Helm包管理工具
Docker部署方案
1. 环境变量配置
设置DOCKERHOST环境变量,不同操作系统配置方式如下:
-
Windows:
bashset DOCKERHOST=host.docker.internal -
macOS:
bashexport DOCKERHOST=host.docker.internal -
Linux:
bashexport DOCKERHOST=$(ifconfig docker0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
2. 构建演示环境
bashmake all
3. 启动演示环境
-
带安全特性(默认启用SSL加密):
bashmake run -
禁用安全特性(用于测试):
bashmake run-no-auth
4. 演示环境组成
- Jenkins主节点与代理节点:通过Kafka自动建立连接
- Kafka集群:提供加密通信通道
- 演示作业:可直接在代理节点上执行构建任务
- Kafka Manager:通过localhost:9000访问,监控Kafka集群状态
5. 停止演示环境
bashmake clean
Kubernetes部署方案
1. 启动演示环境
bashhelm dep build helm/jenkins-remoting-kafka && \ helm install helm/jenkins-remoting-kafka -n demo -f demo/helm/values-override.yaml
2. 停止演示环境
bashhelm delete --purge demo
开发者文档
- 贡献指南
- 技术文档
- https://issues.jenkins-ci.org/browse/JENKINS-53417
发布说明
参见变更日志。
相关链接
- https://issues.jenkins-ci.org/browse/JENKINS-53417
- https://wiki.jenkins.io/display/JENKINS/Remoting+Kafka+Plugin
- https://jenkins.io/projects/gsoc/2018/remoting-over-message-bus/
- https://jenkins.io/blog/2018/06/18/remoting-over-message-bus/
- https://jenkins.io/blog/2018/07/23/remoting-kafka-plugin-1/
- https://docs.google.com/presentation/d/1drRIDNvDKdBE-VuuLFXlWRB0NhSFr1aWrg2p8qrF3co/edit?usp=sharing
- https://jenkins.io/projects/gsoc/2018/remoting-over-message-bus/(包含Phase 1-3的技术文档与演示)
镜像拉取方式
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
轩辕镜像加速拉取命令点我查看更多 remoting-kafka-agent 镜像标签
docker pull docker.xuanyuan.run/jenkins/remoting-kafka-agent:<标签>
DockerHub 原生拉取命令
docker pull jenkins/remoting-kafka-agent:<标签>
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务