NipGeihou's blog NipGeihou's blog
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档

NipGeihou

我见青山多妩媚,料青山见我应如是
  • Java

    • 开发规范
    • 进阶笔记
    • 微服务
    • 快速开始
    • 设计模式
  • 其他

    • Golang
    • Python
    • Drat
  • Redis
  • MongoDB
  • 数据结构与算法
  • 计算机网络
  • 应用

    • Grafana
    • Prometheus
  • 容器与编排

    • KubeSphere
    • Kubernetes
    • Docker Compose
    • Docker
  • 组网

    • TailScale
    • WireGuard
  • 密码生成器
  • 英文单词生成器
🍳烹饪
🧑‍💻关于
  • 分类
  • 标签
  • 归档
  • Linux

  • Docker

  • 云原生

  • Kubernetes

  • KubeSphere

  • K3S

  • 笔记

  • PVE

  • 维修

  • DevOps

    • DevOps最佳实践
    • Github Actions
    • Jenkins

      • 安装
      • 凭证(credentials)
      • 代理(agent)
        • 静态代理
          • 添加节点
          • 部署节点
          • Docker
          • K8S
        • 动态代理
        • 参考
      • 最佳实践
    • Coding

  • 云服务

  • 路由器

  • Hyper-V

  • Windows

  • macOS

  • 运维
  • DevOps
  • Jenkins
NipGeihou
2023-08-20
目录

代理(agent)

在安装好 Jenkins,进入系统管理页面时,会有这样一句提示:

image-20230821093820023

Building on the built-in node can be a security issue. You should set up distributed builds. See the documentation (opens new window).

在内置节点上构建可能会带来安全问题。您应该设置分布式构建。请参阅文档。

并在文档中提到:

It is therefore highly advisable to not run any builds on the built-in node, instead using agents (statically configured or provided by clouds) to run builds.

因此,强烈建议不要在内置节点上运行任何构建,而是使用代理 (静态配置或由云提供) 来运行构建。

inbound-agent和ssh-agent镜像的区别

在实践中发现,在官方文档中使用的是 ssh-agent 镜像,而在一些云厂商的文档中使用的

# 静态代理

也叫固定节点,节点一直运行,任务构建完成后不会销毁,创建完成后将一直占用集群资源,配置过程较简单。

提示

  • 参考官方文档 Using Jenkins agents (opens new window)
  • 需要注意的是,使用 SSH 方式连接时,需使用 ssh-keygen -t rsa -m PEM 生成密钥,参考 Jenkins slave node is offline : Authentication failed - Stack Overflow (opens new window)

# 添加节点

Dashboard - 系统管理 - 节点列表,New Node

image-20230821130853235

配置以下节点信息:

  • Number of executors(并发构建的最大数目):默认为 1 ,可根据实际需求填写。

    • 推荐最大值为 CPU 核心数
  • Remote root directory(远程工作目录): /home/jenkins/agent

  • Launch method(启动方式):选择 “ Launch agent by connecting it to the controller (通过 Java Web 启动代理)”。

  • Labels(标签):给代理加上一些标签,空格分隔。

    • 如: linux docker node16

其余参数可保持默认,无需填写,并单击 “保存”。

在 “节点列表” 中单击新增的节点名称,可看到 Agent 状态未连接,并提供了节点连接 Jenkins 的方式。该命令适用于虚拟机安装,而本示例为容器化安装,因此仅需复制其中的 secret,如下图所示。

image-20230821131107223

# 部署节点

原生部署

以 Ubuntu 22.04 为例

# 安装 jdk
sudo apt-get update && sudo apt-get upgrade
sudo apt-get install openjdk-11-jdk

# 复制上面的 Unix命令,运行
curl -sO http://xxx.xxx.xxx.xxx:8080/jnlpJars/agent.jar
java -jar agent.jar -jnlpUrl http://xxx.xxx.xxx.xxx:8080/computer/node2/jenkins-agent.jnlp -secret xxxxxxxxxxxxxxxx -workDir "/home/jenkins/agent"

改进,后台运行

nohup <上面的 java ..... -workDir "/home/jenkins/agent"> &

kill 进程

ps -ef | grep xxx.jar
# 找到进程号
kill -9 进程号

容器化部署

  • 先从这里 jenkins/inbound-agent Tags | Docker Hub (opens new window) 找一个镜像版本
    • 需要留意系统架构,是 windows/amd64 还是 linux/amd64
    • 本文以 jenkins/inbound-agent:alpine-jdk11 为例

# Docker

docker run --init jenkins/inbound-agent -url http://<jenkins-server>:<port> -workDir=/home/jenkins/agent <secret> <agent name>

# K8S

以在 kubesphere(k8s)部署为例,Docker 同理:

  • 镜像名称: jenkins/inbound-agent:alpine-jdk11 。此处镜像版本可能随时间变化发生变动,请根据实际情况进行选择,或拉取 latest 版本。
  • CPU 配额:本例中 CPU 配额限制为 2 Core
  • 内存配额:本例中内存配额限制为 2048 MiB
  • 特权容器:必需要开启 “ 特权容器 ”,使容器获得操作宿主机的权限,否则容器中无法执行 docker 命令。

提示

Agent 设置完成后,建议将 Master 的并发构建数设置为 0 ,即不使用 Master 进行本地构建

# 动态代理

todo

# 参考

  • Jenkins Agent 配置_云容器引擎 CCE_最佳实践_DevOps_Jenkins 安装部署及对接 SWR 和 CCE 集群_实施步骤_华为云 (opens new window)
  • Using Docker with Pipeline (opens new window)
  • Using Jenkins agents (opens new window)
  • How to Create an Agent Node in Jenkins - YouTube (opens new window)
上次更新: 2024/03/11, 22:37:05
凭证(credentials)
最佳实践

← 凭证(credentials) 最佳实践→

最近更新
01
Docker Swarm
04-18
02
安全隧道 - gost
04-17
03
Solana最佳实践
04-16
更多文章>
Theme by Vdoing | Copyright © 2018-2025 NipGeihou | 友情链接
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式