Jenkins基于Kubernetes的pipeline CI 构建的必备要素

本文仅仅介绍一下基于kubernetes的pipeline CI 环境搭建一些必备要素:

  • 使用Jenkins 官方提供的master镜像
  • 安装必要插件包括:
    • kubernetes插件
    • pipeline 插件
    • Docker pipeline 插件
    • Git 插件或其他代码管理的插件
  • 使用官方提供的jnlp-slave的镜像

配置方法请参见:http://blog.csdn.net/daniel_greenspan/article/details/53338619

配置项:
jenkins–>系统管理–>系统设置–>云 “新增一个云–>选择kubernetes”

配置kubernetes :

Name: k8s_cluster
Kubernetes URL: https://kubernetes.default
Kubernetes Namespace: default
Jenkins URL: http://jenkins.default:8080

配置kubernetes上 jenkins-slave的pod:

images - Kubernetes Pod Template:
Name: jnlp-slave
Labels: jnlp-slave
Docker image: registry.gkkxd.com/jenkinsci/jnlp-slave:2.52
Jenkins slave root directory: /home/jenkins

Add vloume /home/jenkins

问题:

  • 关于docker 挂载卷, jenkins maste和slave默认的user 是jenkins,因此需修改将要挂载给jenkins master 和slave的卷的所有者和读写权限 例如:
    • chown -R jenkins /home/data
    • chmod 777 -R /home/data (这个不一定是777,但777一定能用)
  • jenkins 这里最终是采用的基于kubernetes的docker in docker的编译模式, 因为最终编译的容器是在pipeline的脚本中所写的那个镜像中编译的,可jenkins slave是kubernetes slave pod中配置的,那么jenkins的workspace一定要挂载给jenkins 陪着的 slave
Logo

开源、云原生的融合云平台

更多推荐