K8s搭建Jenkins的详细教程(附源代码)

 更新时间:2025年03月21日 10:07:03   作者:骑上单车去旅行  
Jenkins 是一个开源的自动化服务器,主要用于持续集成和持续交付,这篇文章主要来和大家介绍一下如何在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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • K8S修改Pod时间方案详细代码实例

    K8S修改Pod时间方案详细代码实例

    在Kubernetes中,修改Pod的时间通常指的是修改Pod的时区设置,因为Pod的时间戳(如创建时间)是由Kubernetes集群管理的,并且通常不建议直接修改,这篇文章主要介绍了K8S修改Pod时间方案的相关资料,需要的朋友可以参考下
    2025-08-08
  • 一文详解基于Kubescape进行Kubernetes安全加固

    一文详解基于Kubescape进行Kubernetes安全加固

    这篇文章主要为大家介绍了基于Kubescape进行Kubernetes安全加固详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-02-02
  • K8s之StatefulSet控制器使用实例

    K8s之StatefulSet控制器使用实例

    在Kubernetes实战中,StatefulSet控制器用于部署和管理有状态应用,这些应用需要稳定的持久化存储、有序的部署和扩展、以及唯一的网络标识,这篇文章主要介绍了K8s之StatefulSet控制器使用的相关资料,需要的朋友可以参考下
    2026-04-04
  • Kubernetes核心组件实战解析之API Server与Scheduler的生产级应用指南

    Kubernetes核心组件实战解析之API Server与Scheduler的生产级应用指南

    在Kubernetes集群中,kube-apiserver和kube-scheduler如同机场的塔台控制系统,一个负责全局通信调度,一个专注资源分配优化,本文将深入解析这两个核心组件在生产环境中的关键作用与实战配置,需要的朋友可以参考下
    2025-03-03
  • K8s-helm简介及基本概念详解

    K8s-helm简介及基本概念详解

    ​Helm 使用的包格式称为 chart,它是一个描述 Kubernetes 相关资源对象的文件集合,这篇文章主要介绍了K8s-helm简介及基本概念,需要的朋友可以参考下
    2022-07-07
  • K8S集群卸载清理的完整步骤流程

    K8S集群卸载清理的完整步骤流程

    在Kubernetes(简称K8S)的生命周期中,可能会遇到需要卸载和清理集群的情况,本文将详细介绍如何安全地卸载K8S集群,并清理所有相关的资源,需要的可以了解下
    2025-08-08
  • K8s准入控制Admission Controller深入介绍

    K8s准入控制Admission Controller深入介绍

    本篇我们将聚焦于 kube-apiserver 请求处理过程中一个很重要的部分 -- 准入控制器(Admission Controller)深入讲解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-04-04
  • K8S Helm应用部署与依赖治理实战教程

    K8S Helm应用部署与依赖治理实战教程

    文章阐述了Kubernetes部署中的三大挑战(环境配置漂移、版本回退失控、依赖治理低效),并介绍Helm通过声明式模板、版本控制与依赖管理实现标准化配置、环境隔离和版本回滚,提升部署效率与可靠性,对K8S Helm应用部署相关知识感兴趣的朋友一起看看吧
    2025-07-07
  • k8s证书有效期时间修改的方法详解

    k8s证书有效期时间修改的方法详解

    K8S集群有证书的概念,之前一直是使用默认的,默认都是1年和10年的,1年有效期这显然对于生产环境是不合适的,下面这篇文章主要给大家介绍了关于k8s证书有效期时间修改的相关资料,需要的朋友可以参考下
    2022-08-08
  • 详解kubernetes pod的编排和生命周期

    详解kubernetes pod的编排和生命周期

    这篇文章主要介绍了kubernetes pod的编排和生命周期的相关资料,帮助大家更好的理解和学习使用K8S,感兴趣的朋友可以了解下
    2021-04-04

最新评论