Jenkins POD 重启如何持久化 Jenkins 配置和插件
Jenkins POD restarts how to persists Jenkins configuration and plugin
我已经将我的 Jenkins 部署为 kubernetes yaml 文件的一部分,并且还启用了 Persist volume claim,当我的 Jenkins pod 重新启动时,我丢失了所有的作业和配置,这意味着我需要重新安装所有 Jenkins suggest 插件,配置 kubernetes 云,配置 git 存储库,并创建新的管道作业。
cloud你帮我看看如何避免上述情况。
vi jenkins-deployment.yaml
kind: Deployment
apiVersion: apps/v1
metadata:
name: jenkins-master
namespace: jenkins
labels:
app: jenkins-master
spec:
replicas: 1
selector:
matchLabels:
app: jenkins-master
template:
metadata:
labels:
app: jenkins-master
spec:
securityContext:
fsGroup: 1000
containers:
- name: jenkins
image: jenkins/jenkins:lts
imagePullPolicy: Always
ports:
- containerPort: 8080
- containerPort: 50000
readinessProbe:
httpGet:
path: /login
port: 8080
initialDelaySeconds: 300
periodSeconds: 10
timeoutSeconds: 5
successThreshold: 2
failureThreshold: 5
volumeMounts:
- mountPath: "/var"
name: jenkins-home
subPath: jenkins_home
resources:
limits:
cpu: 800m
memory: 3Gi
requests:
cpu: 100m
memory: 3Gi
volumes:
- name: jenkins-home
persistentVolumeClaim:
claimName: pvc-jenkins-home
vi jenkins-pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-jenkins-home
namespace: jenkins
spec:
storageClassName: efs
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Mi
kubectl get pvc -n jenkins
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pvc-jenkins-home Bound pvc-4ccf3f55-6894-4fee-88d7-58dd7584b837 10Mi RWO efs 59m
如果我需要任何详细信息,请告诉我
请从 volumeMounts
中删除 subpath
,因为子路径将覆盖 /var
目录下的所有内容。所以它应该是这样的
volumeMounts:
- mountPath: /var
name: jenkins-home
我已经将我的 Jenkins 部署为 kubernetes yaml 文件的一部分,并且还启用了 Persist volume claim,当我的 Jenkins pod 重新启动时,我丢失了所有的作业和配置,这意味着我需要重新安装所有 Jenkins suggest 插件,配置 kubernetes 云,配置 git 存储库,并创建新的管道作业。
cloud你帮我看看如何避免上述情况。
vi jenkins-deployment.yaml
kind: Deployment
apiVersion: apps/v1
metadata:
name: jenkins-master
namespace: jenkins
labels:
app: jenkins-master
spec:
replicas: 1
selector:
matchLabels:
app: jenkins-master
template:
metadata:
labels:
app: jenkins-master
spec:
securityContext:
fsGroup: 1000
containers:
- name: jenkins
image: jenkins/jenkins:lts
imagePullPolicy: Always
ports:
- containerPort: 8080
- containerPort: 50000
readinessProbe:
httpGet:
path: /login
port: 8080
initialDelaySeconds: 300
periodSeconds: 10
timeoutSeconds: 5
successThreshold: 2
failureThreshold: 5
volumeMounts:
- mountPath: "/var"
name: jenkins-home
subPath: jenkins_home
resources:
limits:
cpu: 800m
memory: 3Gi
requests:
cpu: 100m
memory: 3Gi
volumes:
- name: jenkins-home
persistentVolumeClaim:
claimName: pvc-jenkins-home
vi jenkins-pvc.yaml
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: pvc-jenkins-home
namespace: jenkins
spec:
storageClassName: efs
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Mi
kubectl get pvc -n jenkins
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pvc-jenkins-home Bound pvc-4ccf3f55-6894-4fee-88d7-58dd7584b837 10Mi RWO efs 59m
如果我需要任何详细信息,请告诉我
请从 volumeMounts
中删除 subpath
,因为子路径将覆盖 /var
目录下的所有内容。所以它应该是这样的
volumeMounts:
- mountPath: /var
name: jenkins-home