一文读懂自动化容器化部署(git+jenkins+harbor+kubernetes(rancher))

一. 什么是自动化容器部署

  简单来说,就是我们只需要点一下(或者通过gitlab钩子触发),代码就会自动完成构建 -> 镜像生成 -> 容器化部署。比起传统部署来可以省去很多步骤,特别适合频繁变更的敏捷开发项目(其实容器化部署的项目最好都使用自动化,相当省事)。
  本文主要是对各个组件的理解和使用,具体的安装步骤不展开。都是个人的简单理解,希望大家多多指正。
  下图是自动化容器部署的流程图和运用的工具。
在这里插入图片描述

二. 什么是jenkins

  Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。简单来说,就是它负责我们自动化部署的整个流程,不论是构建还是生产镜像,又或是部署,都由它来一手调控,通过不同的配置能够自动完成很多种事情。
  Jenkins常用的版本控制工具有SVN、GIT,常用构建工具有Maven、Ant、Gradle。

三. 什么是镜像和dockerfile

  传统的项目,比如jar包,需要放在主机上java -jar运行,比如war包,需要放在主机上,安装一个tomcat,然后startup.sh启动tomcat运行。这些传统部署有一个缺点,就是环境和部署包是分离开来的,类似JDK和tomcat的版本是固定在主机上的,假如我们要迁移至新主机,还要安装新环境并保证环境的版本一致,这样既费心又容易出错导致部署失败。
  于是Docker镜像应运而生,它其实就相当于一个可运行的部署包以及该部署包运行的环境,操作系统,配置参数等一切运行时需要的东西。该镜像可以在任何主机上启动运行,且环境保持一致,解决了传统部署的一些痛点。而容器,其实就相当于运行起来的镜像。
  dockerfile就是描述镜像要怎么生成的文件,一般包含了基础镜像(比如操作系统或tomcat等),启动参数和启动命令等。

四. 什么是harbor

  Harbor就是镜像仓库,可以对镜像进行存取。kubernetes可以通过docker pull 镜像仓库/项目名/镜像名:标签 的命令来拉取镜像,jenkins可以把构建好的镜像推到镜像仓库。其他常用的镜像仓库还有Docker hub等。

五. 什么是kubernetes和rancher

  Kubernetes 是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化,简称为k8s。简单来说,就是一个可以进行容器编排,实现容器自动化运维和管理的工具,上面说到容器就是运行的镜像,镜像就是包含环境的可部署单位,而容器单单运行起来是不够的,我们还需要负载均衡,服务发现,健康检查,失败重启等等的功能,k8s就是这样的一个平台。
  Rancher是一个开源的企业级容器管理平台。它包含了kubernetes,属于容器编排工具的上层。k8s对于容器的管理功能已经非常强大了,但是由于是通过命令行进行管理的,可视化展示能力比较差。Rancher有UI界面,通过UI可以方便的执行k8s的各种功能,并且能加上日志收集,多k8s集群管理和监控等多种功能。可以认为是k8s增强版。

六. 开始配置

1. 首先先创建一个jenkins项目

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
  首先是项目描述,Discard old builds是抛弃旧构建,一般建议配置(因为每个项目构建一次就好几百mb,磁盘压力大),Days to keep builds 是保存几天内的构建, Max # of builds to keep是构建的最大数量。

2. 配置git

在这里插入图片描述
  配置gitlab拉取代码的url,注意如果报红的话,一般来说是网络不通或是凭证不对,Authentication failed是凭证不对,点击add后可以输入gitlab的账号密码配置一份凭证。
在这里插入图片描述

3. 配置钩子

  提一下钩子就是webhook,就是提供给gitlab一个接口,让它推送事件告诉jenkins要开始自动化部署了。
在这里插入图片描述
  勾选Build when a change is pushed to GitLab. GitLab webhook URL,点击高级选项,再生成密钥,拿着URL和密钥就可以到gitlab上配置钩子了。
在这里插入图片描述
  进入gitlab的项目,点击左侧setting进入钩子配置的页面,填上jenkins那边拿到的URL和密钥填上,勾选Trigger点击保存,钩子就配置好了。要注意的是push events是每次代码推送都触发钩子,tag push event是只有标签推送才会触发钩子,一般来说都选择标签推送,防止过于频繁的进行构建,并且标签可以同时作为镜像标签方便区分每次构建的镜像。

4. 配置构建和镜像生成

  • 4
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值