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/jenkinsAdd 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