K8s搭建Jenkins的詳細(xì)教程(附源代碼)
以下是在Kubernetes(K8s)中搭建Jenkins的詳細(xì)教程:
一、前提條件
已安裝并配置好Kubernetes集群??梢允窃诒镜厥褂肕inikube、kind等工具搭建的測(cè)試集群,也或者是云服務(wù)商提供的托管Kubernetes服務(wù)。
熟悉基本的Kubernetes概念,如Deployment、Service、PersistentVolumeClaim等。
具備命令行操作工具,如kubectl,并且已經(jīng)配置好能夠訪問(wèn)目標(biāo)Kubernetes集群。
二、步驟
1.創(chuàng)建命名空間(可選)
為了更好地組織資源,我們可以創(chuàng)建一個(gè)專門用于Jenkins的命名空間。
使用以下命令創(chuàng)建命名空間:
kubectl create namespace jenkins
2.創(chuàng)建持久化存儲(chǔ)(Persistent Volume Claim - PVC)
Jenkins需要存儲(chǔ)配置、構(gòu)建記錄等數(shù)據(jù),所以我們要?jiǎng)?chuàng)建PVC來(lái)實(shí)現(xiàn)數(shù)據(jù)持久化。
創(chuàng)建一個(gè)jenkins - pvc.yaml文件,內(nèi)容如下:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jenkins-pvc
namespace: jenkins
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 10Gi
然后使用kubectl apply -f jenkins-pvc.yaml命令來(lái)創(chuàng)建PVC。
3.部署Jenkins
創(chuàng)建一個(gè)jenkins-deployment.yaml文件來(lái)定義Jenkins的Deployment。以下是一個(gè)示例:
apiVersion: apps/v1
kind: Deployment
metadata:
name: jenkins
namespace: jenkins
spec:
replicas: 1
selector:
matchLabels:
app: jenkins
template:
metadata:
labels:
app: jenkins
spec:
containers:
- name: jenkins
image: jenkins/jenkins:lts
ports:
- containerPort: 8080
- containerPort: 50000
volumeMounts:
- name: jenkins-home
mountPath: /var/jenkins_home
volumes:
- name: jenkins-home
persistentVolumeClaim:
claimName: jenkins-pvc這個(gè)Deployment定義了一個(gè)Jenkins容器,它使用之前創(chuàng)建的PVC來(lái)掛載/var/jenkins_home目錄,用于數(shù)據(jù)存儲(chǔ)。并且暴露了8080端口(用于Web訪問(wèn))和50000端口(用于Jenkins Agent連接)。
使用kubectl apply -f jenkins-deployment.yaml命令來(lái)部署Jenkins。
4.創(chuàng)建服務(wù)(Service)
創(chuàng)建一個(gè)jenkins - service.yaml文件來(lái)定義服務(wù),用于訪問(wèn)Jenkins。
apiVersion: v1
kind: Service
metadata:
name: jenkins-service
namespace: jenkins
spec:
type: NodePort
ports:
- port: 8080
targetPort: 8080
nodePort: 30080
name: jenkins-http-port
- port: 50000
targetPort: 50000
nodePort: 30050
name: jenkins-agent-port
selector:
app: jenkins這里我們創(chuàng)建了一個(gè)NodePort類型的服務(wù),將容器內(nèi)的8080端口映射到集群節(jié)點(diǎn)的30080端口(可以根據(jù)實(shí)際情況修改nodePort的值)。
使用kubectl apply -f jenkins-service.yaml命令來(lái)創(chuàng)建服務(wù)。
5.獲取Jenkins初始密碼
為了登錄Jenkins,需要獲取初始密碼。
可以使用以下命令查看初始密碼:
kubectl exec -it <jenkins-pod-name> -n jenkins -- cat /var/jenkins_home/secrets/initialAdminPassword
其中<jenkins-pod-name>需要替換為實(shí)際的Jenkins Pod名稱,可以通過(guò)kubectl get pods -n jenkins命令來(lái)查找。
6.訪問(wèn)Jenkins
在瀏覽器中訪問(wèn)http://<集群節(jié)點(diǎn)IP>:30080(如果是在本地使用Minikube等工具,可能需要使用相應(yīng)的訪問(wèn)方式,如minikube service jenkins-service -n jenkins),然后輸入初始密碼進(jìn)行初始化設(shè)置。
以上代碼主要包括PVC、Deployment和Service的YAML定義文件,這些文件用于在Kubernetes中部署和配置Jenkins。整個(gè)過(guò)程通過(guò)定義資源清單并使用kubectl apply命令來(lái)將資源部署到Kubernetes集群中。在實(shí)際使用中,可以根據(jù)自己的需求對(duì)配置進(jìn)行調(diào)整,如調(diào)整存儲(chǔ)大小、服務(wù)類型等。
到此這篇關(guān)于K8s搭建Jenkins的詳細(xì)教程(附源代碼)的文章就介紹到這了,更多相關(guān)K8s搭建Jenkins內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
K8S修改Pod時(shí)間方案詳細(xì)代碼實(shí)例
在Kubernetes中,修改Pod的時(shí)間通常指的是修改Pod的時(shí)區(qū)設(shè)置,因?yàn)镻od的時(shí)間戳(如創(chuàng)建時(shí)間)是由Kubernetes集群管理的,并且通常不建議直接修改,這篇文章主要介紹了K8S修改Pod時(shí)間方案的相關(guān)資料,需要的朋友可以參考下2025-08-08
一文詳解基于Kubescape進(jìn)行Kubernetes安全加固
這篇文章主要為大家介紹了基于Kubescape進(jìn)行Kubernetes安全加固詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02
Kubernetes核心組件實(shí)戰(zhàn)解析之API?Server與Scheduler的生產(chǎn)級(jí)應(yīng)用指南
在Kubernetes集群中,kube-apiserver和kube-scheduler如同機(jī)場(chǎng)的塔臺(tái)控制系統(tǒng),一個(gè)負(fù)責(zé)全局通信調(diào)度,一個(gè)專注資源分配優(yōu)化,本文將深入解析這兩個(gè)核心組件在生產(chǎn)環(huán)境中的關(guān)鍵作用與實(shí)戰(zhàn)配置,需要的朋友可以參考下2025-03-03
K8s準(zhǔn)入控制Admission?Controller深入介紹
本篇我們將聚焦于?kube-apiserver?請(qǐng)求處理過(guò)程中一個(gè)很重要的部分?--?準(zhǔn)入控制器(Admission?Controller)深入講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2022-04-04
K8S Helm應(yīng)用部署與依賴治理實(shí)戰(zhàn)教程
文章闡述了Kubernetes部署中的三大挑戰(zhàn)(環(huán)境配置漂移、版本回退失控、依賴治理低效),并介紹Helm通過(guò)聲明式模板、版本控制與依賴管理實(shí)現(xiàn)標(biāo)準(zhǔn)化配置、環(huán)境隔離和版本回滾,提升部署效率與可靠性,對(duì)K8S Helm應(yīng)用部署相關(guān)知識(shí)感興趣的朋友一起看看吧2025-07-07

