k8s部署jenkins

jenkins-namespace.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: wgs-jenkins

jenkins-persistentvolume.yaml

apiVersion: v1
kind: PersistentVolume
metadata:
  name: jenkins-datadir-pv
  namespace: wgs-jenkins
spec:
  capacity:
    storage: 5Gi
  accessModes:
    - ReadWriteOnce
  nfs:
    server: 192.168.174.102
    path: /data/k8s-data/jenkins

jenkins-persistentvolumeclaim.yaml

---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: jenkins-datadir-pvc
  namespace: wgs-jenkins
spec:
  volumeName: jenkins-datadir-pv
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 5Gi

jenkins.yaml

kind: Deployment
apiVersion: apps/v1
metadata:
  labels:
    app: wgs-jenkins
  name: wgs-jenkins-deployment
  namespace: wgs-jenkins
spec:
  replicas: 1
  selector:
    matchLabels:
      app: wgs-jenkins
  template:
    metadata:
      labels:
        app: wgs-jenkins
    spec:
      containers:
      - name: wgs-jenkins-container
        image: uhub.service.ucloud.cn/wgs-test/jenkins:v2.391 
        #imagePullPolicy: IfNotPresent
        imagePullPolicy: Always
        ports:
        - containerPort: 8080
          protocol: TCP
          name: http
        volumeMounts:
        - mountPath: "/apps/jenkins/jenkins_home/"
          name: jenkins-datadir-wgs
      volumes:
        - name: jenkins-datadir-wgs
          persistentVolumeClaim:
            claimName: jenkins-datadir-pvc

---
kind: Service
apiVersion: v1
metadata:
  labels:
    app: wgs-jenkins
  name: wgs-jenkins-service
  namespace: wgs-jenkins
spec:
  type: NodePort
  ports:
  - name: http
    port: 80
    protocol: TCP
    targetPort: 8080
    nodePort: 38080
  selector:
    app: wgs-jenkins

创建资源

# kubectl apply -f .
namespace/wgs-jenkins created
persistentvolume/jenkins-datadir-pv created
persistentvolumeclaim/jenkins-datadir-pvc created
deployment.apps/wgs-jenkins-deployment created
service/wgs-jenkins-service created

查看资源

查看pv资源

# kubectl get pv -n wgs-jenkins
NAME                 CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                             STORAGECLASS   REASON   AGE
jenkins-datadir-pv   5Gi        RWO            Retain           Bound    wgs-jenkins/jenkins-datadir-pvc                           63s

查看pvc资源

# kubectl get pvc -n wgs-jenkins
NAME                  STATUS   VOLUME               CAPACITY   ACCESS MODES   STORAGECLASS   AGE
jenkins-datadir-pvc   Bound    jenkins-datadir-pv   5Gi        RWO                           78s

查看jenkins资源

# kubectl get pod -n wgs-jenkins -o wide
NAME                                      READY   STATUS    RESTARTS   AGE     IP              NODE              NOMINATED NODE   READINESS GATES
wgs-jenkins-deployment-678cd965cd-bfqg4   1/1     Running   0          4m11s   172.20.89.134   192.168.174.108   <none>           <none>

查看svc资源

# kubectl get svc -n wgs-jenkins -o wide
NAME                  TYPE       CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE     SELECTOR
wgs-jenkins-service   NodePort   10.100.80.133   <none>        80:38080/TCP   4m48s   app=wgs-jenkins

查看数据目录

# ls -l /data/k8s-data/jenkins/
total 52
-rw-r--r--  1 root root 1658 Feb 21 16:26 config.xml
-rw-r--r--  1 root root  156 Feb 21 16:25 hudson.model.UpdateCenter.xml
-rw-r--r--  1 root root  171 Feb 21 16:25 jenkins.telemetry.Correlator.xml
drwxr-xr-x  2 root root 4096 Feb 21 16:25 jobs
-rw-r--r--  1 root root  907 Feb 21 16:25 nodeMonitors.xml
drwxr-xr-x  2 root root 4096 Feb 21 16:25 nodes
drwxr-xr-x  2 root root 4096 Feb 21 16:25 plugins
-rw-r--r--  1 root root   64 Feb 21 16:25 secret.key
-rw-r--r--  1 root root    0 Feb 21 16:25 secret.key.not-so-secret
drwx------  2 root root 4096 Feb 21 16:25 secrets
drwxr-xr-x  2 root root 4096 Feb 21 16:26 updates
drwxr-xr-x  2 root root 4096 Feb 21 16:25 userContent
drwxr-xr-x  3 root root 4096 Feb 21 16:25 users
drwxr-xr-x 11 root root 4096 Feb 21 16:25 war

查看jenkins日志

