Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

2.11.2. 每个节点设置最大 pod

/etc/origin/node/node-config.yaml 文件中,两个参数控制可以调度到节点的 pod 的最大数量:pod -per-coremax-pods。当两个选项都被使用时,这两个选项中的较小的限制为节点上的 pod 数量。超过这些值可导致:

  • OpenShift Container Platform 和 Docker 的 CPU 使用率增加。
  • 减慢 pod 调度的速度。
  • 潜在的内存不足情况(取决于节点中的内存量)。
  • 耗尽 IP 地址池。
  • 资源过量使用,导致用户应用程序性能变差。
注意

在 Kubernetes 中,包含单个容器的 pod 实际使用两个容器。第二个容器用来在实际容器启动前设置联网。因此,运行 10 个 pod 的系统实际上会运行 20 个容器。

pods-per-core 根据节点上的处理器内核数来设置节点可运行的 pod 数量。例如,如果将 一个有 4 个处理器内核的节点上的 pod-per-core 设置为 10,则该节点上允许的最大 pod 数量为 40。

kubeletArguments:
  pods-per-core:
    - "10"
注意

pods-per-core 设置为 0 可禁用这个限制。

max-pods 将节点可以运行的 pod 数量设置为固定值,而不考虑节点的属性。集群限制 记录 max-pods 的最大支持值。

kubeletArguments:
  max-pods:
    - "250"

使用上例时,pod -per-core 的默认值为 10max-pods 的默认值为 250。这意味着,除非节点有 25 个或更多内核,否则 pod-per-core 默认是限制因素。