Jenkins in Kubernetes

Gao

在 Kubernetes 中安装 jenkins

简介

在 kubernetes 中安装 Jenkins Jenkins 会以 master 方式运行,当有 build 任务时,会 在 kubernetes 中启动一个 pod 来运行对应的构建任务需要配置对应的 pod 来解决常规的 构建问题

安装 Jeknis 到 Kubernetes:

使用仓库 https://github.com/gsmlg/jenkins 中的配置
  1. 配置 Deployment 使用 deployment.yaml
kubectl create -f deployment.yaml
  1. 配置 service.yaml 使用 service.yaml
kubectl create -f service.yaml
  1. 手动添加 ingress 配置使用rancher配置 ingress 服务

对 jenkins 进行配置

  1. 在 configure global security 中可以配置用户,用于登陆管理

  2. 配置连接 kubernetes 的权限

    • 在 configure system 中,配置

添加 cloud 配置

  • 配置 kubernetes URLAPI server 的地址

  • Credentials 配置上配置 kubeconfig

  • 添加Jenkins tunnel 地址,地址为service配置中的 jenkins-jnlp 的地址

  • 配置Kubenetes Pod Templatelabels 配置用于slave启动时添加的配置

  • 配置contaienr参照需求配置

    记录下配置的 Labels

    删除 command to run, Arguments to pass to the command 配置

    dind 配置需要添加 volume 映射 docker.sock

      contaienr镜像当前需要自己配置,目前已经做了两个镜像
      - gsmlg/jenkins-slave-jnlp-dind
      - gsmlg/jenkins-slave-jnlp-nodejs
    

配置项目

添加project的时候

  • 通过 Label Expression 来确定使用哪一个Pod template 来启动 slave

  • Source Code Management 配置 git 项目地址

  • branches to build 指定那些分支会进行构建

  • Build Triggers 中指定自动出发 build 的触发器

  • Build Environment 指定 Build 终端输出颜色

  • Build 指定 build 命令,可以分阶段执行

  • Post build build 完成后的动作

Comment

  • jnlp - Java Network Launch Protocol Link