上一篇文章我们完成了最简单的传统部署:上传应用到服务器上使用守护进程进行应用的部署. 本篇文章我们开始研究容器化和流水线的协作. 在开始操作之前,我们首先需要准备一下我们的dockerfile,这里我们依然还是使用前几篇文章使用的项目,贴一下文件内容. 既然我们是使用的微软的azure,所以我也就直接用了azure维护的jdk:zulu,我自己电脑上的jdk也是用的这个,因为我是M1芯片的mac,最一开始的时候官方并没有ARM架构的JDK 但是微软第一时间发行了zulu的ARM版本,我就一直用到…
上一篇文章中,我们通过azure的流水线完成了镜像推送到镜像仓库中去,本篇文章我们继续开始完成下一步,通过流水线把镜像从仓库拉取到任意一台公网的服务器上去, 完成镜像部署的闭环. 首先我们需要先准备一下部署的环境,我们先找一台服务器在上面安装一下docker的容器引擎,我的用系统版本是centos的,这里贴一下安装命令. sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-l…
上一篇文章我们研究了如何通过流水线编译出一个docker的镜像,本篇我们来研究一下,如何把编译好的镜像推送到镜像仓库去. 平时如果我们是单机部署,我们的docker本身就装在部署的机器上,我们在本机直接build+run一条龙就好了,但是在实际生产中, 更多的可能是分布式的多机部署,或者我们是依赖于K8S进行的部署,这时候我们肯定是需要把编译好的镜像推送到一个统一的仓库 中进行管理,然后在部署的时候统一从这个仓库进行获取. 镜像仓库目前社区主流的是使用Harbor,这个是是VMware贡献给社区…
新建一个pipeline job 选择Pipeline任务,然后进入配置页面. 对于Pipeline, Definition选择 "Pipeline script from SCM". 需要注意的是Script Path, 这里要指定项目中Jenkinsfile文件的具体位置.默认是根目录.我这里是maven的一个子模块,所以嵌套一层. 项目中添加Jenkinsfile 关于Jenkinsfile可以查阅w3c翻译整理的文档: https://www.w3cschool.cn/jenk…
前言 之前部署了Kubernetes 1.13.0,发现master服务的启动方式与1.10.4版本有所区别,kube-apiserver.kube-controller-manager和kube-scheduler分别使用不同的镜像启动,而不再是公用一个hyperkube镜像.但是官方的 kube-controller-manager镜像中不包含ceph client,导致无法创建RBD volume.于是需要打包自定义镜像,安装ceph client. 1. 环境 系统:CentOS 7.2…
参考 <Docker中上传镜像到docker hub中> <Docker 镜像管理> <通过容器提交镜像(docker commit)以及推送镜像(docker push)笔记> <和我一步步部署 kubernetes 集群>(推荐,完整的K8s集群搭建文章) <Kubernetes之kubectl命令行工具简介.安装配置及常用命令>kubectl是Kubernetes集群的命令行工具,通过kubectl能够对集群本身进行管理,并能够在集群上进行…
https://jenkins.io/zh/doc/book/pipeline/ 官方教程,可以中文.Jenkinsfile就是把pipeline内容保存到文件,然后提交到svn等版本控制库中.安装blue ocean流水线插件. 打开后如下图所示: 修改Jenkins有别的命名空间的权限 # rbac.yaml文件添加内容如下,后提交 --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRoleBinding metad…
环境介绍: 说明 节点 ip 系统 Gitlab Server git.ds.com 10.0.1.179 CentOS 7.5.1804 Gitlab Runner   10.0.1.178 CentOS 7.5.1804 Docker Registry Harbor harbor.ds.com 10.0.1.183 CentOS 7.5.1804 关于 gitlab server和Harbor的安装这里就表述了. 一.gitlab runner的安装 (gitlab 10版本的) 1.根据具…
变量概述 在Azure DevOps Server的流水线中,变量是衔接不同任务和不通代理之间的桥梁,它可以使相对松散.各自独立的任务之间相关影响并共享数据.在流水线中使用变量,可以在各任务之间相互调用关键性的数据.顾名思义,变量是一个可以在流水线中变化值.在CI/CD的执行流水线中,我们都需要使用到各种用途的字符.数字,对象这些字符.数据的定义,我们可以采用变量的方式实现,而不需要在代码中硬编码.系统在运行流水线的过程中,将这些定义的变量自动替换为我需要的值.例如在线部署过程中,我们将用户名和…
准备工作 开通Azure账号,具有开通服务权限,关键是里面要有钱. 开通Azure DevOps,能够创建组织和项目. 具备一定的DevOps知识,了解CICD概念.Docker基本操作. 一.创建"容器注册表"服务 第一步:创建服务 第二步:查看关键信息,Docker客户端登录可以使用.  二.创建Azure DevOps项目 第一步: 创建DevOps项目 第二步:使用OF框架创建应用 详细步骤查看[OF框架]使用OF框架创建应用项目 第三步:签入源码,签入后关键信息. 必须有ww…