Jenkins支持以Pod形式运行Slave节点,实现规模可伸缩的Jenkins Cluster,需要安装插件“kubernetes”
通过jenkins/inbound-agent镜像创建的pod连接至Jenkins的master节点,需要在master节点上开启代理50000端口

一、安装插件

系统管理->管理插件->可选插件,搜索kubernetes plugin,安装完成后重启Jenkins!!!
在这里插入图片描述

二、创建证书秘钥

在master节点上生成对应的证书

#1、查看kubernetes的config文件
cat ~/.kube/config
#2、根据配置文件生成证书.替换引号内部的信息为config内相关value
echo "certificate-authority-data" | base64 -d > ca.crt
echo "client-certificate-data" | base64 -d > client.crt
echo "client-key-data" | base64 -d > client.key
#3、生成jenkins使用的cert.pfx,此处需要设置一个4位数以上的密码
openssl pkcs12 -export -out cert.pfx -inkey client.key -in client.crt -certfile ca.crt
ls
ca.crt cert.pfx client.key client.crt

三、Jenkins中添加凭证

把生成的cert.pfx证书上传至Jenkins,系统管理–凭证管理–Jenkins–全局凭据
在这里插入图片描述
在这里插入图片描述

四、在Jenkins上添加kubernetes集群

系统管理–系统配置–Cloud
在这里插入图片描述
填写k8s集群api-server的url,kubernetes服务证书为刚刚生成的ca.crt,凭据为刚刚添加的,填写Jenkins地址,点击连接测试验证 在这里插入图片描述
Jenkins开启系统代理:系统管理–全局安全配置,设置代理端口为50000
在这里插入图片描述

ss -anptu | grep 50000
tcp    LISTEN    0    50    *:50000    *:*    users:(("java",pid=1177,fd=391))

五、测试kubernetes

创建一个pipeline测试Jenkins是否可以在k8s上创建pod
新建任务–【自定义任务名称】,选择流水线(pipeline)

pipeline {
    agent {
        kubernetes{
            inheritFrom 'jenkins-slave'
        }
    }
    
    stages {
        stage('Testing kubernetes......') {
            steps {
                sh 'java -version'
            }
        }
    }
}

选择立即构建,查看任务的输出
在这里插入图片描述
在kubernetes集群上查看创建的pod,pipeline运行结束后,pod自动删除

kubectl get pod
NAME                      READY   STATUS    RESTARTS   AGE
k8s-2-35rfg-mhq8w-g1jg8   1/1     Running   0          67s
Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