第 5 章 配置 PID 限制
进程标识符(PID)是 Linux 内核分配给系统中当前运行的每个进程或线程的唯一标识符。在系统上可以同时运行的进程数量限制为 4、194、304、Linux 内核。这个数字也可能受对其他系统资源(如内存、CPU 和磁盘空间)的有限访问的影响。
在 Red Hat OpenShift Service on AWS 4.11 及更高版本中,pod 最多可以有 4,096 个 PID。如果您的工作负载需要超过这个对象,您可以通过配置 KubeletConfig
对象来增加允许的最大 PID 数量。
在早于 4.11 的运行版本的 Red Hat OpenShift Service on AWS 集群使用默认的 PID 限制 1024
。
5.1. 了解进程 ID 限制
在 Red Hat OpenShift Service on AWS 中,在调度在集群中工作前,考虑这两个支持的用于进程 ID (PID)的限制:
每个 pod 的最大 PID 数量。
默认值为 Red Hat OpenShift Service on AWS 4.11 及之后的版本中的 4,096。这个值由节点上设置的
podPidsLimit
参数控制。每个节点的最大 PID 数量。
默认值取决于 节点资源。在 Red Hat OpenShift Service on AWS 中,这个值由
-system-reserved
参数控制,该参数会根据节点的总资源在每个节点中保留 PID。
当 pod 超过每个 pod 允许的最大 PID 数量时,pod 可能会停止正常工作,并可能会从节点驱除。如需更多信息 ,请参阅 Kubernetes 文档中的驱除信号和阈值。
当节点超过每个节点允许的最大 PID 数量时,节点可能会变得不稳定,因为新进程无法分配 PID。如果在不创建额外进程的情况下无法完成现有进程,则整个节点都可以不可用,需要重启。这种情况可能会导致数据丢失,具体取决于运行进程和应用程序。当达到这个阈值时,客户管理员和 Red Hat Site Reliability Engineering 会收到通知,Worker 节点遇到 PIDPressure
警告将出现在集群日志中。