1)准备支持动态存储的storageclass,这里使用rancher longhorn,也可以使用nfs、ceph等
#所有节点安装longhorn依赖yum install -y iscsi-initiator-utilssystemctl enable --now iscsid#部署longhornhelm repo add longhorn https://charts.longhorn.iohelm repo updatekubectl create namespace longhorn-systemhelm install longhorn \--namespace longhorn-system \--set defaultSettings.defaultDataPath="/var/lib/longhorn/" \--set defaultSettings.defaultReplicaCount=2 \--set service.ui.type=NodePort \--set service.ui.nodePort=30880 \longhorn/longhorn
2)helm 部署 jenkins
helm repo add stable https://kubernetes-charts.storage.googleapis.com/由于上面repo国内下载不了,我这边会用如下的helm repo add stable http://mirror.azure.cn/kubernetes/chartshelm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/chartshelm updatekubectl create ns devopshelm install jenkins \--namespace devops \--set master.image=jenkins/jenkins \--set master.tag=2.248 \--set master.adminUser=admin \--set master.adminPassword="admin" \--set master.serviceType=NodePort \--set master.nodePort=30180 \--set master.initContainerEnv[0].name=JENKINS_UC \--set master.initContainerEnv[0].value="https://updates.jenkins-zh.cn/update-center.json" \--set master.initContainerEnv[1].name=JENKINS_UC_DOWNLOAD \--set master.initContainerEnv[1].value="https://mirrors.tuna.tsinghua.edu.cn/jenkins" \--set persistence.storageClass=longhorn \--set persistence.size=20Gi \stable/jenkins#说明:initContainerEnv参数:jenkins初始化时initContainer中会执行/var/jenkins_config/apply_config.sh脚本,并调用install-plugins.sh脚本下载kubernetes插件,指定为国内地址;persistence.storageClass参数:用于动态申请pv,持久化jenkins数据#查看root@k8s-master01:~/docker-k8s-file/devops# kubectl get pods -n devops|grep jenkinsjenkins-5486f8874f-tz6rc 2/2 Running 0 8m19sroot@k8s-master01:~/docker-k8s-file/devops# kubectl get svc -n devops|grep jenkinsjenkins NodePort 10.108.73.56 <none> 8080:30180/TCPjenkins-agent ClusterIP 10.104.110.18 <none> 50000/TCP 8m24s
3)修改插件源为国内地址
root@k8s-master01:~/docker-k8s-file/devops# kubectl -n devops exec -it jenkins-5486f8874f-tz6rc shmkdir $JENKINS_HOME/update-center-rootCAscat > $JENKINS_HOME/update-center-rootCAs/jenkins-update-center-cn-root-ca.crt <<END-----BEGIN CERTIFICATE-----MIICcTCCAdoCCQD/jZ7AgrzJKTANBgkqhkiG9w0BAQsFADB9MQswCQYDVQQGEwJDTjELMAkGA1UECAwCR0QxCzAJBgNVBAcMAlNaMQ4wDAYDVQQKDAV2aWhvbzEMMAoGA1UECwwDZGV2MREwDwYDVQQDDAhkZW1vLmNvbTEjMCEGCSqGSIb3DQEJARYUYWRtaW5AamVua2lucy16aC5jb20wHhcNMTkxMTA5MTA0MDA5WhcNMjIxMTA4MTA0MDA5WjB9MQswCQYDVQQGEwJDTjELMAkGA1UECAwCR0QxCzAJBgNVBAcMAlNaMQ4wDAYDVQQKDAV2aWhvbzEMMAoGA1UECwwDZGV2MREwDwYDVQQDDAhkZW1vLmNvbTEjMCEGCSqGSIb3DQEJARYUYWRtaW5AamVua2lucy16aC5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAN+6jN8rCIjVkQ0Q7ZbJLk4IdcHor2WdskOQMhlbR0gOyb4gRX+CorjDRjDm6mj2OohqlrtRxLGYxBnXFeQGU7wWjQHyfKDghtP51G/672lXFtzBKXukHByHjtzrDxAutKTdolyBCuIDDGJmRk+LavIBY3/Lxh6f0ZQSeCSJYiyxAgMBAAEwDQYJKoZIhvcNAQELBQADgYEAD92l26PoJcbl9GojK2L3pyOQjeeDm/vV9e3REgwGmoIQzlubM0mjxpCz1J73nesoAcuplTEps/46L7yoMjptCA3TU9FZAHNQ8dbza0vm4CF9841/FIk8tsLtwCT6ivkAi0lXGwhX0FK7FaAyU0nNeo/EPvDwzTim4XDK9j1WGpE=-----END CERTIFICATE-----ENDcp $JENKINS_HOME/hudson.model.UpdateCenter.xml $JENKINS_HOME/hudson.model.UpdateCenter.xml.baksed -i 's#https://updates.jenkins.io/update-center.json#https://mirrors.huaweicloud.com/jenkins/updates/update-center.json#g' \$JENKINS_HOME/hudson.model.UpdateCenter.xml
浏览器访问:http://192.168.10.110:30180
安装以下常用插件
- pipeline
- docker pipeline
- blueocean
- kubernetes
- git
- maven
默认jenkins已经添加kubernetes cloud,选择管理jenkins—>管理node和cloud,确认cloud配置即可
