自动构建(CICD)

自动构建(CICD)Docker、Kubernetes的CICD实现思路Jenkins是一个比较流行的持续集成工具GitLab是存储镜像的镜像仓库由客户端将代码push推送到git仓库,gitlab上配置了一个webHook的东西可以触发Jenkins的构建。进入到Jenkins虚线范围内,它所做的事情非常多,从mvn构建代码,对代码进行静态分析,做单元测试,测试通过之后就可以build镜像,镜像构建成功后…

大家好,又见面了,我是你们的朋友全栈君。

Docker、Kubernetes的 CICD实现思路
在这里插入图片描述
Jenkins是一个比较流行的持续集成工具
GitLab是存储镜像的镜像仓库

由客户端将代码push推送到git仓库,gitlab上配置了一个webHook的东西可以触发Jenkins的构建。进入到Jenkins虚线范围内,它所做的事情非常多,从mvn构建代码,对代码进行静态分析,做单元测试,测试通过之后就可以build镜像,镜像构建成功后就把镜像push推送到Harbor镜像仓库中,镜像push推送到镜像仓库后,我们就可以调用kubernetes集群的restAPI更新服务,而后kubernetes接收到了更新的指令,从Harbor镜像仓库pull拉取镜像,从而完成服务的更新与重启,最后我们从客户端来访问kubernetes集群的服务

1.开发从镜像库里获取基础镜像,对应用进行容器化开发;

2.开发提交代码到Gitlab(在Kubernetes中实现Gitlab服务,并通过持久化存储保存用户数据);

3.Gitlab收到代码提交请求后通过webhook触发Jenkins master

4.Jenkins master收到请求后在slave节点中对源码进行打包;

5.在源码打包完成后根据流水线,从Gitlab中获取dockerfile,在slave节点中生成docker images;

6.Docker镜像生成之后上传到Docker 私有仓库harbor;

8.通过Jenkins流水线在Kubernetes测试环境拉取镜像,部署应用;

9.测试成功之后,通过Jenkins流水线在Kubernetes生产环境进行应用的部署上线。

其中build镜像过程还可以细分为两部:

构建可执行的程序包(Java为tar包)
将tar包导入基础镜像(Java程序的基础镜像可以理解为一个包含了JDK的linux系统),其实现可以通过dockerfile导入tar包到基础镜像从而构建为应用镜像,也可以通过openshift的s2i启动一个名为build的pod将tar包的二进制流导入基础镜像然后通过docker commit构建为应用镜像

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/135692.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Idea激活码最新教程2021.2.3版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2021.2.3版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2021 2 3 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2021 2 3 成功激活

    2025年5月22日
    3
  • 久坐提醒 android wear,这五个理由告诉你为什么需要一块智能手表![通俗易懂]

    久坐提醒 android wear,这五个理由告诉你为什么需要一块智能手表![通俗易懂]来源:驱动号作者:2019-06-14/17:15访问量:摘要智能化可穿戴设备现如今已经普及,如果你还没有一块智能手表,现在是时候戴一下了。智能手表与智能手机相比,带来的都是潜在性的好处。虽然智能手表并不能保证你一定会多运动,也不能保证你一定会少玩手机。但是它可以提供一种让生活更好的选择,这种选择可能就足以改变我们的生活。过去的几年,关于智能手表的讨论都是”要不要买一款智能手表”,而…

    2022年9月28日
    3
  • android的toast提示_android studio unknown host

    android的toast提示_android studio unknown host相信很多人遇到过这关问题编码的设置问题但是我要说的并不是这个问题 而是系统自动弹出的toast 醉了这特么谁看得懂 后来经过观察发现是权限的问题如果需要获取权限但是没有处理的话默认是会弹出这个提示 因此首先要检查是否拥有该权限如果拥有再搞事情,如果没有就申请权限/*********获取设备id的权限检查*********/if(islacksO

    2025年9月3日
    5
  • QMap详解「建议收藏」

    QMap详解「建议收藏」QMap详解QMap是Qt的一个模板类,它是基于红黑树算法的一套字典。QMap<Key,T>是Qt容器类型的一种,它通过(Key,value)存储一对值,并通过Key可以查找与之关联的value的值。QMap和QHash是很相似的,不同的地方是:QHash的查找速度比QMap要快很多。在对QHash进行迭代时,这些项是任意排序的。在QMap中,项总是按键排序。QHash的关键类型必须提供运算符==()和全局QHash(key)函数。QMap的关键类型必须提供操作符<(

    2022年5月30日
    250
  • 【转载】缓存架构设计细节二三事

    【转载】缓存架构设计细节二三事

    2021年11月20日
    38
  • matlab的imread怎么用_imread函数参数的含义

    matlab的imread怎么用_imread函数参数的含义imread(matlab)                                            函数语法 A = imread(filename, fmt)[X, map] = imread(…)[…] = imread(filename)[…] = imread(URL,…)[…] = imread(

    2022年10月14日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号