节点是Kubernetes集群中的虚拟机或裸机。工作节点托管您的应用程序容器,这些容器被分组为Pod。控制平面节点运行控制Kubernetes集群所需的的服务。在OpenShift Container Platform中,控制平面节点包含的不仅仅是管理OpenShift Container Platform集群的Kubernetes服务。
集群中拥有稳定且健康的节点对于托管应用程序的平稳运行至关重要。在 OpenShift Container Platform 中,您可以通过代表节点的Node
对象访问、管理和监控节点。使用 OpenShift CLI (oc
) 或 Web 控制台,您可以对节点执行以下操作。
节点的以下组件负责维护 Pod 的运行并提供 Kubernetes 运行时环境。
容器运行时负责运行容器。Kubernetes 提供多种运行时,例如 containerd、cri-o、rktlet 和 Docker。
Kubelet 运行在节点上并读取容器清单。它确保已定义的容器已启动并正在运行。kubelet 进程维护工作状态和节点服务器。Kubelet 管理网络规则和端口转发。Kubelet 只管理 Kubernetes 创建的容器。
Kube-proxy 运行在集群中的每个节点上,并维护 Kubernetes 资源之间的网络流量。Kube-proxy 确保网络环境隔离且可访问。
集群 DNS 是一个 DNS 服务器,它为 Kubernetes 服务提供 DNS 记录。Kubernetes 启动的容器会自动在其 DNS 搜索中包含此 DNS 服务器。
读取操作允许管理员或开发人员获取有关 OpenShift Container Platform 集群中节点的信息。
获取有关节点的信息,例如内存和 CPU 使用率、健康状况、状态和使用时间。
作为管理员,您可以通过以下几项任务轻松管理 OpenShift Container Platform 集群中的节点
添加或更新节点标签。标签是应用于Node
对象的键值对。您可以使用标签来控制 Pod 的调度。
使用自定义资源定义 (CRD) 或kubeletConfig
对象更改节点配置。
配置节点以允许或禁止 Pod 调度。默认情况下,具有Ready
状态的健康工作节点允许放置 Pod,而控制平面节点不允许;您可以通过将工作节点配置为不可调度和将控制平面节点配置为可调度来更改此默认行为。
使用system-reserved
设置分配节点资源。您可以允许 OpenShift Container Platform 自动确定节点的最佳system-reserved
CPU 和内存资源,也可以手动确定并设置节点的最佳资源。
使用Pod 反亲和性优雅地重新引导节点。
从集群中删除节点,方法是使用计算机器集缩减集群规模。要从裸机集群中删除节点,必须首先清空节点上的所有 Pod,然后手动删除节点。
OpenShift Container Platform 允许您执行的操作不仅仅是访问和管理节点;作为管理员,您可以对节点执行以下任务,以使集群更高效、更易于应用程序使用,并为开发人员提供更好的环境。
通过使用节点调整运算符管理高性能应用程序的节点级调整,这些应用程序需要一定程度的内核调整。
使用守护程序集自动在节点上运行后台任务。您可以创建和使用守护程序集来创建共享存储、在每个节点上运行日志记录 Pod 或在所有节点上部署监控代理。
在节点上启用 TLS 安全配置文件,以保护 kubelet 和 Kubernetes API 服务器之间的通信。
使用守护程序集自动在节点上运行后台任务。您可以创建和使用守护程序集来创建共享存储、在每个节点上运行日志记录 Pod 或在所有节点上部署监控代理。
使用垃圾回收释放节点资源。您可以通过删除已终止的容器和任何正在运行的 Pod 未引用的镜像来确保节点高效运行。
将 OpenShift Container Platform 集群配置为在网络边缘拥有工作节点(远程工作节点)。有关在 OpenShift Container Platform 集群中拥有远程工作节点的挑战以及管理远程工作节点上的 Pod 的一些推荐方法的信息,请参阅使用网络边缘的远程工作节点。
Pod 是一个或多个一起部署在节点上的容器。作为集群管理员,您可以定义 Pod,将其分配到准备好进行调度的健康节点上,并进行管理。只要容器正在运行,Pod 就一直运行。一旦定义并运行 Pod,就不能更改它。处理 Pod 时可以执行的一些操作包括
作为管理员,您可以通过以下任务获取项目中 Pod 的信息
列出与项目关联的 Pod,包括副本数和重启次数、当前状态和使用时间等信息。
查看 Pod 使用情况统计信息,例如 CPU、内存和存储使用情况。
以下任务列表概述了管理员如何管理 OpenShift Container Platform 集群中的 Pod。
使用 OpenShift Container Platform 中提供的先进调度功能控制 Pod 的调度
配置驱逐程序以根据特定策略驱逐 Pod,以便调度程序将 Pod 重新调度到更合适的节点。
向任何具有 Pod 模板的对象添加和删除卷。卷是挂载的文件系统,可供 Pod 中的所有容器使用。容器存储是短暂的;您可以使用卷来持久化容器数据。
借助 OpenShift Container Platform 中提供的各种工具和功能,您可以更轻松、更高效地处理 Pod。以下操作涉及使用这些工具和功能来更好地管理 Pod。
操作 | 用户 | 更多信息 |
---|---|---|
创建和使用水平 Pod 自动缩放器。 |
开发者 |
您可以使用水平 Pod 自动伸缩器来指定要运行的 Pod 的最小数量和最大数量,以及 Pod 应该达到的 CPU 利用率或内存利用率。使用水平 Pod 自动伸缩器,您可以自动扩展 Pod。 |
管理员和开发者 |
作为管理员,您可以使用垂直 Pod 自动伸缩器通过监控工作负载的资源和资源需求来更好地利用集群资源。 作为开发者,您可以使用垂直 Pod 自动伸缩器通过将 Pod 调度到具有足够资源的节点上来确保您的 Pod 在高需求期间保持运行。 |
|
使用设备插件提供对外部资源的访问。 |
管理员 |
设备插件是在节点上运行的 gRPC 服务(位于 kubelet 之外),它管理特定的硬件资源。您可以部署设备插件,以提供一个一致且可移植的解决方案,以便在集群之间使用硬件设备。 |
使用 |
管理员 |
某些应用程序需要敏感信息,例如密码和用户名。您可以使用 |
容器是 OpenShift Container Platform 应用程序的基本单元,它包含打包在一起的应用程序代码及其依赖项、库和二进制文件。容器提供跨环境和多个部署目标的一致性:物理服务器、虚拟机 (VM) 和私有或公共云。
Linux 容器技术是隔离运行进程和限制其仅访问指定资源的轻量级机制。作为管理员,您可以对 Linux 容器执行各种任务,例如
OpenShift Container Platform 提供称为Init 容器的专用容器。Init 容器在应用程序容器之前运行,并且可以包含应用程序镜像中不存在的实用程序或设置脚本。您可以使用 Init 容器在部署 Pod 的其余部分之前执行任务。
除了对节点、Pod 和容器执行特定任务之外,您还可以使用整个 OpenShift Container Platform 集群来保持集群效率和应用程序 Pod 的高可用性。
OpenShift Container Platform 提供三种工具,您可以使用这些工具自动扩展节点上 Pod 的数量以及分配给 Pod 的资源。
水平 Pod 自动伸缩器 (HPA) 可以根据从属于该复制控制器或部署配置的 Pod 收集的指标,自动增加或减少复制控制器或部署配置的规模。
有关更多信息,请参见使用水平 Pod 自动伸缩器自动扩展 Pod。
自定义指标自动伸缩器可以根据非基于 CPU 或内存的自定义指标,自动增加或减少部署、StatefulSet、自定义资源或作业的 Pod 数量。
有关更多信息,请参见自定义指标自动伸缩器 Operator 概述。
垂直 Pod 自动伸缩器 (VPA) 可以自动检查 Pod 中容器的历史和当前 CPU 和内存资源,并可以根据其学习到的使用值更新资源限制和请求。
有关更多信息,请参见使用垂直 Pod 自动伸缩器自动调整 Pod 资源级别。
此术语表定义了在节点内容中使用的常用术语。
它是一个轻量级且可执行的镜像,包含软件及其所有依赖项。容器虚拟化操作系统,因此,您可以从数据中心到公共或私有云,甚至开发人员的笔记本电脑在任何地方运行容器。
确保 Pod 的副本在 OpenShift Container Platform 集群中的合格节点上运行。
通过网络从 Pod 发出的出站流量,进行外部数据共享的过程。
清理集群资源的过程,例如任何正在运行的 Pod 都未引用的已终止容器和镜像。
作为 Kubernetes API 资源和控制器实现。您可以使用 HPA 来指定要运行的 Pod 的最小数量和最大数量。您还可以指定 Pod 应该达到的 CPU 或内存利用率。当达到给定的 CPU 或内存阈值时,HPA 会扩展和缩减 Pod。
进入 Pod 的流量。
运行到完成的进程。作业创建一个或多个 Pod 对象,并确保成功完成指定的 Pod。
您可以使用键值对标签来组织和选择对象的子集,例如 Pod。
OpenShift Container Platform 集群中的工作机器。节点可以是虚拟机 (VM) 或物理机。
您可以使用节点调整 Operator 通过使用 TuneD 守护程序来管理节点级调整。它确保自定义调整规范以守护程序理解的格式传递给集群中运行的所有容器化 TuneD 守护程序。守护程序在集群中的所有节点上运行,每个节点一个。
Operator 在集群节点上运行,并识别并重新引导不健康的节点。
一个或多个具有共享资源(例如卷和 IP 地址)的容器,在您的 OpenShift Container Platform 集群中运行。Pod 是定义、部署和管理的最小计算单元。
指示允许(但不强制要求)将 Pod 调度到具有匹配污点的节点或节点组上。您可以使用容忍度来启用调度程序调度具有匹配污点的 Pod。
一个核心对象,包含键、值和效果。污点和容忍度协同工作以确保 Pod 不被调度到不相关的节点上。