作者信息: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 @   黄嘉波  阅读(41)  评论(0编辑  收藏  举报
努力加载评论中...
版权声明:原创作品,谢绝转载!否则将追究法律责任。--作者 黄嘉波
点击右上角即可分享
微信分享提示