热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Jenkins(Pipeline)kubernetes(k8s)滚动发布实战

本文主要分享【jenkins怎么自动发布到k8s】,技术文章【Jenkins(Pipeline)kubernetes(k8s)滚动发布实战】为【愤怒的苹果ext】投稿,如果你遇到kubernetes

本文主要分享【jenkins怎么自动发布到k8s】,技术文章【Jenkins(Pipeline) kubernetes(k8s)滚动发布实战】为【愤怒的苹果ext】投稿,如果你遇到kubernetes,Jenkins,docker相关问题,本文相关知识或能到你。

jenkins怎么自动发布到k8s

目录 前言开始前的准备第一次创建应用操作JenkinsGeneral流水线 Jenkins构建扩展小结

前言 之前写过Jenkins kubernetes(k8s)滚动发布实战,使用的是 Jenkins 自由风格,本篇使用 Pipeline实现滚动发布。 开始前的准备 与Jenkins kubernetes(k8s)滚动发布实战相同,就不赘述了。 第一次创建应用 与Jenkins kubernetes(k8s)滚动发布实战相同,就不赘述了。 操作Jenkins

怎么下载、运行Jenkins就不赘述了,可以参考拙作gitlab+jenkins自动发布到Tomcat。

Jenkins配置maven、jdk、git等等同样可以参考拙作gitlab+jenkins自动发布到Tomcat。

下面直接创建Pipeline项目。进入配置。

General 这块填下描述就可以了。

Jenkins(Pipeline) kubernetes(k8s)滚动发布实战

流水线 重点是这里 Pipeline script

Jenkins(Pipeline) kubernetes(k8s)滚动发布实战

Pipeline script内容如下(因为我是公共仓库,不需要认证,克隆仓库步骤不必使用 credentialsId)。
pipeline {
   
    agent any
    tools {
   
        maven 'maven3.6' 
    }
    stages {
   
        stage('开始') {
   
            steps {
   
                echo '开始 '
            }
        }
        
     stage('克隆项目') {
   
        steps {
   
        git branch: 'main',
        url: 'https://github.com/1030907690/spring-boot-kubernetes.git'
        sh 'pwd'
        sh "ls -lat"
        }
     }
        
       stage('构建') {
   
          steps {
   
            sh 'mvn clean package -DskipTests'
            sh 'echo tag ${BUILD_TAG}'
            sh 'cp src/main/resources/Dockerfile target'
            sh 'cd target && docker build -t spring-boot-kubernetes:${BUILD_TAG} .'
        
      
          }
        }
        
        stage('滚动更新') {
   
          steps {
   
            sh 'kubectl set image deployment/spring-boot-kubernetes-deployment spring-boot-kubernetes=spring-boot-kubernetes:${BUILD_TAG} --record'
            sh 'kubectl get pod -o wide'
            sh 'kubectl rollout status deployment/spring-boot-kubernetes-deployment'
            sh 'kubectl get pod -o wide'
      
          }
        }
        
    }
    post {
   
        success {
   
            echo '更新成功'
                   
        }

        always {
   
            echo 'goodbye'
        }
    }
}

Jenkins构建 下面就可以使用 Build Now一键发布最新的应用。

Jenkins(Pipeline) kubernetes(k8s)滚动发布实战

可以查看构建历史,如果有错误的时候,方便排查错误。

Jenkins(Pipeline) kubernetes(k8s)滚动发布实战


Jenkins(Pipeline) kubernetes(k8s)滚动发布实战

如果你不想点Build Now,也可以使用Webhook,可以参考拙作gitlab+jenkins自动发布到Tomcat。 扩展

流水线定义,支持多种,还可以使用Pipeline script from SCM,如下图所示。

Jenkins(Pipeline) kubernetes(k8s)滚动发布实战

我们可以把Jenkinsfile写在项目中,一并提交到远程仓库,如下图所示。

Jenkins(Pipeline) kubernetes(k8s)滚动发布实战

Jenkins的配置修改后如下所示。

Jenkins(Pipeline) kubernetes(k8s)滚动发布实战

还有因为已经指定了仓库,Jenkinsfile中克隆项目的步骤可以注释了。

  //stage('克隆项目') {
  //   steps {
  //   git branch: 'main',
  //   url: 'https://github.com/1030907690/spring-boot-kubernetes.git'
  //       sh 'pwd'
  //       sh "ls -lat"
  //     }
  //   }
小结 自由风格能应对绝大部分场景, Pipeline感觉 可视化体验更好,以代码的形式实现,更容易 细粒度控制,适用于复杂的场景,同时学习成本高一点。

本文《Jenkins(Pipeline) kubernetes(k8s)滚动发布实战》版权归愤怒的苹果ext所有,引用Jenkins(Pipeline) kubernetes(k8s)滚动发布实战需遵循CC 4.0 BY-SA版权协议。


推荐阅读
author-avatar
温思家羽绒家纺旗舰店
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有