Jenkins Operator安装

1,804 阅读1分钟

前言

最近使用ansible搭建了一套kunernetes集群,想装一个Jenkins-Operator来玩玩,安装的过程遇到了一些问题在此记录一下。

安装Jenkins Operator

kubectl apply -f https://raw.githubusercontent.com/jenkinsci/kubernetes-operator/master/deploy/all-in-one-v1alpha2.yaml

部署jenkins

apiVersion: jenkins.io/v1alpha2
kind: Jenkins
metadata:
  name: example
spec:
  master:
    containers:
    - name: jenkins-master
      image: jenkins/jenkins:lts
      imagePullPolicy: Always
      livenessProbe:
        failureThreshold: 12
        httpGet:
          path: /login
          port: http
          scheme: HTTP
        initialDelaySeconds: 80
        periodSeconds: 10
        successThreshold: 1
        timeoutSeconds: 5
      readinessProbe:
        failureThreshold: 3
        httpGet:
          path: /login
          port: http
          scheme: HTTP
        initialDelaySeconds: 30
        periodSeconds: 10
        successThreshold: 1
        timeoutSeconds: 1
      resources:
        limits:
          cpu: 1500m
          memory: 3Gi
        requests:
          cpu: "1"
          memory: 500Mi
  seedJobs:
  - id: jenkins-operator
    targets: "cicd/jobs/*.jenkins"
    description: "Jenkins Operator repository"
    repositoryBranch: master
    repositoryUrl: https://github.com/jenkinsci/kubernetes-operator.git

使用上面的yaml部署Jenkins,在这个过程中出现了问题。

[root@k8s-master1 ~]# kubectl get pod
NAME                                      READY   STATUS    RESTARTS   AGE
jenkins-example                           0/1     Running   0          19h
jenkins-operator-5f7979f97b-nhvtr         1/1     Running   0          3d17h

jenkins-example这个pod一直不能达到ready状态。查看整个启动过程的日志,在启动过程中会下载很多的插件感觉比较耗时,于是我把上面yaml中存活探针、和就绪探针的时间 改长,又出现了如下错误:

java.io.IOException: Failed to load: Pipeline: Declarative Extension Points API (1.7.1)
 - Update required: Pipeline: Job (2.38) to be updated to 2.39 or higher
	at hudson.PluginWrapper.resolvePluginDependencies(PluginWrapper.java:934)
	at hudson.PluginManager$2$1$1.run(PluginManager.java:548)
	at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169)
	at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296)
	at jenkins.model.Jenkins$5.runTask(Jenkins.java:1131)
	at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214)
	at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
	at jenkins.security.ImpersonatingExecutorService$1.run(ImpersonatingExecutorService.java:59)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)

不断google后在jenkinsci/kubernetes-operator的issues中找到了解决的方法,这是一个bug在jenkinsci/kubernetes-operator的pull中已经修复。

总结

解决问题还是要多看github的issues