前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >k8s+jenkins自动部署前后台

k8s+jenkins自动部署前后台

作者头像
summerking
发布2022-09-16 12:27:23
1.3K0
发布2022-09-16 12:27:23
举报
文章被收录于专栏:summerking的专栏

这里记录如何通过 jenkins 打包发布 springboot 后台应用至 K8s 集群和 jenkins 打包发布 vue 前端应用至 K8s 集群,个人编写只供参考!

# 1.jenkins打包发布springboot后台应用至K8s集群

  • 整体思路:
  1. Jenkins 通过SVN拉取远端源码
  2. springboot后台应用打包zip
  3. 把应用后台包解压,并通过Dockerfile打成Docker镜像
  4. 将镜像上传到Docker私有仓库harbor ,这里我将新的tag设置为构建时的编号
  5. 删除老的Docker镜像,运行新的Docker镜像 —— shell脚本
  6. k8s集群apply更改后的yml文件,直接拉取harbor仓库新镜像完成更新

# 2.jenkins打包发布vue前端应用至K8s集群

  • 整体思路

目前k8s集群中前端考虑更新频率高,所以未使用打入完整html的nginx镜像

选择将html挂载在外部NFS文件系统中,所以这里只需更新html/下的文件即可

# 3.jenkins配置注意事项

  1. Maven Node SSH环境需要提前配置好
  • Maven配置路径:Manage Jenkins ---> Global Tool Configuration
  • SSH配置路径: Manage Jenkins ---> 配置
  • 环境变量配置
  • 一些必要的插件

Maven Integration,Publish Over SSH,Subversion...

# 4.前端打包发布步骤

  1. 从SVN获取最新代码
  1. 执行vue打包命令,生成dist包
  1. 将打好的包推送到ssh远程服务器并执行更新脚本

# 5.后台打包发布步骤

  1. spring项目构建pom.xml文件打包
  1. 将打好的包推送到ssh远程服务器并执行命令

# 6.使用到的脚本参考

  • 前端
代码语言:javascript
复制
#!/bin/bash
function zip_web() {
    pushd /home/summer/nginx/html/ >/dev/null 2>&1
    zip -q -r web.$(date +%Y%m%d%H%M).zip web/
    if [ $? -eq 0 ]; then
        echo "web备份完成!"
        rm -rf web
    else
        echo "web备份失败!"
        exit 0
    fi
    popd >/dev/null 2>&1
}
zip_web

function update_web() {
    pushd /home/summer/nginx/temp/webtar >/dev/null 2>&1
    unzip -o dist.zip -d  /home/summer/nginx/html/ &>/dev/null
    mv /home/summer/nginx/html/dist /home/summer/nginx/html/web 
    chown -R summer:summer /home/summer/nginx/html/web 
    popd >/dev/null 2>&1
}
update_web

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

  • 后台
代码语言:javascript
复制
#!/bin/bash
## 进入zip包目录
cd /home/summer/Docker/Docker

## 解压到构建docker镜像目录
 unzip -o package.zip -d ../build/

## 选择Dockerfile文件
cp ../Dockerfile  ../build/

## 执行打包镜像脚本
##  ./../build.sh 
docker rmi background:latest
## docker rmi 192.168.0.52:8084/summer/background:v1

cd /home/summer/Docker/build

echo "$(date +"%Y-%m-%d %H:%M:%S")===开始构建===" 
docker build -t background:latest .

docker tag background:latest 192.168.0.52:8084/summer/background:${BUILD_NUMBER} 

docker push 192.168.0.52:8084/summer/background:${BUILD_NUMBER} 

echo "$(date +"%Y-%m-%d %H:%M:%S")===push成功===" 

  • 个人编写只供参考,

待更新

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-02-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 1.jenkins打包发布springboot后台应用至K8s集群
  • # 2.jenkins打包发布vue前端应用至K8s集群
  • # 3.jenkins配置注意事项
  • # 4.前端打包发布步骤
  • # 5.后台打包发布步骤
  • # 6.使用到的脚本参考
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档