S2I 概念

S2I(Source To Image)即从源码到镜像的一个过程,OpenShift 将它作为基础功能提供给用户,包含 S2I CLI 工具 与 S2I 流程。通过这些工具和既定流程,能去掉开发和运维人员手动打镜像复杂性,只需要点一下构建按钮就能将 Git 仓库中的源码或程序制品打包成镜像,上传到镜像仓库中,触发后续的部署流程。

S2I 的组成

  • S2I CLI 工具 - 生成构建S2I镜像需要的基础环境(包含默认Dockerfile、脚本、测试脚本)
  • 基础镜像 - 由基础环境中的Dockerfile中定义的镜像
  • 构建/运行脚本 - 构建与运行时脚本
    • save-artifacts - 用于保存增量构建「可选」
    • assemble - 组装复制制品到指定位置
    • run - 应用启动脚本
    • usage - 打印帮助提示
    • test/run - 测试运行脚本

S2I 流程

上边这张流程图来自官方文档以及参考更多资料,本人概括一下大致的流程:

  1. 首先下载 STI 脚本,这些脚本来自于 openshift/origin-docker-builder:<OpenShift版本> 这个镜像,所以是 pull 镜像。
  2. 使用以上镜像启动构建 docker 的容器,根据 BuildConfig 以及S2I镜像的 Dockerfile 标签定义,开始多阶段构建镜像
  3. 执行 openshift-git-clone --loglevel=0 命令,根据配置的参数拉取 Git 仓库上的源码或制品,拉到 /tmp (位置根据 s2i 镜像的标签 io.openshift.s2i.destination 定义),创建tar包,开始第二阶段构建
  4. 执行 openshift-manage-dockerfile --loglevel=0 修改 Dockerfile,修改 CMD 启动命令改为 执行 run 脚本,开始第三阶段构建
  5. 执行 openshift-sti-build --loglevel=0 执行 STI 脚本调用 assemble 将源码构建成制品再复制制品到指定目录,或者将制品放到指定目录,执行脚本完成后构建镜像(docker commit),最后推送镜像到内部镜像仓库,首次推送生成镜像流(ImageStream),任务完成停止容器。

总结

S2I 减少了开发运维人员打镜像的繁复步骤,将源码或制品构造成标准的、可部署的镜像。构建流程总体上就三步 下载 - 构建 - 推送

由于作者理解可能有所偏颇,文章中可能出现错误,希望能得到您的评论指出,在此感谢。

接下来几天,本人会更新自定义 OpenShift 镜像和模板相关内容,静请期待。

本文同步发布于CSDN https://blog.csdn.net/u012586326/article/details/121363875 与 博客园 https://www.cnblogs.com/hellxz/,禁止转载。

