天天看点

两个OpenShift视频中的四张篇子摘要两个OpenShift视频中的四张篇子摘要

两个OpenShift视频中的四张篇子摘要

三月的某个周末,因为剧荒书荒,找来几个OpenShift的视频学习,有好几个视频都是蛮不错的,但对于我这个初学者,印象深刻地还是其中四张PPT篇子,有助于理解OpenShift基于Kubernetes主要干了些什么。当时用手机对着屏幕还拍了照片,后来想整理成笔记时,由于拍得太过特写,以至于没留下视频名称的位置,害得又前后翻了半天历史记录,才找到正主。

两个视频的名称叫做:《OpenShift for Openrations》与《OpenShift Commons .Gov SIG #1: FISMA Compliance for OCP》,具体的链接请见文后【参考链接】。

《OpenShift for Openrations》

1#

两个OpenShift视频中的四张篇子摘要两个OpenShift视频中的四张篇子摘要

这张篇子概要性地说明了在PaaS平台中OpenShift与Kubernetes主要责任分工。

OpenShift创建:

  • 一个定制镜像 通过源码与模板构建出来的镜像
  • 一个ImageStream(镜像流) 将应用所有资源绑定在一起
  • 一个BuildConfig(构建配置) 控制应用如何构建
  • 更新load Balancer(负载均衡器)的配置 使得外界可平滑地与应用沟通

Kubernetes创建(OpenShift让它干的):

  • 一个Replication Controller(副本控制器) 按需调整应用容器部署个数
  • 一个Service(服务) 把应用暴露给外部
  • 然后,Kubernetes对Docker说: 哥,帮我建几个容器,我有几个兄弟需要小弟。

2#

两个OpenShift视频中的四张篇子摘要两个OpenShift视频中的四张篇子摘要

这张篇子讲了Docker具体搞了些么事情,它告诉Linux系统:

  • 把定制好的镜像放进mount namespace,以隔离其应用程序及其文件
  • 创建网络接口并使用唯一的network namespace进行隔离
  • 使用IPC namespace隔离应用内存资源
  • 使用UTS namespace为容器提供唯一主机名与域名
  • 使用PID namespace为容器提供自己的PID记数器
  • 创建Control Group,限制容器可以消耗的资源
  • 为容器创建唯一的SELinux上下文

3#

把上面三张篇子的文字综合成一张图,就是这个样子:

两个OpenShift视频中的四张篇子摘要两个OpenShift视频中的四张篇子摘要

《FISMA Compliance for OCP》

4#

刚看到题目中的“FISMA”时,心说这是什么鬼? 找到视频对应的文档后,才知道是“Federal

Information Security Management Act”的缩写:联邦信息安全管理法案。原来是讲OpenShif是如何遵循了此安全法案的视频,整个视频中其它内容没有去关注,只是觉得下面这张篇子中的图对我有用。

两个OpenShift视频中的四张篇子摘要两个OpenShift视频中的四张篇子摘要

此图说明了OpenShift中项目、构建、部署等概念之间的关系,在线文档中此图出现的位置 。

组件
Dev 应用开发人员与平台交互,创建项目资源定义,并推送应用代码修订内容到Git源码仓库。
App Code 实现了应用服务或者组件业务逻辑的源码。
git 源码配置管理系统。 在此架构中,Git服务假定为为企业或项目组所有的外部资源。
Build Config 构建配置描述构建定义以及一组触发器,触发器决定何时再次创建新的构建过程,有关构建与OCP构建配置的深入内容,请参见 Build documentation 。
Integrated Registry OCP内部集成了一个镜像仓库,用来存储整个应用构建过程中产生的镜像。有关集成镜像仓库的深入内容,请参见 Image Registry documentation。
Builder Image 构建器镜像,是预定义的容器镜像,存储用于编译和组装应用源代码的构建处理过程。它包含解释源代码所需的编译器二进制文件,以及构建应用镜像所必需的工具。
builder 构建器是构建器镜像实例化出来的容器。使用编译器,按定义好的构建处理过程产出应用镜像。
App Image 应用镜像是应用构建过程的产出物。它由经认证的基础镜像、应用服务器组件、必需的配置 以及编译后的应用程序源代码组成。
Deployment Config 部署配置定义了应用组件运行所需资源需求和配置。有关部署配置的深入内容,请参见 Deployment documentation。
Deployer 部署器容器负责建立应用容器的运行环境。
Pod OpenShift容器平台(OCP)利用Kubernetes的Pod概念, 它是在一台主机上部署在一起的一个或多个容器,也是可被定义的、部署和管理的最小计算单元。更多关于Pod的信息,请参见Pod documentation 。
App Container 应用容器是应用镜像的运行实例,被部署配置定义。
etcd Key-Value数据库,存储OCP状态与配置信息。
Secrets Secrets提供用来保存加密密钥、口令、配置文件、私有源码仓库访问凭证以及其它敏感数据的机制。Secrets将敏感内容与Pod解耦 ,并使用volume插件将其mount到容器中。更多关于Secrets的信息,请参见Secrets documentation。
Persistent Volume 持久化卷(PV)是存储资源,由集群管理员通过创建持久化卷对象的方式,从存储基础设施中预置。应用开发人员以创建Persistent Volume Claim(PVC)的方式使用持久化卷。更多关于持久化存储的信息,请参见Storage documentation。
Log Aggregation 在OCP内部,日志汇聚使用Elastic Search, FluentD和Kibana的集成部署来实现 (EFK)。EFK 汇聚各个主机和应用的日志。更多关于日志汇聚的信息,请参见Aggregate Logging documentation。
Replication Controller 副本控制器确保指定数量的Pod副本始终在运行。如果有Pod退出或被杀掉,副本控制器会启动新实例直至定义的个数。否则,如果有多于定义个数的Pod在运行,则杀掉必要数量之Pod实例。更多关于副本控制器的信息,请参见Replication Controller documentation。
Services 服务作为内部负载均衡器,它通过Pod标识选择出一组Pod,代理它们的连接。任意增加或减少Pod个数,服务始终保持可用。从而使任何依赖于服务的对象,都可以把它当做一致性地址使用。更多关于服务的信息,请参见Services documentation。
Routes OpenShift容器平台以一个主机名路由对外暴露的服务,比如www.example.com,因此外部客户端可通过此主机名找到它。更多关于路由的信息,请参见Routes documentation。
Router 路由器使得开发者定义的路由可被外部客户端使用。路由器是使用服务选择器来找到服务以及服务的端点。当路由器与服务都提供负载均衡时,OCP使用路由器负载均衡。路由器检测服务IP地址的相关变动,并相应调整配置。更多关于路由器的信息,请参见Routers documentation。
User 在这时的上下文中,用户是要访问在平台内部署的应用的实体。 他们在平台内没有被赋予角色或权限,只能访问应用开发人员通过路由暴露的资源。

参考链接:

[1] Jamie Duncan 《OpenShift for Openrations》 视频 幻灯片

[2] 《OpenShift Commons .Gov SIG #1: FISMA Compliance for OCP》视频 : Jason Callaway 幻灯片 在线文档