OpenShift架构

管控平面(control plane)

OpenShift和 Kubernetes Atlas 类似采用了 control plane + worker 模式,也就是集群分为两种角色:

  • 管控平面: 管理worker节点和集群中的pod

    • 使用operator来打包、部署和管理 control plane 的服务(pods)

    • 健康检查

    • 监控应用

    • 实现在线更新

    • 确保应用终态(也就是K8S的面向状态的理念)

OpenShift容器化应用是通过以下技术来实现的:

  • 使用 构建工具、基础镜像 和 镜像中心(registry) 来实现应用容器化和灵活部署

  • 使用 OperatorHub 和 模版 来开发应用

  • 将应用程序打包和部署成 Operator (尚未理解)

OpenShift 没有采用常规的操作系统作为基础镜像,而是采用专用于容器的CoreOS。对于企业市场,采用的是 RHEL CoreOS,你可以认为是类似于 Fedora CoreOS容器操作系统 的RHEL定制版本。由于我的实践采用社区 OKD ,所以对应采用的就是 Fedora CoreOS容器操作系统 。实际上,各个容器厂商和发行版厂商都有针对容器化技术的精简定制系统,例如Docker采用 Alpine Linux 作为基础镜像。

OpenShift的 Fedora CoreOS容器操作系统 / Red Hat Enterprise Linux CoreOS(RHCOS) 在部署配置过程中使用 Ignition 来完成

警告

OpenShift Container Platform只支持 RHCOS (Red Hat Enterprise Linux CoreOS) 作为操作系统,对应于社区OKD,则只支持 Fedora CoreOS容器操作系统 。需要注意,这个限制是对于管控平面或者master主机是强依赖(管控服务器只能用RHCOS),不过worker节点可以使用RHEL(也就是说也可以使用CentOS)。

这里有两种部署 RHCOS / Fedora CoreOS容器操作系统 方法:

  • 如果使用OpenShift/OKD来管理的基础架构上安装集群,则 CoreOS 会在安装过程中下载到目标平台,此时 Ignition 配置文件也同时下载并用于部署机器。你可以认为这是一个 kickstart 安装 CoreOS 过程

  • 如果要把OpenShift/OKD安装到现有基础架构上,则需要按照安装手册下载RHCOS镜像,生成Ignition配置文件,并使用Ignition配置文件来配置主机

组件

参考