重点涉及到知识点的文档:
一、先决条件
- Kubernetes集群
- 已部署Jenkins
- 已安装Jenkins Kubernetes插件
代理是使用JNLP启动的
,因此期望映像自动连接到Jenkins主服务器。为此,将自动注入一些环境变量:
- JENKINS_URL:Jenkins网络界面网址
- JENKINS_SECRET:用于认证的密钥
- JENKINS_AGENT_NAME:Jenkins代理的名称
- JENKINS_NAME:Jenkins代理的名称(不推荐使用。仅在此处是为了向后兼容
二、安装Kubernetes插件
系统管理 -> 插件管理 -> 可选插件 -> Kubernetes plugin
等待安装完重启Jenkins即可。
三、Kubernetes云配置
系统管理 -> 节点管理 -> Configure Clouds -> Kubernetes配置集群
1、 添加 Kubernetes 集群认证:
kubernetes
https://kubernetes.default.svc.cluster.local
Kubernetes 命名空间: slave Pod创建的名称空间
凭据 可不填写
点击测试:如上图提示 连接到Kubernetes 1.19
, 我的k8s版本是1.19最新的版本OK,集群认证成功。
2、 添加 Jenkins 集群认证:
http://jenkins-pipeline.jenkins.svc.cluster.local:8080
点击应用保存即可。
四、创建一个Job测试(流水线)
pipeline {
agent { label 'jnlp-slave'} //jnlp-slave在上面配置的文件标签
environment {
DISABLE_AUTH = 'true' //定义变量 DISABLE_AUTH
DB_ENGINE = 'sqlite' //定义变量 DB_ENGINE
}
stages { //阶段(相当于一个部门)
stage('Build') { //脚步(相当于一个部门中的人员数据库、架构、运维、安全)
steps { //脚步内的步骤(职责人员执行自己负责的任务)
echo "Database engine is ${DB_ENGINE}"
echo "DISABLE_AUTH is ${DISABLE_AUTH}"
sh 'printenv'
}
}
}
}
构建测试(可在黑屏观看是否有Pod生成):
五、将slave生成在Jenkins的名称空间下
1、修改kubernetes云配置
2、多次点击构建测试是否默认为10个
OK