接上文jenkins部署完成后,也进行了代理节点agent的新增,接下来是jenkins与k8s结合进行具体项目的自动化部署配置:
1、在上文中已建了test项目,对此以test为例进行配置,配置分了两个步骤,
步骤一完成镜像的下载与准备
步骤二完成镜像的推送与发版
2、具体过程如下:
新增项目



shell脚本如下
#if [[ $AreYouSure != "湘潭生产发版" ]]
# then echo "请确认发版环境" && exit 1
#fi
echo "拉取镜像"
docker pull $images
echo "更改镜像TAG"
images_tag=`echo $images|awk -F/ '{print $NF}'`
images_new="192.168.228.26:8888/energyot/$images_tag"
echo "要更新的镜像地址为$images_new"
docker tag $images $images_new
echo "推送镜像到测试Harbor"
docker push $images_new
echo "推送镜像到测试Harbor成功"
echo "$images_new" > ./images
scp ./images 192.168.228.18:/data/第二块是则从第一块获取到的镜像进行推送到远程的服务器


shell脚本如下
images=`cat /data/images`
echo "拉取镜像"
docker pull $images
echo "更改镜像TAG"
images_tag=`echo $images|awk -F/ '{print $NF}'`
images_new="192.168.116.26:8888/energyot/$images_tag"
echo "要更新的镜像地址为$images_new"
docker tag $images $images_new
echo "推送镜像到测试Harbor"
docker push $images_new
echo "推送镜像到测试Harbor成功"
service_name=`echo $images_tag|awk -F: '{print $1}'`
case $service_name in
"data-platform-web")
service_name="fnw-idomsd-arm-web"
;;
"apollo-admin-service")
service_name="apollo-admin"
;;
"apollo-config-service")
service_name="apollo-config"
;;
"apollo-portal-service")
service_name="apollo-portal"
;;
"fn-cloud-visual-configuration")
service_name="fn-cloud-visual-builder"
;;
"rdfa-timer-console")
service_name="rdfa-timer"
;;
"uac-admin")
service_name="uac-admin-config"
;;
"iot-gateway-mqtt")
service_name="iot-datahub-standard"
;;
"pc-client-web")
service_name="client-web"
;;
esac
echo "更新k8s服务$service_name"
docker_name=`kubectl get deployment $service_name -o jsonpath="{.spec.template.spec.containers[0].name}" -n $namespace`
echo "更新$service_name中$docker_name的镜像为$images_new"
kubectl set image deploy $service_name $docker_name=$images_new -n $namespace
echo "更新k8s服务成功"通过上述的配置,就可以实现当用记在第一步执行部署时,第二步在第一步执行完成后会主动的进行远程镜像推送,达到自动发布的效果。