作者信息:https://home.cnblogs.com/u/huangjiabobk

在K8S中,Jenkins如何集成K8S集群?

在 Kubernetes(K8S)集群中集成 Jenkins 主要包括以下几个步骤:安装 Jenkins、安装 Kubernetes 插件、配置 Kubernetes 云环境以及创建 Jenkins Pipeline。以下是详细的操作过程:

1. 安装 Jenkins

在 K8S 集群中部署 Jenkins 通常使用 Deployment 和 Service 资源。以下是示例配置文件 jenkins.yaml

yaml复制

apiVersion: apps/v1
kind: Deployment
metadata:
  name: jenkins
spec:
  replicas: 1
  selector:
    matchLabels:
      app: jenkins
  template:
    metadata:
      labels:
        app: jenkins
    spec:
      containers:
      - name: jenkins
        image: jenkins/jenkins:latest
        ports:
        - containerPort: 8080
        volumeMounts:
        - name: jenkins-data
          mountPath: /var/jenkins_home
      volumes:
      - name: jenkins-data
        persistentVolumeClaim:
          claimName: jenkins-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: jenkins
spec:
  type: NodePort
  ports:
  - port: 8080
    nodePort: 30008
    protocol: TCP
    targetPort: 8080
  selector:
    app: jenkins

使用以下命令将 Jenkins 部署到 K8S 集群:

bash复制

kubectl apply -f jenkins.yaml

部署完成后,可以通过访问 http://<NodeIP>:30008 来访问 Jenkins。

2. 安装 Kubernetes 插件

在 Jenkins 中安装 Kubernetes 插件:

  1. 登录 Jenkins 控制台,点击“管理 Jenkins”。
  2. 选择“管理插件”。
  3. 在“可选插件”中搜索并安装“Kubernetes Plugin”。
3. 配置 Kubernetes 云环境

在 Jenkins 中配置 Kubernetes 云环境:

  1. 点击“管理 Jenkins”。
  2. 点击“配置系统”。
  3. 在“Cloud”部分,点击“Add a new cloud”,选择“Kubernetes”。
  4. 配置 Kubernetes 服务器的连接信息,包括:
    • Kubernetes URL:通常是 https://<K8S-Cluster-IP>:6443
    • Kubernetes Namespace:选择 Jenkins 所在的命名空间。
    • Credentials:如果需要,可以添加 Kubernetes 的认证信息。
4. 创建 Jenkins Pipeline

创建一个简单的 Jenkins Pipeline,用于在 Kubernetes 中构建和部署应用。以下是一个示例 Jenkinsfile

groovy复制

pipeline {
    agent {
        kubernetes {
            label 'jenkins-agent'
            yaml """
apiVersion: v1
kind: Pod
spec:
  containers:
  - name: maven
    image: maven:3.8.1-jdk-8
    command:
    - cat
    tty: true
"""
        }
    }
    stages {
        stage('Build') {
            steps {
                container('maven') {
                    sh 'mvn clean install'
                }
            }
        }
        stage('Deploy') {
            steps {
                echo 'Deploying application...'
                // 添加部署逻辑
            }
        }
    }
}

在 Jenkins 中创建一个 Pipeline 项目,并将上述 Jenkinsfile 添加到项目的源码仓库中。

5. 运行构建并验证结果

保存 Pipeline 项目并触发构建。在构建完成后,检查 Kubernetes 集群中的相关 Pods 和服务,确保应用正常运行。

综上所述,就可以实现 Jenkins 与 Kubernetes 集群的集成,从而实现高效的持续集成和持续交付(CI/CD)流程。

posted @ 2025-02-11 21:52  黄嘉波  阅读(433)  评论(0)    收藏  举报
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波