OpenShift - 架构

OpenShift是一个分层系统,其中每个层使用Kubernetes和Docker集群与另一个层紧密绑定. OpenShift的体系结构以这样的方式设计,即它可以支持和管理Docker容器,这些容器使用Kubernetes托管在所有层之上.与早期版本的OpenShift V2不同,新版OpenShift V3支持容器化基础架构.在这个模型中,Docker帮助创建轻量级的基于Linux的容器,Kubernetes支持在多个主机上编排和管理容器的任务.

OpenShift容器平台架构

OpenShift的组件

OpenShift架构的一个关键组件是管理Kubernetes中的容器化基础架构. Kubernetes负责基础架构的部署和管理.在任何Kubernetes集群中,我们可以拥有多个主节点和多个节点,这可确保设置中没有故障点.

OpenShift架构的关键组件

Kubernetes主机组件

Etcd : 它存储配置信息,可供集群中的每个节点使用.它是一个高可用性键值存储,可以分布在多个节点之间.它只能由Kubernetes API服务器访问,因为它可能包含敏感信息.它是一个可供所有人访问的分布式键值存储.

API服务器 :  Kubernetes是一个API服务器,它使用API提供集群上的所有操作. API服务器实现了一个接口,这意味着不同的工具和库可以很容易地与它通信. kubeconfig是一个包以及可用于通信的服务器端工具.它暴露了Kubernetes API".

控制器管理器 : 该组件负责管理群集状态和执行任务的大多数收集器.它可以被视为一个守护进程,它在非终止循环中运行,负责收集和发送信息到API服务器.它用于获取群集的共享状态,然后进行更改以将服务器的当前状态置于所需状态.关键控制器是复制控制器,端点控制器,命名空间控制器和服务帐户控制器.控制器管理器运行不同类型的控制器来处理节点,端点等.

调度程序 : 它是Kubernetes大师的重要组成部分.它是master中的一项服务,负责分配工作负载.它负责跟踪群集节点上的工作负载的利用率,然后将工作负载放在哪些资源可用并接受工作负载上.换句话说,这是负责将pod分配给可用节点的机制.调度程序负责工作负载利用率并将pod分配给新节点.

Kubernetes节点组件

以下是节点服务器的关键组件,这是与Kubernetes大师沟通所必需的.

Docker : 每个节点的第一个要求是Docker,它有助于在相对隔离但轻量级的操作环境中运行封装的应用程序容器.

Kubelet Service : 这是每个节点中的小型服务,其负责将信息中继到控制平面服务和从控制平面服务中继信息.它与etcd store交互以读取配置详细信息和Wright值.这与主组件通信以接收命令和工作.然后,kubelet进程负责维护工作状态和节点服务器.它管理网络规则,端口转发等.

Kubernetes代理服务 : 这是一个代理服务,它在每个节点上运行,有助于使服务可用于外部主机.它有助于将请求转发到正确的容器. Kubernetes代理服务能够执行原始负载平衡.它确保网络环境是可预测和可访问的,但同时它也是孤立的.它管理节点,卷,机密上的pod,创建新容器运行状况检查等.

集成OpenShift容器注册表

OpenShift容器注册表是内置的Red Hat的存储单元,用于存储Docker镜像.借助最新的OpenShift集成版本,它提供了一个用户界面,可以在OpenShift内部存储中查看图像.这些注册表能够保存带有指定标签的图像,这些标签稍后用于构建容器.

常用术语

图片 :  Kubernetes(Docker)图像是Containerized Infrastructure的关键构建块.截至目前,Kubernetes仅支持Docker镜像. pod中的每个容器都在其中运行Docker镜像.配置pod时,配置文件中的image属性与Docker命令的语法相同.

项目 : 它们可以定义为早期版本的OpenShift V2中存在的域的重命名版本.

Container : 它们是在Kubernetes集群节点上部署映像后创建的.

节点 : 节点是Kubernetes集群中的工作机器,也称为主机的minion.它们是可以是物理,VM或云实例的工作单元.

Pod :  pod是容器的集合,其存储在Kubernetes集群的节点内.可以在其中创建具有多个容器的pod.例如,将数据库容器和Web服务器容器保留在容器中.