16.3. 取消调度


16.3.1. 概述

分离涉及根据 特定的策略 驱除 pod,以便可将 pod 重新调度到更合适的节点上。

集群可以从取消调度和重新调度已在运行的 pod 中受益,原因如下:

  • 节点使用不足或过度使用。
  • Pod 和节点关联性要求(如污点或标签)已更改,并且原始的调度不再适合于某些节点。
  • 节点失败需要移动 pod。
  • 集群中添加了新节点。

descheduler 不调度被驱除的 pod。调度程序 自动为被驱除的 pod 执行此任务。

务必要注意,有许多核心组件(如 DNS)对于集群全面运行至关重要,但在常规集群节点而非 master 上运行。如果组件被驱除,集群可能会停止正常工作。要防止 descheduler 删除这些 pod,请将 pod 配置为 关键 pod,方法是将 scheduler.alpha.kubernetes.io/critical-pod 注解添加到 pod 规格中。

注意

descheduler 作业被视为关键 pod,可防止 descheduler pod 被 descheduler 驱除。

descheduler 作业和 descheduler pod 在 kube-system 项目中创建,默认创建。

重要

descheduler 只是一个技术预览功能。技术预览功能不包括在红帽生产服务级别协议(SLA)中,且其功能可能并不完善。因此,红帽不建议在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。

如需红帽技术预览功能支持范围的更多信息,请参阅 https://access.redhat.com/support/offerings/techpreview/

descheduler 不会驱除以下类型的 pod:

  • 关键 pod(带有 scheduler.alpha.kubernetes.io/critical-pod 注解)。
  • Pod(静态和镜像 pod 或独立模式的 pod)与 Replica Set、Replication Controller、Deployment 或 Job 没有关联(因为这些 pod 不会被重新创建)。
  • DaemonSet 关联的 Pod。
  • 具有本地存储的 Pod。
  • 如果取消调度违反了 PDB,受 Pod Disruption Budget (PDB) 限制的 Pod 不会被驱除。可以使用一个驱除策略来驱除 pod。
注意

在 Burstable 和 Guaranteed pod 之前,pod 会被驱除。

以下小节描述了配置和运行 descheduler 的流程:

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.