jenkins 使用 docker plugin 连接 k8s

环境:centos7.6 、Docker version 19.03.5、Jenkins 2.249.3(jackson = 2.11.2、docker plugin = 1.2.1)

1、安装 kubernetes cli 插件,否则会报错

java.lang.NoSuchMethodError: No such DSL method 'withKubeConfig' found among steps [approveReceivedEvent,...

2、配置 docker
“系统管理”–“节点管理”–“configure cloud"–“docker”
详细配置 docker 可以参考 https://blog.csdn.net/Man_In_The_Night/article/details/111319868
配置 docker host uri、docker image 等,此处的镜像 mapleaves/mvn-jnlp:1.0 包含 docker、kubectl、mvn 等命令,制作方法参考 https://blog.csdn.net/Man_In_The_Night/article/details/111741486
在这里插入图片描述配置 docker volume

/var/run/docker.sock:/var/run/docker.sock
/var/run/m2:/root/.m2
/etc/localtime:/etc/localtime
/etc/docker/daemon.json:/etc/docker/daemon.json
/root/.kube:/root/.kube

在这里插入图片描述remote file system root 填写 /home/jenkins, connect method 选择 jnlp
在这里插入图片描述配置好 jenkins url 以及 tunnel(tunnel 前面不能带 http)
在这里插入图片描述3、创建 k8s credential
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述类型选择 “secret file”,file 选择 k8s 的 config file(一般在 master 节点的 /root/.kube 目录下,如果是 kubeadm ,一般是 /etc/kubernetes/admin.conf 文件)。此处我已经建好了 id 为 k8s 的 credential,所以有提示。
在这里插入图片描述
4、创建流水线pipeline script
在这里插入图片描述此处 contextName: 'kubernetes-admin@kubernetes 根据 kube config 文件中的 current-context 确定

node("mapleaves") {
  stage('SonarQube 代码检测') {
    echo "============================== 1.代码检测阶段 =============================="
    // SonarQube 代码检测
  }
  stage('代码编译打包') {
    echo "============================== 2.代码编译打包阶段 =============================="
    // 代码编译打包
    try {
      sh "mvn --version"  
    } catch (exc) {
      println "构建失败"
      throw(exc)
    }
  }
  stage('构建 Docker 镜像') {
    echo "============================== 3.构建 Docker 镜像阶段  =============================="
    // 构建 Docker 镜像
    sh "docker --version"  
  }
  stage('部署应用到 k8s') {
    echo "============================== 4.部署应用到 k8s =============================="
    //  部署应用到 k8s
    withKubeConfig([credentialsId: 'k8s',contextName: 'kubernetes-admin@kubernetes',]) {    
      sh """
        kubectl get node
        kubectl get ns
        kubectl get po --all-namespaces
      """       
    }
  }
}

5、点击“立即构建”,查看日志输出
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值