作者:温思家羽绒家纺旗舰店 | 来源:互联网 | 2023-05-18 14:00
本文主要分享【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 这块填下描述就可以了。
流水线 重点是这里
Pipeline script
。
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
一键发布最新的应用。
可以查看构建历史,如果有错误的时候,方便排查错误。
如果你不想点Build Now,也可以使用Webhook,可以参考拙作gitlab+jenkins自动发布到Tomcat。 扩展
流水线定义,支持多种,还可以使用Pipeline script from SCM
,如下图所示。
我们可以把Jenkinsfile
写在项目中,一并提交到远程仓库,如下图所示。
Jenkins的配置修改后如下所示。
还有因为已经指定了仓库,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版权协议。