K8S+GitLab-自动化分布式部署ASP.NET Core(三) 更新镜像版本并部署到K8S上

 

一.介绍

前一篇,介绍了ASP.NET Core部署到K8S上,下面介绍我们在发布新一版本中怎么通过Gitlab CI自动给镜像打版本并部署到K8S上.

二.我们通过GitLab CI/CD 变量

不废话,先上代码:

stages:
- build
- test
- package
- deploy
- release build:
stage: build
script:
- cd Deploy.API
- dotnet build test:
stage: test
script:
- dotnet restore
- dotnet build
- cd minicover
- dotnet restore
- dotnet minicover instrument --workdir ../ --assemblies Deploy.API.UnitTests/bin/**/*.dll --sources Deploy.API/**/*.cs
- dotnet minicover reset
- cd ..
- dotnet test --no-build Deploy.API.UnitTests/Deploy.API.UnitTests.csproj
- cd minicover
- dotnet minicover report --workdir ../ --threshold 10
- dotnet minicover uninstrument --workdir ../ package:
stage: package
script:
- cd Deploy.API
- docker build -t deploy:test .
#- docker login --username $ALIYUN_NAME --password $ALIYUN_TOKEN registry.cn-hangzhou.aliyuncs.com #阿里云仓库
#- docker tag deploy:test registry.cn-hangzhou.aliyuncs.com/windows_evan/deploy:test
#- docker push registry.cn-hangzhou.aliyuncs.com/windows_evan/deploy:test
- docker login --username=evan --password Pwd123456 192.168.0.203 #私有仓库Harbor
- docker tag deploy:test 192.168.0.203/myproject/deploy:test
- docker push 192.168.0.203/myproject/deploy:test deploy:
stage: deploy
script:
- if [ $(docker ps -aq --filter name=userapi) ]; then docker rm -f userapi;fi
#- docker run -d -p 8003:80 --link db-mysql --network net_db --name userapi registry.cn-hangzhou.aliyuncs.com/windows_evan/deploy:test
- docker run -d -p 8003:80 --link db-mysql --network net_db --name userapi 192.168.0.203/myproject/deploy:test release:
stage: release
script:
- cd Deploy.API
- sed -i 's/deploy:test/deploy:'$CI_COMMIT_TAG'/g' deploy.yaml
- cat deploy.yaml
- kubectl apply -f deploy.yaml
only:
- tags package-release:
stage: package
script:
- cd Deploy.API
- docker build -t deploy:$CI_COMMIT_TAG .
- docker login --username=evan --password Pwd123456 192.168.0.203
- docker tag deploy:$CI_COMMIT_TAG 192.168.0.203/myproject/deploy:$CI_COMMIT_TAG
- docker push 192.168.0.203/myproject/deploy:$CI_COMMIT_TAG
only:
- tags

上面的.gitlab-ci.yml 可以看到平常开发人员提交代码先 build , test , package (tag:test) , deploy (docker) ,只有给项目创建tags才会执行package-release ,  release , 我们通过 sed 命令修改deploy.yaml文件里的test镜像版本.

三.相关链接参考

https://www.cnblogs.com/MrVolleyball/p/10315698.html 更新k8s镜像版本的三种方式(wilson排球)

GitLab CI/CD Variables

