手把手教你编写脚本批量实现k8s镜像部署

背景

日常工作过程中,避免不了经常遇到很多需要手工进行的重复劳动,如果我们可以凭借自己勤劳的双手和聪明的智慧编写一些小工具或者脚本,这样我们就可以节省大量的时间,用来多看看新闻、刷刷头条,不香吗?

系统架构

基于java的后端应用,maven管理依赖及打包,基于gitlab代码托管,基于k8s运维部署,采用skaffold打包并推送镜像。

Skaffold是一款命令行工具,旨在促进Kubernetes应用的持续开发。你可以在本地迭代应用源码,然后将其部署到本地或者远程Kubernetes集群中。Skaffold会处理构建、上传和应用部署方面的工作流。它通用可以在自动化环境中使用,例如CI/CD流水线,以实施同样的工作流,并作为将应用迁移到生产环境时的工具 。

早期的日常流程是开发代码、提交到gitlab、更新代码、maven打包、生成并推送镜像。。,接下来我们实现一个shell命令行脚本,帮助我们批量完成这些任务。

首先在工程workspace目录下,定义一个project.txt文件,里面定义本次要部署的工程目录名称。脚本在执行时会读取文件的内容,并遍历。

@echo off
 
title 本地构建镜像脚本
color 3
echo;

echo 开始构建
setlocal enabledelayedexpansion
for /f %%i in (project.txt) do (
	cd %%i 
	echo 切换到release分支并更新代码
	call git checkout release
	call git pull
	echo;
	 
	echo 编译打包:mvn clean package
	call mvn clean package
	echo;
	
	echo 构建镜像并输出执行结果至文件:skaffold build -p test -n dev
	call skaffold build -p test -n dev>../%%i.txt
	cd ..
	echo;
	
	set /a line=0
	echo 开始遍历%%i.txt
	for /f "tokens=*" %%j in (%%i.txt) do (
		set /a line+=1
		if !line!==2 (
			echo %%j > %%i-temp.txt
		)
	)

	for /f "tokens=4 delims=:" %%k in (%%i-temp.txt) do (
		echo %%k > %%i-image.txt
		del %%i.txt
		del %%i-temp.txt
	)
	echo;
)
echo;
 
pause

这样,一个简单的批量执行脚本就编写完成了,可以用类似的思路实现多种脚本,如批量更新、合并代码,批量编译、批量打包等等。如批量更新代码:

@echo off
 
title 开发环境发布脚本
color 3
echo;

echo 开始构建
for /f %%i in (project.txt) do (
	echo 开始build %%i
	echo;
	cd %%i
	
	echo 切换到develop分支并更新代码
	call git checkout develop
	call git pull
	echo;
)
echo;
 
pause

一个小工具编写思路分享给大家,欢迎支持!共同学习!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值