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