K8S+GitLab+.net core-自动化分布式部署-3的更多相关文章

  1. K8S+GitLab+.net core-自动化分布式部署-2

    K8S+GitLab-自动化分布式部署ASP.NET Core(二) ASP.NET Core DevOps K8S+GitLab-自动化分布式部署ASP.NET Core(二) ASP.NET Co ...

  2. K8S+GitLab+.net core-自动化分布式部署-1

    K8S+GitLab-自动化分布式部署ASP.NET Core(一) 部署环境 一.部署流程介绍 开发人员通过Git上传asp.net core 项目到Gilab,并编写好.gitlab-ci.yml ...

  3. .Net Core自动化部署系列(二):使用Jenkins打造镜像发布流水线

    一.简介 之前写过一篇关于Jenkins搭配GitLab实现.net core项目自动发布到IIS的博文,比较简单哈,只是个Demo.本篇我们将会使用Jenkins搭配GitLab实现镜像的自动打包和 ...

  4. .Net Core 自动化部署:使用jenkins部署到linux docker容器运行

    上次我们说到.Net Core 自动化部署:使用docker版jenkins部署dotnetcore应用,这次我们使用jenkins发布我们的.NET Core站点到docker容器中运行,为后面的的 ...

  5. ASP.NET Core on K8S学习初探(3)部署API到K8S

    在上一篇<基本概念快速一览>中,我们把基本的一些概念快速地简单地不求甚解地过了一下,本篇开始我们会将ASP.NET Core WebAPI部署到K8S,从而结束初探的旅程. Section ...

  6. .Net Core 商城微服务项目系列(十四):分布式部署携程Apollo构建配置中心

    一.开场白 在系统设计里我们有很多配置希望独立于系统之外,而又能够被系统实时读取.但是在传统的系统设计里,配置信息通常是耦合在系统内的,比如.net里通常会放在App.config或者web.conf ...

  7. 基于 Docker 和 GitLab 的前端自动化部署实践笔记

    基于 Docker 和 GitLab 的前端自动化部署 实践笔记 随着接触的项目越来越多,在部署测试流程上重复耗时工作也越来越多,所以对前端工作的CI/CD实现愈发迫在眉睫. 前端开发由于三大框架的崛 ...

  8. 【G】开源的分布式部署解决方案(一) - 开篇

    做这个开源项目的意义是什么?(口水自问自答,不喜可略过) 从功能上来说,请参考 预告篇,因自知当时预告片没有任何含金量,所以并没有主动推送到首页,而是私下的给一些人发的. 从个人角度上来说,我希望.n ...

  9. 【G】开源的分布式部署解决方案 - 预告篇

    为什么想到要做分布式部署解决方案? 当项目越做越大以后,你会发现部署变成一件极其头疼的事情.当然头疼的绝不仅仅在部署一个环节,比如新服务器环境搭建当中就许多坑要踩.各种重复性的工作,包括但不仅限于增加 ...

随机推荐

  1. 别名alias永久生效别名alias永久生效;虚拟机的NAT模式,进行静态IP配置,并A、B的实现免密访问

    别名alias永久生效 1.打开cd /etc/profile.d 目录 新建文件my_alias.sh 2.my_alias.sh里面添加 alias p=’poweroff -h’ alias r ...

  2. Java Array、List、Set互相转化

    https://blog.csdn.net/u014532901/article/details/78820124

  3. HttpClient学习研究---第二章:连接管理

    第二章.Connection management连接管理2.1. 2.1.Connection persistence连接持久性The process of establishing a conne ...

  4. 分布式session共享

    一.前言 为什么会出现session共享问题? 客户端与服务器交互时会产生唯一的sessionid用于标记用户,但是在分布式架构中,如果还是采用 session 的方式,用户发起请求,通过 nginx ...

  5. swift语法之常量 变量 类型

    常量和变量: 在swift中声明变量或者声明常量的时候可以不用写变量或者常量类型 因为系统会自动推导出对应的类型. 变量:可以更改值 swift中每句代码后面不需要加 ; 号 var num = 5 ...

  6. PHP入门之调试

    环境 开发工具VSCode 2019 代码库 自建git 仓库 win7集成环境 PHPStudy2018  具体设置信息:   PHP 5.4.45 ,MySql 5.7 , Apache 2.4 ...

  7. hive基础知识二

    1. Hive的分区表 1.1 hive的分区表的概念 在文件系统上建立文件夹,把表的数据放在不同文件夹下面,加快查询速度. 1.2 hive分区表的构建 创建一个分区字段的分区表 hive> ...

  8. word2vector的tensorflow代码实现

    import collections import math import os import random import zipfile import numpy as np import urll ...

  9. mysql 全连接和 oracle 全连接查询、区别

    oracle的全连接查询可以直接用full on,但是在mysql中没有full join,mysql使用union实现全连接. oracle的全连接 select * from a full joi ...

  10. Jmeter(四十七)_性能测试统计超时率

    概述 今天做一个性能测试的案例.需求中给出并发人数和业务时间段.根据2,5,8原则,统计响应超时率 实际场景 1:登录--考勤打卡--退出 2:并发人数200人,业务持续时间5分钟 3:要求登录响应时 ...