站点图标 星露谷值班站长

kubernetes安装Jenkins配置本地持久化

在 kubernetes 上安装 Jenkins,这里使用 Jenkins 官方 Helm 项目

https://github.com/jenkinsci/helm-charts

首先需要把项目下载到本地

yum  install git -y
git clone https://github.com/jenkinsci/helm-charts.git

这里为了更好的性能我使用 HostPath 作为本地存储,当然你也可以使用 NFS 等其他存储类型。

配置 Jenkins_home 为 HostPath

将 Jenkins 服务固定在 node 节点上面

首先在需要固定的机器上面打上标签并新建挂载目录

kubectl label nodes kube-n1 node=kube-n1
mkdir -p /data/jenkins_data

修改 values.yml 文件

1186 行 persistence.enabled 更改为 false

接着分别修改 625 和 1048 行设置 nodeSelector

625   nodeSelector: {"node":"kube-n1"}
1048   nodeSelector: {"node":"kube-n1"}

接着我们继续修改 helm-charts/charts/jenkins/templates/jenkins-controller-statefulset.yaml 文件

      {{- if .Values.persistence.enabled}}
        persistentVolumeClaim:
          claimName: {{.Values.persistence.existingClaim | default (include "jenkins.fullname" .) }}
      {{- else}}
        hostPath:
           path: /data/jenkins_data
      {{- end -}}
      {{- end}}
      - name: sc-config-volume
        emptyDir: {}
      - name: tmp-volume
        emptyDir: {}

修改 jenkins_home 挂载为 HostPath

保存全部文件后执行下面命令安装 jenkins

 helm install my-jenkins ./ --version 5.1.25

查看安装状态

kubectl describe pod my-jenkins-0

如果有无法下载的镜像可以前往渡渡鸟镜像站查找下载

docker.io/jenkins/jenkins:2.452.1-jdk17
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/jenkins/jenkins:2.452.1-jdk17

docker.io/kiwigrid/k8s-sidecar:1.27.2
swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/kiwigrid/k8s-sidecar:1.27.2

查看 jenkins 密码

kubectl exec --namespace default -it svc/my-jenkins -c jenkins -- /bin/cat /run/secrets/additional/chart-admin-password && echo

浏览器访问成功

退出移动版