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