OpenShift S2I 概念及流程的更多相关文章

  1. 自定义 OpenShift s2i 镜像与模板——OracleJDK8

    本文目标 由于 OpenShift 官方提供的镜像与模板(OpenJDK8)不完全满足业务需要: 不包含飞行记录功能.只有 OpenJDK11 以上才被 Oracle 开源 生成堆 dump 很大很慢 ...

  2. MVC基本概念和流程

    MVC基本概念和流程 MVC的概念 Model(模型):包含数据和行为.不过现在一般都分离开来:Value Object(数据) 和 服务层(行为). View(视图):负责进行模型的展示,一般就是展 ...

  3. Git基本概念,流程,分支,标签及常用命令

    Git基本概念,流程,分支,标签及常用命令 Git一张图 Git基本概念 仓库(Repository) 分支(Branch) Git工作流程 Git分支管理(branch) 列出分支 删除分支 分支合 ...

  4. MySQL事务概念与流程和索引控制

    MySQL事务概念与流程和索引控制 视图 1.什么是视图 我们在执行SQL语句其实就是对表进行操作,所得到的其实也是一张表,而我们需要经常对这些表进行操作,拼接什么的都会产生一张虚拟表,我们可以基于该 ...

  5. (一)spring MVC基本概念和流程

    MVC的概念 Model(模型):包含数据和行为.不过现在一般都分离开来:Value Object(数据) 和 服务层(行为). View(视图):负责进行模型的展示,一般就是展示给用户的界面. Co ...

  6. scrapy的基础概念和流程

    1. 什么是scrapy Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够快速的抓取. Scrapy 使用了Twisted['twɪstɪd]异步网 ...

  7. 考研部分概念和流程(若不全和错误可提示我补充,另考研帮app推荐)

    上大学必须经过全国统一高考,而就读硕士研究生的途径相对而言要多一些,也更灵活一些.已经工作的人,除了放弃工作报考研究生以外,还可以不脱产申请攻读学位,或申请单独考试.不脱产申请攻读学位,通俗的讲,就是 ...

  8. word2vec:主要概念和流程

    1.单词的向量化表示 一般来讲,词向量主要有两种形式,分别是稀疏向量和密集向量. 所谓稀疏向量,又称为one-hot representation,就是用一个很长的向量来表示一个词,向量的长度为词典的 ...

  9. OpenShift实战(七):OpenShift定制镜像S2I

    1.基础镜像制作 由于公司的程序是Java开发,上线发布使用的是maven,如果使用openshift自带的S2I,每次都会全量拉取代码(代码比较多,每次全量拉太慢),然后每次打包都会再一次下载mav ...

随机推荐

  1. openEuler 20.03/21.03 - 华为欧拉开源版(CentOS 8 华为版开源版)下载

    开始 openEuler 之旅吧 openEuler 通过社区合作,打造创新平台,构建支持多处理架构.统一和开放的操作系统,推动软硬件应用生态繁荣发展. 好玩的活动停不下来 openEuler 社区不 ...

  2. 全套Java教程_Java基础入门教程,零基础小白自学Java必备教程 #011 # 第十一单元 String&ArrayList #

    一.本单元知识点概述 (Ⅰ)知识点概述 二.本单元教学目标 (Ⅰ)重点知识目标 1.ArrayList集合的常用方法2.ArrayList存储数据和遍历数据3.String类的构造方法4.String ...

  3. 新一代容器平台ACK Anywhere,来了

    5G.AR.AIoT 等场景在推动新一代云架构的演进,而容器重塑了云的使用方式. 近日,阿里云容器服务全面升级为ACK Anywhere,让企业在任何需要云的地方,都能获得一致的容器基础设施能力. 早 ...

  4. caffe运行错误 target_blobs.blobs_size()与 source_layer.blobs_size() 不一致

    解决方法参考:http://blog.csdn.net/zhangla1220/article/details/50697352 感谢博主!!! 最新下载的caffe代码,运行mnist,训练时可以正 ...

  5. sql提示1055 不让你group by

    是不是突然写好的sql语句 部署上去就 Expression #2 of SELECT list is not in GROUP BY clause and containsnonaggregated ...

  6. 10 月 30 日 北京 LiveVideoStack 阿里云视频云专场限量赠票 100 张

    10 月 30 日 | 北京 LiveVideoStack 将携手阿里云共邀 4 位技术大咖,一同探讨从上云到创新,视频云的新技术与新场景.阿里云视频云依托阿里云服务数百万开发者的卓越服务能力与实践, ...

  7. linux下nginx编译安装、版本信息修改

    环境 centos 7 安装依赖包 yum install -y gcc gcc-c++ glibc glibc-devel pcre pcre-devel zlib zlib-devel opens ...

  8. 洛谷3244 落忆枫音 (拓扑图dp+式子)

    题目大意就是 给你一个DAG 然后添加一条边\(x->y\) ,询问以1为根的生成树的个数 QWQ 首先假设没有添加的边 答案就应该是 \[ans=\prod_{i=1}^{n} in[i] \ ...

  9. 生日礼物网页Javascript版本与锚点版本

    <style> #dv1{ width:60px; height:36px; margin:0 auto; background-color:orange; display:none; } ...

  10. Java(45)JDK新特性之String流

    作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201671.html 博客主页:https://www.cnblogs.com/testero ...