K8S+GitLab+.net core-自动化分布式部署-3
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的更多相关文章
- K8S+GitLab+.net core-自动化分布式部署-2
K8S+GitLab-自动化分布式部署ASP.NET Core(二) ASP.NET Core DevOps K8S+GitLab-自动化分布式部署ASP.NET Core(二) ASP.NET Co ...
- K8S+GitLab+.net core-自动化分布式部署-1
K8S+GitLab-自动化分布式部署ASP.NET Core(一) 部署环境 一.部署流程介绍 开发人员通过Git上传asp.net core 项目到Gilab,并编写好.gitlab-ci.yml ...
- .Net Core自动化部署系列(二):使用Jenkins打造镜像发布流水线
一.简介 之前写过一篇关于Jenkins搭配GitLab实现.net core项目自动发布到IIS的博文,比较简单哈,只是个Demo.本篇我们将会使用Jenkins搭配GitLab实现镜像的自动打包和 ...
- .Net Core 自动化部署:使用jenkins部署到linux docker容器运行
上次我们说到.Net Core 自动化部署:使用docker版jenkins部署dotnetcore应用,这次我们使用jenkins发布我们的.NET Core站点到docker容器中运行,为后面的的 ...
- ASP.NET Core on K8S学习初探(3)部署API到K8S
在上一篇<基本概念快速一览>中,我们把基本的一些概念快速地简单地不求甚解地过了一下,本篇开始我们会将ASP.NET Core WebAPI部署到K8S,从而结束初探的旅程. Section ...
- .Net Core 商城微服务项目系列(十四):分布式部署携程Apollo构建配置中心
一.开场白 在系统设计里我们有很多配置希望独立于系统之外,而又能够被系统实时读取.但是在传统的系统设计里,配置信息通常是耦合在系统内的,比如.net里通常会放在App.config或者web.conf ...
- 基于 Docker 和 GitLab 的前端自动化部署实践笔记
基于 Docker 和 GitLab 的前端自动化部署 实践笔记 随着接触的项目越来越多,在部署测试流程上重复耗时工作也越来越多,所以对前端工作的CI/CD实现愈发迫在眉睫. 前端开发由于三大框架的崛 ...
- 【G】开源的分布式部署解决方案(一) - 开篇
做这个开源项目的意义是什么?(口水自问自答,不喜可略过) 从功能上来说,请参考 预告篇,因自知当时预告片没有任何含金量,所以并没有主动推送到首页,而是私下的给一些人发的. 从个人角度上来说,我希望.n ...
- 【G】开源的分布式部署解决方案 - 预告篇
为什么想到要做分布式部署解决方案? 当项目越做越大以后,你会发现部署变成一件极其头疼的事情.当然头疼的绝不仅仅在部署一个环节,比如新服务器环境搭建当中就许多坑要踩.各种重复性的工作,包括但不仅限于增加 ...
随机推荐
- 别名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 ...
- Java Array、List、Set互相转化
https://blog.csdn.net/u014532901/article/details/78820124
- HttpClient学习研究---第二章:连接管理
第二章.Connection management连接管理2.1. 2.1.Connection persistence连接持久性The process of establishing a conne ...
- 分布式session共享
一.前言 为什么会出现session共享问题? 客户端与服务器交互时会产生唯一的sessionid用于标记用户,但是在分布式架构中,如果还是采用 session 的方式,用户发起请求,通过 nginx ...
- swift语法之常量 变量 类型
常量和变量: 在swift中声明变量或者声明常量的时候可以不用写变量或者常量类型 因为系统会自动推导出对应的类型. 变量:可以更改值 swift中每句代码后面不需要加 ; 号 var num = 5 ...
- PHP入门之调试
环境 开发工具VSCode 2019 代码库 自建git 仓库 win7集成环境 PHPStudy2018 具体设置信息: PHP 5.4.45 ,MySql 5.7 , Apache 2.4 ...
- hive基础知识二
1. Hive的分区表 1.1 hive的分区表的概念 在文件系统上建立文件夹,把表的数据放在不同文件夹下面,加快查询速度. 1.2 hive分区表的构建 创建一个分区字段的分区表 hive> ...
- word2vector的tensorflow代码实现
import collections import math import os import random import zipfile import numpy as np import urll ...
- mysql 全连接和 oracle 全连接查询、区别
oracle的全连接查询可以直接用full on,但是在mysql中没有full join,mysql使用union实现全连接. oracle的全连接 select * from a full joi ...
- Jmeter(四十七)_性能测试统计超时率
概述 今天做一个性能测试的案例.需求中给出并发人数和业务时间段.根据2,5,8原则,统计响应超时率 实际场景 1:登录--考勤打卡--退出 2:并发人数200人,业务持续时间5分钟 3:要求登录响应时 ...