📅  最后修改于: 2020-10-31 13:50:01             🧑  作者: Mango
OpenShift是一个分层系统,其中每一层都使用Kubernetes和Docker集群与另一层紧密绑定。 OpenShift的架构设计为可以支持和管理Docker容器,这些容器使用Kubernetes托管在所有层的顶部。与早期版本的OpenShift V2不同,新版本的OpenShift V3支持容器化基础结构。在此模型中,Docker帮助创建基于Linux的轻量级容器,而Kubernetes支持在多个主机上编排和管理容器的任务。
OpenShift体系结构的关键组件之一是管理Kubernetes中的容器化基础架构。 Kubernetes负责基础架构的部署和管理。在任何Kubernetes集群中,我们可以有多个主节点和多个节点,这可以确保设置中没有故障点。
Etcd-它存储配置信息,集群中的每个节点都可以使用该配置信息。它是一个高可用性键值存储,可以在多个节点之间分布。 Kubernetes API服务器只能访问它,因为它可能具有敏感信息。这是一个分布式键值存储,所有人都可以访问。
API服务器-Kubernetes是一个API服务器,它使用该API提供集群上的所有操作。 API服务器实现了一个接口,这意味着不同的工具和库可以轻松地与其进行通信。 kubeconfig是一个软件包,以及可用于通信的服务器端工具。它公开了Kubernetes API”。
控制器管理器-该组件负责调节群集状态并执行任务的大多数收集器。可以将其视为在非终止循环中运行的守护程序,该守护程序负责收集信息并将其发送到API服务器。它致力于获取群集的共享状态,然后进行更改以使服务器的当前状态达到所需状态。关键控制器是复制控制器,端点控制器,名称空间控制器和服务帐户控制器。控制器管理器运行不同类型的控制器以处理节点,端点等。
调度程序-它是Kubernetes主站的关键组件。它是主服务器中的一项服务,负责分配工作负载。它负责跟踪群集节点上工作负载的利用率,然后将工作负载放在可用资源上并接受工作负载。换句话说,这是负责将Pod分配给可用节点的机制。调度程序负责工作负载的利用,并将Pod分配给新节点。
以下是节点服务器的关键组件,这些组件是与Kubernetes主服务器通信所必需的。
Docker-每个节点的首要要求是Docker,它有助于在相对隔离但轻量级的操作环境中运行封装的应用程序容器。
Kubelet服务-这是每个节点中的小型服务,负责向控制平面服务和从控制平面服务中继信息。它与etcd存储交互,以读取配置详细信息和Wright值。这与主组件进行通信以接收命令和工作。然后,kubelet进程承担维护工作状态和节点服务器的责任。它管理网络规则,端口转发等。
Kubernetes代理服务-这是一个在每个节点上运行的代理服务,有助于使服务对外部主机可用。它有助于转发请求以更正容器。 Kubernetes代理服务能够执行原始负载平衡。它确保网络环境是可预测的且可访问的,但同时也将其隔离。它管理节点,卷,机密上的Pod,创建新的容器运行状况检查等。
OpenShift容器注册表是Red Hat的内置存储单元,用于存储Docker映像。借助最新的OpenShift集成版本,它提供了一个用户界面来查看OpenShift内部存储中的图像。这些注册表可以保存带有指定标签的图像,这些标签随后可用于从中构建容器。
图像-Kubernetes(Docker)图像是容器化基础架构的关键构建块。到目前为止,Kubernetes仅支持Docker映像。容器中的每个容器都在其中运行其Docker映像。配置Pod时,配置文件中的image属性具有与Docker命令相同的语法。
项目-可以将它们定义为OpenShift V2早期版本中存在的域的重命名版本。
容器-它们是在Kubernetes集群节点上部署映像后创建的容器。
节点-节点是Kubernetes集群中的一台工作机器,也称为master的奴才。它们是可以是物理,VM或云实例的工作单元。
Pod – Pod是容器的集合及其在Kubernetes集群的节点内的存储。可以创建一个带有多个容器的容器。例如,将数据库容器和Web服务器容器保留在pod中。