Vai*_*ain 5 jenkins jenkins-plugins kubernetes jenkins-pipeline jenkins-2
我正在尝试使用jenkins-kubernetes插件设置Jenkins Dynamic slaves创建.
我的jenkins在K8s Cluster外面运行.
链接:https://github.com/jenkinsci/kubernetes-plugin
我的jenkins版本是2.60.2,Kubernetes插件版本是1.1.2
我按照自述文件中提到的步骤进行操作并成功设置连接.
连接成功.
这里开始出现问题: 1.当我最初运行此作业时,它运行并且我的pod中的jenkins slave容器无法连接并抛出:
我已经启用JNLP端口(50000)不确定它是否是正确的端口,即使在Jenkins中使用随机选项进行测试也没有用.
现在我放弃了这个詹金斯的工作并再次运行它说:
Started by user Vaibhav Jain
[Pipeline] podTemplate
[Pipeline] {
[Pipeline] node
Still waiting to schedule task
Jenkins doesn’t have label defaultlabel
Run Code Online (Sandbox Code Playgroud)
并且没有任何pod正在kubernetes开始.这很奇怪.
我不确定我做错了什么.需要帮忙!
我建议您通过创建serviceAccount来使用kubernetes中的凭据,而不是使用证书:
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: jenkins
---
kind: Role
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: jenkins
rules:
- apiGroups: [""]
resources: ["pods"]
verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
resources: ["pods/exec"]
verbs: ["create","delete","get","list","patch","update","watch"]
- apiGroups: [""]
resources: ["pods/log"]
verbs: ["get","list","watch"]
- apiGroups: [""]
resources: ["secrets"]
verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: RoleBinding
metadata:
name: jenkins
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: Role
name: jenkins
subjects:
- kind: ServiceAccount
name: jenkins
Run Code Online (Sandbox Code Playgroud)
并使用该serviceAccount部署jenkins:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
labels:
app: jenkins
name: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
serviceAccountName: jenkins
....
Run Code Online (Sandbox Code Playgroud)
我向您展示了Kubernetes插件的截图(注意JNLP端口的Jenkins隧道,'jenkins'是我的kubernetes服务的名称):
凭证:
然后填写文件(ID将自动生成,说明将显示在凭据列表框中),但请务必在kubernetes中创建serviceAccount,如前所述:
我的指示是针对kubernetes内的Jenkins大师.如果你想在群集之外(但是奴隶在里面),我认为你必须使用简单的登录/密码凭证.
对于您的上一个错误,它似乎是一个主机解析错误:从服务器无法解析您的主机.
我希望它对你有所帮助.
归档时间: |
|
查看次数: |
4600 次 |
最近记录: |