2、核心流程

一、应用构建

    第1步,部署应用。流程的开始是用户通过OpenShift的Web控制台或命令行ocnew-app创建应用。根据用户提供的源代码仓库地址及Builder镜像,平台将生成构建配置(BuildConfig)、部署配置(DeploymentConfig)、Service及Route等对象。

    第2步,触发构建。应用相关的对象创建完毕后,平台将触发一次S2I构建。

    第3步,实例化构建。平台依据应用的BuildConfig实例化一次构建,生成一个Build对象。Build对象生成后,平台将执行具体的构建操作,包括下载源代码、实例化Builder镜像、执行编译和构建脚本等。

    第4步,生成镜像。构建成功后将生成一个可供部署的应用容器镜像。平台将把此镜像推送到内部的镜像仓库组件Registry中。

    第5步,更新ImageStream。镜像推送至内部的仓库后,平台将创建或更新应用的ImageStream的镜像信息,使之指向最新的镜像。

二、应用部署

    第6步,触发镜像部署。当ImageStream的镜像信息更新后,将触发平台部署S2I构建生成的镜像。

    第7步,实例化镜像部署。DeploymentConfig对象记录了部署的定义,平台将依据此配置实例化一次部署,生成一个Deploy对象跟踪当次部署的状态。

    第8步,生成ReplicationController。平台部署将实例化一个ReplicationController,用以调度应用容器的部署。

    第9步,部署容器。通过ReplicationController,OpenShift将Pod及应用容器部署到集群的计算节点中。

三、请求处理

    第10步,用户访问。用户通过浏览器访问Route对象中定义的应用域名。

    第11步,请求处理并返回。请求到Router组件后,Router根据Route定义的规则,找到请求所含域名相关联的Service的容器,并将请求转发给容器实例。容器实例除了请求后返回数据,还会通过Router将数据返回给调用的客户端。

四、应用更新

    在应用更新时,平台将重复上述流程的第1步至第9步。平台将用下载更新后的代码构建应用,生成新的镜像,并将镜像部署至集群中。值得注意的是,OpenShit支持滚动更新。在第9步时,平台将通过滚动更新的方式,保证应用在新老实例交替时服务不间断。

猜你喜欢

转载自www.cnblogs.com/xuyiyi/p/9571052.html