linux 自动替换docker镜像启动k8s service

23 篇文章 0 订阅
  1. 开辟一个工作目录用于存放脚本和tar包
  2. 给脚本设置执行权限
  3. 运行脚本
    脚本:
#!/bin/bash
# 加载镜像
current=$(docker load -i $1)
echo "load image $1 success!"
# 切割加载镜像结果,获取当前镜像的tag
result_array=(${current// / })

current_tag=${result_array[2]}
#echo $current_tag
# 切割tag,获取服务名,先按照最后一个 / 向后切
service_name_1=(${current_tag##*/})
#echo $service_name_1
# 再按照:向前面切
service_name=(${service_name_1%%:*})
echo "service name is $service_name"

target_tag=$(cat /admin/businessApp/business-type/whale-component/$service_name/deploy/$service_name.yml | grep "image:" | awk '{print $2}'|sed -n '$p')

docker tag $current_tag $target_tag
echo "modify image tag to $target_tag success!"
kubectl delete -f "/admin/businessApp/business-type/whale-component/$service_name/deploy/$service_name.yml"
kubectl apply -f "/admin/businessApp/business-type/whale-component/$service_name/deploy/$service_name.yml"

解释命令

current=$(docker load -i $1)
# echo $(docker load -i whale-event-task.tar)
# Loaded image: registry.whale.io:5888/whale-component/whale-event-task:COC1.1.1


# 切割加载镜像结果,获取当前镜像的tag
result_array=(${current// / })

current_tag=${result_array[2]}
#echo $current_tag
# 切割tag,获取服务名,先按照最后一个 / 向后切
service_name_1=(${current_tag##*/})
#echo $service_name_1
# 再按照:向前面切
service_name=(${service_name_1%%:*})
echo "service name is $service_name"

target_tag=$(cat /admin/businessApp/business-type/whale-component/$service_name/deploy/$service_name.yml | grep "image:" | awk '{print $2}'|sed -n '$p')

docker tag $current_tag $target_tag
echo "modify image tag to $target_tag success!"
kubectl delete -f "/admin/businessApp/business-type/whale-component/$service_name/deploy/$service_name.yml"
kubectl apply -f "/admin/businessApp/business-type/whale-component/$service_name/deploy/$service_name.yml"

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值