remoting-kafka-agent

jenkins/remoting-kafka-agent Docker Image

自动构建

远程Kafka代理,用于实现跨环境Kafka集群的消息传输与通信中继

1 次收藏下载次数: 0状态:自动构建维护者:Jenkins 自动化与 CI/CD仓库类型:镜像最近更新:7 年前

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:

    bash
    set DOCKERHOST=host.docker.internal
    
  • macOS:

    bash
    export DOCKERHOST=host.docker.internal
    
  • Linux:

    bash
    export DOCKERHOST=$(ifconfig docker0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')
    

2. 构建演示环境

bash
make all

3. 启动演示环境

  • 带安全特性(默认启用SSL加密):

    bash
    make run
    
  • 禁用安全特性(用于测试):

    bash
    make run-no-auth
    

4. 演示环境组成

  • Jenkins主节点与代理节点:通过Kafka自动建立连接
  • Kafka集群:提供加密通信通道
  • 演示作业:可直接在代理节点上执行构建任务
  • Kafka Manager:通过localhost:9000访问,监控Kafka集群状态

5. 停止演示环境

bash
make clean

Kubernetes部署方案

1. 启动演示环境

bash
helm dep build helm/jenkins-remoting-kafka && \
  helm install helm/jenkins-remoting-kafka -n demo -f demo/helm/values-override.yaml

2. 停止演示环境

bash
helm 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:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持99.95% SLA 保障付费会员免广告