k8s部署jenkins
(1)细节说明:在jenkins的master上首先打开这个,目的是slave来连接master具体在yaml中体现在
·
一、静态slave
(1)报错
问题出在pod挂载了nfs(宿主机)共享过来的目录,但没有'写的权限'
(2)jenkins中会初始化的脚本
其他方式:操作jenkins的'API去设置端口',注意通过yaml注入的环境变量
作用:在jenkins的master上首先打开这个,目的是'slave来连接master'
备注:不过一般是'5000',这里自定义为30081,在jenkins会自动注入!
具体在yaml中体现在-->'后续补充'
(1)创建静态slave
第一步:先生成
第二部:yaml配置
'报错':目录权限的问题
chmod -R 777 /data/devops/jenkins/workspace
'方式1':二进制放到这个挂载的目录,然后'挂载到'jenkins的pod里面即可
方式2:'各个工具以pod的形式生成',然后调用即可!
二、动态slave
'效果':当有一个job,k8s自动创建一个pod
(1)安装插件
备注:安装之后进行'重启'
(2)进行配置
'第一步':添加凭据
做的辅助工作:'pod里面通过该文件与api server通信,通过kubectl命令来操作k8s的资源'
(1)生成ca证书
2)客户端的证书
3)客户端的key
'效果':外部客户端通过api访问 api server的认证
'下一步':制作证书
# 生成证书
openssl pkcs12 -export -out cert.pfs -inkey client.key -in client.crt -certfile ca.crt
# 核心是cert.pfs这个文件
添加凭据
'传输折中方式':由于是windows操作的,需要上传到服务器上
最终
(2)系统配置中新增一个云
配置ok
备注:没有指定的'其他选项默认'
(3)17:10分
pipeline{
agent{
kubernetes{
cloud 'kubernetes'
yaml '''
---
kind: Pod
apiVersion: v1
metadata:
labels:
k8s-app: jenkins-agent-dynamic
name: jenkins-agent-dynamic
namespace: devops
spec:
containers:
- name: jenkins-agent-dynamic
image: jenkinsci/jnlp-slave:3.36-1
imagePullPolicy: IfNotPresent
resources:
limits:
cpu: 1000m
memory: 2Gi
requests:
cpu: 500m
memory: 512Mi
volumeMounts:
- name: jenkinsagent01-workdir
mountPath: /home/jenkins/workspace
- name: buildtools
mountPath: /home/jenkins/buildtools
env:
- name: JENKINS_AGENT_WORKDIR
value: /home/jenkins/workspace
volumes:
- name: jenkinsagent01-workdir
hostPath:
path: /data/devops/jenkins/workspace
type: Directory
- name: buildtools
hostPath:
path: /usr/local/buildtools
type: Directory
'''
}
}
stages{
stage('test'){
steps{
script{
sh 'sleep 15'
}
}
}
}
}
备注:'正在创建pod'
理论上:'先创建一个slave节点,然后用该slave节点执行一个任务'
下面报错:'没有这个挂载点造成的'
说明: pipeline根据自己的需要可以适当的修改
出现的报错: '除了自己指定的默认容器,jenkins平台也会启用一个,建议使用jenkins平台提供的'
更多推荐
已为社区贡献11条内容
所有评论(0)