# kubectl logs wgs-jenkins-deployment-678cd965cd-bfqg4 -n wgs-jenkins
Running from: /apps/jenkins/jenkins-2.391.war
webroot: /apps/jenkins/jenkins_home/war
2023-02-21 08:25:38.231+0000 [id=1]	INFO	winstone.Logger#logInternal: Beginning extraction from war file
2023-02-21 08:25:49.377+0000 [id=1]	WARNING	o.e.j.s.handler.ContextHandler#setContextPath: Empty contextPath
2023-02-21 08:25:49.492+0000 [id=1]	INFO	org.eclipse.jetty.server.Server#doStart: jetty-10.0.13; built: 2022-12-07T20:13:20.134Z; git: 1c2636ea05c0ca8de1ffd6ca7f3a98ac084c766d; jvm 17.0.5+9-LTS-191
2023-02-21 08:25:50.336+0000 [id=1]	INFO	o.e.j.w.StandardDescriptorProcessor#visitServlet: NO JSP Support for /, did not find org.eclipse.jetty.jsp.JettyJspServlet
2023-02-21 08:25:50.447+0000 [id=1]	INFO	o.e.j.s.s.DefaultSessionIdManager#doStart: Session workerName=node0
2023-02-21 08:25:51.100+0000 [id=1]	INFO	hudson.WebAppMain#contextInitialized: Jenkins home directory: /apps/jenkins/jenkins_home found at: EnvVars.masterEnvVars.get("JENKINS_HOME")
2023-02-21 08:25:51.283+0000 [id=1]	INFO	o.e.j.s.handler.ContextHandler#doStart: Started w.@3f29e26{Jenkins v2.391,/,file:///apps/jenkins/jenkins_home/war/,AVAILABLE}{/apps/jenkins/jenkins_home/war}
2023-02-21 08:25:51.355+0000 [id=1]	INFO	o.e.j.server.AbstractConnector#doStart: Started ServerConnector@3eb81efb{HTTP/1.1, (http/1.1)}{0.0.0.0:8080}
2023-02-21 08:25:51.371+0000 [id=1]	INFO	org.eclipse.jetty.server.Server#doStart: Started Server@7d286fb6{STARTING}[10.0.13,sto=0] @14171ms
2023-02-21 08:25:51.375+0000 [id=25]	INFO	winstone.Logger#logInternal: Winstone Servlet Engine running: controlPort=disabled
2023-02-21 08:25:51.778+0000 [id=32]	INFO	jenkins.InitReactorRunner$1#onAttained: Started initialization
2023-02-21 08:25:51.787+0000 [id=31]	INFO	jenkins.InitReactorRunner$1#onAttained: Listed all plugins
2023-02-21 08:25:53.169+0000 [id=31]	INFO	jenkins.InitReactorRunner$1#onAttained: Prepared all plugins
2023-02-21 08:25:53.181+0000 [id=33]	INFO	jenkins.InitReactorRunner$1#onAttained: Started all plugins
2023-02-21 08:25:53.194+0000 [id=31]	INFO	jenkins.InitReactorRunner$1#onAttained: Augmented all extensions
2023-02-21 08:25:53.542+0000 [id=31]	INFO	jenkins.InitReactorRunner$1#onAttained: System config loaded
2023-02-21 08:25:53.543+0000 [id=31]	INFO	jenkins.InitReactorRunner$1#onAttained: System config adapted
2023-02-21 08:25:53.544+0000 [id=33]	INFO	jenkins.InitReactorRunner$1#onAttained: Loaded all jobs
2023-02-21 08:25:53.545+0000 [id=33]	INFO	jenkins.InitReactorRunner$1#onAttained: Configuration for all jobs updated
2023-02-21 08:25:53.609+0000 [id=46]	INFO	hudson.util.Retrier#start: Attempt #1 to do the action check updates server
2023-02-21 08:25:54.380+0000 [id=31]	INFO	jenkins.install.SetupWizard#init: 

*************************************************************
*************************************************************
*************************************************************

Jenkins initial setup is required. An admin user has been created and a password generated.
Please use the following password to proceed to installation:

a51c3df0e3ef4da197172c70eff4e307

This may also be found at: /apps/jenkins/jenkins_home/secrets/initialAdminPassword

*************************************************************
*************************************************************
*************************************************************

2023-02-21 08:26:29.383+0000 [id=32]	INFO	jenkins.InitReactorRunner$1#onAttained: Completed initialization
2023-02-21 08:26:29.406+0000 [id=24]	INFO	hudson.lifecycle.Lifecycle#onReady: Jenkins is fully up and running
2023-02-21 08:26:30.513+0000 [id=46]	INFO	h.m.DownloadService$Downloadable#load: Obtained the updated data file for hudson.tasks.Maven.MavenInstaller
2023-02-21 08:26:30.514+0000 [id=46]	INFO	hudson.util.Retrier#start: Performed the action check updates server successfully at the attempt #1

访问jenkins

posted @ 2023-02-21 16:34  小吉猫  阅读(148)  评论(0编辑  收藏  举报