1.2. OpenShift Container Platform 架构是什么?
OpenShift Container Platform 有一个基于微服务的架构,具有可一起工作的较小且分离的单元。它运行在 Kubernetes 集群 之上,其中包含有关 etcd 中存储的对象的数据,它是一个可靠的集群键值存储。这些服务按功能划分:
用户调用 REST API 以更改系统的状态。控制器使用 REST API 来读取用户所需状态,然后尝试让系统的其他部分保持同步。例如,当用户请求创建 "build" 对象的构建时。构建控制器会看到已创建了新构建,并在集群上运行一个进程来执行该构建。构建完成后,控制器通过 REST API 更新构建对象,用户会看到其构建已经完成。
控制器模式意味着 OpenShift Container Platform 中的大部分功能是可扩展的。构建运行和启动的方式可以独立自定义管理镜像的方式,或者如何部署。控制器正在执行系统的"业务逻辑",采取用户操作并将其转换为现实。通过自定义这些控制器或将其替换为您自己的逻辑,可以实施不同的行为。从系统管理的角度来看,这也意味着 API 可用于根据重复的计划编写常见的管理操作。这些脚本也是监视更改和采取行动的控制器。OpenShift Container Platform 使可以采用第一类行为来自定义集群。
要实现这个目标,控制器利用系统的一个可靠的更改流,将其系统视图与用户执行的操作同步。此事件流会从 etcd 推送到 REST API,然后在更改后马上推送到控制器,因此更改可以快速高效地通过系统进行传输。但是,由于任何时候都可能会出现故障,控制器还必须能够在启动时获得系统的最新状态,并确认所有内容都处于正确的状态。这个重新同步(resynchronization)功能很重要,因为这意味着即使出现问题,Operator 也可以重启受影响的组件,系统会在继续前双重检查所有信息。系统最终应聚合到用户的意图,因为控制器总是可以使系统进行同步。