23.6.3. 为系统进程保留资源


调度程序 确保根据 pod 请求,节点上所有 pod 有足够的资源。它验证节点上容器请求总和不能超过节点容量。它包括由节点启动的所有容器,但不包括容器,或在集群知识之外启动的容器。

建议您保留节点容量的某些部分,以便集群在节点上运行所需的系统守护进程(sshddocker 等等)。特别是,建议您为内存等不可压缩的资源保留资源。

如果要显式为非 pod 进程保留资源,可以通过两种方式来:

  • 首选方法是通过指定可用于调度的资源来分配节点资源。如需了解更多详细信息 ,请参阅分配 节点资源。
  • 另外,您可以创建一个不执行任何操作的 resource-reserver pod,但保留容量是否被集群调度到节点上。例如:

    例 23.1. resource-reserver Pod 定义

    apiVersion: v1
    kind: Pod
    metadata:
      name: resource-reserver
    spec:
      containers:
      - name: sleep-forever
        image: gcr.io/google_containers/pause:0.8.0
        resources:
          limits:
            cpu: 100m 1
            memory: 150Mi 2
    1
    要在节点上保留的 CPU 数量,以便集群未知主机级别的守护进程。
    2
    要在节点上保留的内存量,以便集群未知主机级别的守护进程。

    您可以将定义保存到文件中,如 resource-reserver.yaml,然后将该文件放到节点配置目录中,例如 /etc/origin/node/--config=<dir& gt; 位置。

    另外,通过在适当的节点 配置映射中 指定 目录,将节点 服务器配置为从节点 配置目录读取定义:

    kubeletArguments:
      config:
        - "/etc/origin/node" 1
    1
    如果指定了 --config=<dir>,请在此处使用 <dir>

    使用 resource-reserver.yaml 文件,启动节点服务器也会启动 sleep-forever 容器。调度程序考虑节点的剩余容量,调整相应地放置集群 pod 的位置。

    要删除 resource-reserver pod,您可以从节点配置目录中删除或移动 resource-reserver.yaml 文件。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.