Jenkins
Jenkins Agent 的几种通信方式
· ☕ 1 分钟
1. SSH 连接方向: Master 主动连接 Agent 要求: Master 能通过 SSH 直连 Agent Agent 上启动了 SSHD 服务 Jenkins 安装 SSH Credentials Plugin、SSH Build Agents 插件 2. JNLP 连接方向: Agent 主动连接 Master 要求: Agent 能访问 Master Agent 需要 JVM 环境运行 Master 需要放开 50000(默认值)端口用于 Agent 通信 50000 端口是 Jenkins Master 的服务端口,不需要再运行

Jenkins为什么一直调度到同一个节点
· ☕ 3 分钟
1. 问题背景 在 Jenkins 中添加了很多个构建节点使用同一个 Label 以供流水线使用,但是 Jenkins 却每次都倾向于在同一个节点进行构建。 这导致了并发问题,单个节点的压力过大,而其他节点空闲,负载极其不均衡。 2. 业务流水线的设计 上述问题的产生和业务流水线的设计有一定的关系。

如何定制自己的 Jenkins 镜像
· ☕ 6 分钟
1. 如何部署 Jenkins 为了方面进行下面的测试,先介绍两种部署 Jenkins 的方式,这里使用的是 shaowenchen/jenkins:2.277.4 镜像。在生产环境中,需要替换为官方 jenkins/jenkins 镜像或自己定制的镜像。 1.1 docker-compose 运行 docker-compose.yaml 文件 version: '3' services: jenkins: image: shaowenchen/jenkins:2.277.4 container_name: jenkins restart: always network_mode: "bridge" environment: - JAVA_OPTS="-Xms1Gi -Xmx4Gi" ports: - 8080:8080 - 50000:50000 - 2222:2222 environment: TZ: Asia/Shanghai volumes: - /Volumes/Data/jenkins_home:/var/jenkins_home 在本地创建一个目录 /Volumes/Data/jenkins_home 用于存储 Jenkins 的数据

Jenkins 在 Kubernetes 上的最佳实践
· ☕ 3 分钟
1. 配置较大的 -Xms -Xmx 参数 Jenkins 是由 Java 编写的编排引擎, 在 Full GC 时会 Stop The World(STW)。在大规模构建时, STW 可能会导致 Jenkins 无法处理新的请求。 为了避免频繁的 STW, 同时增大并发量, 建议设置较大的堆, -Xms3g -Xmx6g -XX:MaxRAM=6g。具体数值可以根据监控值来设置,

Jenkins 与 Tekton 的对比
· ☕ 1 分钟
下面是一个 Jenkins 与 Tekton 对比的列表: 功能 Jenkins Tekton 编程语言 Java Golang 开发插件语言 Java Shell、Yaml 流水线描述语言 Groovy、Shell Yaml、Shell 插件生态 很多插件,LDAP、GitLab 不足 插件数量 1500+ 100+ 插件之间的兼容性 可能会有冲突,不能随便升级 完