在 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
浏览器访问成功