K8s搭建Jenkins的详细教程(附源代码)
作者:骑上单车去旅行
以下是在Kubernetes(K8s)中搭建Jenkins的详细教程:
一、前提条件
已安装并配置好Kubernetes集群。可以是在本地使用Minikube、kind等工具搭建的测试集群,也或者是云服务商提供的托管Kubernetes服务。
熟悉基本的Kubernetes概念,如Deployment、Service、PersistentVolumeClaim等。
具备命令行操作工具,如kubectl,并且已经配置好能够访问目标Kubernetes集群。
二、步骤
1.创建命名空间(可选)
为了更好地组织资源,我们可以创建一个专门用于Jenkins的命名空间。
使用以下命令创建命名空间:
kubectl create namespace jenkins
2.创建持久化存储(Persistent Volume Claim - PVC)
Jenkins需要存储配置、构建记录等数据,所以我们要创建PVC来实现数据持久化。
创建一个jenkins - pvc.yaml文件,内容如下:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: jenkins-pvc namespace: jenkins spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi
然后使用kubectl apply -f jenkins-pvc.yaml命令来创建PVC。
3.部署Jenkins
创建一个jenkins-deployment.yaml文件来定义Jenkins的Deployment。以下是一个示例:
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
这个Deployment定义了一个Jenkins容器,它使用之前创建的PVC来挂载/var/jenkins_home目录,用于数据存储。并且暴露了8080端口(用于Web访问)和50000端口(用于Jenkins Agent连接)。
使用kubectl apply -f jenkins-deployment.yaml命令来部署Jenkins。
4.创建服务(Service)
创建一个jenkins - service.yaml文件来定义服务,用于访问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
这里我们创建了一个NodePort类型的服务,将容器内的8080端口映射到集群节点的30080端口(可以根据实际情况修改nodePort的值)。
使用kubectl apply -f jenkins-service.yaml命令来创建服务。
5.获取Jenkins初始密码
为了登录Jenkins,需要获取初始密码。
可以使用以下命令查看初始密码:
kubectl exec -it <jenkins-pod-name> -n jenkins -- cat /var/jenkins_home/secrets/initialAdminPassword
其中<jenkins-pod-name>需要替换为实际的Jenkins Pod名称,可以通过kubectl get pods -n jenkins命令来查找。
6.访问Jenkins
在浏览器中访问http://<集群节点IP>:30080(如果是在本地使用Minikube等工具,可能需要使用相应的访问方式,如minikube service jenkins-service -n jenkins),然后输入初始密码进行初始化设置。
以上代码主要包括PVC、Deployment和Service的YAML定义文件,这些文件用于在Kubernetes中部署和配置Jenkins。整个过程通过定义资源清单并使用kubectl apply命令来将资源部署到Kubernetes集群中。在实际使用中,可以根据自己的需求对配置进行调整,如调整存储大小、服务类型等。
到此这篇关于K8s搭建Jenkins的详细教程(附源代码)的文章就介绍到这了,更多相关K8s搭建Jenkins内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!