一、CI/CD

持续集成(continuous Integration,CI):代码合并、构建、部署、测试都在一起。不断执行这个过程,并对结果反馈。

持续部署(Continuous Deployment,CD): 部署到测试环境、预生产环境、生产环境。

持续交付(Continuous Delivery,CD):将最终产品发布到生产环境,给用户使用

CI/CD 的最终目的是自动化,减少人工干预,提高总体的产品交付质量。

非容器化的CI/CD常出现因为环境不一致导致各种问题。

Pipeline优势:

  • 项目发布可视化,明确阶段,方便处理问题
  • 一个Jenkinsfile文件管理整个项目生命周期
  • Jenkinsfile可以放到项目代码中版本管理

Jenkinsfile 文件就是指pipeline script的脚本保存的文件。在流水线中,可以使用pipeline脚本文件,处理文件比之前每个项目都点击按钮去修改配置要方便。

Jenkinsfile保持在仓库中,在Jenkins里面调用即可:

Jenkins 与Docker/Kubernetes的自动化CI流水实践

下面内容是核心,有4个步骤:拉取代码-代码编译-打包成镜像推送到镜像仓库-部署

镜像仓库:

填写上需要构建的版本。

以上是docker单机的发布流程。

下面讲解,基于kubernetes的集群实现方案。Jenkins会调用k8s动态创建pod,这个pod是作为Jenkins的slave来执行任务的(拉代码,构建,打包,发布),任务执行完了,这个pod会自动消除。而Jenkins原本的pod 是作为master。这样就解决了master并发数不够情况下等待的问题。

Jenkins在k8s集群中以容器方式运行:

编写Jenkinsfile

deploy.yaml 文件:

这几个文件就说明了这个项目怎么跑起来

Jenkins做了master和slave

检查启动情况:

访问:

Jenkins 与Docker/Kubernetes的自动化CI流水(笔记)的更多相关文章

  1. Kubernetes笔记(三):Gitlab+Jenkins Pipeline+Docker+k8s+Helm自动化部署实践(干货分享!)

    通过前面两篇文章,我们已经有了一个"嗷嗷待哺"的K8s集群环境,也对相关的概念与组件有了一个基本了解(前期对概念有个印象即可,因为只有实践了才能对其有深入理解,所谓"纸上 ...

  2. 【Devops】【docker】【CI/CD】3.Jenkins+GitLab+docker+springboot 实现自动化部署

    ==================================================================================================== ...

  3. Jenkins与Docker的自动化CI/CD实战

    Jenkins与Docker的自动化CI/CD实战 互联网Java架构 2018-09-19 15:46:13 一.发布流程设计 工作流程: 开发人员提交代码到Git版本仓库:Jenkins人工/定时 ...

  4. 从0到1体验Jenkins+Docker+Git+Registry实现CI自动化发布

    一.前言 Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建.测试和部署软件.Jenkins 支持各种运行方式,可通过系统包.Docker 或者通过一个独立的 Java ...

  5. 基于Jenkins,docker实现自动化部署(持续交互)

      前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致.基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化.因此 ...

  6. 基于Jenkins,docker实现自动化部署(持续交互)【转】

      前言 随着业务的增长,需求也开始增多,每个需求的大小,开发周期,发布时间都不一致.基于微服务的系统架构,功能的叠加,对应的服务的数量也在增加,大小功能的快速迭代,更加要求部署的快速化,智能化.因此 ...

  7. 通过Jenkins + Docker实现antdPro自动化推送私服、自动容器化部署功能

    Docker与Docker私服 1. 安装docker https://docs.docker.com/install/ 2. 配置docker镜像加速 https://www.daocloud.io ...

  8. Jenkins 结合 Docker 为 .NET Core 项目实现低配版的 CI&CD

    随着项目的不断增多,最开始单体项目手动执行 docker build 命令,手动发布项目就不再适用了.一两个项目可能还吃得消,10 多个项目每天让你构建一次还是够呛.即便你的项目少,每次花费在发布上面 ...

  9. .NET Core部署到linux(CentOS)最全解决方案,入魔篇(使用Docker+Jenkins实现持续集成、自动化部署)

    通过前面三篇: .NET Core部署到linux(CentOS)最全解决方案,常规篇 .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx) .N ...

随机推荐

  1. 《Java编程思想》——初始化与清理(一)读书笔记

    第一次写这个,这一章都用word写的,结果复制过来没图片....只能上传word文档了.以后改用markdown比较好 word文档地址:<Java编程思想>--初始化与清理(一)读书笔记

  2. 代码审计-dedecms任意文件名修改拿shell

    0x01 漏洞分析 漏洞文件: dede/file_manage_control.php ,$fmdo 开始时赋值,所以我们可以使fmdo=rename ,使其进入 if语句 ,调用 FileMana ...

  3. opencv::opencv_createsamples.exe

    opencv_createsamples.exe 用来生成正样本vec的,用来准备训练用的正样本数据和测试数据.他的输出为以 *.vec 为扩展名的文件,该文件以二进制方式存储图像. Usage: o ...

  4. GO实现简单(命令行)工具:sftp,文檔压解,RDS备份,RDS备份下载

    GO实现简单(命令行)工具:sftp,文檔压解,RDS备份,RDS备份下载 轉載請註明出處:https://www.cnblogs.com/funnyzpc/p/11721978.html 内容提要: ...

  5. ThingJS和传统3D开发的区别

    物联网3D可视化开发已经辐射到各行各业,无论车间还是消防,城市还是粮仓,亦或是地铁.科技园,物联网可视化是科技的进步,也是行业的进步.而传统的3D可视化开发实施起来并不那么乐观.如果使用ThingJS ...

  6. zookeeper - 通过java代码连接zookeeper(2)

    首先创建一个Maven项目 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=&qu ...

  7. travis-ci + php + casperjs 持续集成

    .travis.yml 文件添加内容: sudo: required language: php php: - 5.5 before_script: - npm install -g casperjs ...

  8. 是true还是false呢?

    古来圣贤皆寂寞 惟有[努]者留其名 ---[努]原文:饮 先总结一个小知识点:0.null.NaN.undefined."" 转成布尔值为false 其他则一律返回true 1.首 ...

  9. 数竞大佬jhc的三角函数复习题

    班主任让数竞大佬jhc整理的三角函数复习题,我参与编辑完成.个别题目来自参考书.度盘pdf格式下载:复习题提取码419d,答案提取码5a12 "单纯"的运算 本文由蒋浩川原创,由\ ...

  10. python设置环境变量(临时和永久)

    设置临时环境变量 import os # 设置环境变量 os.environ['WORKON_HOME']="value" # 获取环境变量方法1 os.environ.get(' ...