当前位置: 首页 > news >正文

k8s中Pod和Node的故事(2):优先级、抢占和驱逐

Pod还可以配置优先级,优先级代表一个pod的重要性。

当高优先级的pod被创建处于悬决状态时,调度器往往会把优先级低的pod驱逐走,让高优先级的pod的“霸占”其节点。

⚠警告:

在一个并非所有用户都是可信任的集群中,恶意用户可能以最高优先级创建 Pod, 导致其他 Pod 被驱逐或者无法被调度。 管理员可以使用 ResourceQuota 来阻止用户创建高优先级的 Pod。

一、认识PriorityClass

k8s集群中,要实现pod优先级和抢占,必须认识和了解PrioritiesClass。

PriorityClass 是一个无命名空间(参照我之前整理的一篇文章来理解)对象,它定义了从优先级类名称到优先级整数值的映射。

请看PriorityClass 示例:

名称在PriorityClass 对象元数据的name字段中指定; 值在必填的 value 字段中指定。值越大,优先级越高。

PriorityClass 对象可以设置任何小于或等于 10 亿的 32 位整数值。 这意味着 PriorityClass 对象的值范围是从 -2,147,483,648 到 1,000,000,000(含)。 


1.1 预置的PriorityClass

PriorityClass 对象的名称必须是有效的 DNS 子域名, 并且它不能以 system- 为前缀。

Kubernetes 已经提供了 2 个 PriorityClass: system-cluster-critical 和 system-node-critical。 这些是常见的类,用于确保始终优先调度关键组件

Kubernetes 核心组件(如 API 服务器、调度器、控制器管理器)在控制平面节点上运行。 但是插件必须在常规集群节点上运行。 其中一些插件对于功能完备的集群至关重要,例如 Heapster、DNS 和 UI。 如果关键插件被逐出(手动或作为升级等其他操作的副作用)或者变成挂起状态,集群可能会停止正常工作。


1.2 两个可选字段

PriorityClass 有两个可选字段globalDefault 和 description

  • globalDefault 字段表示这个 PriorityClass 的值应该用于没有 priorityClassName 的 Pod。 系统中只能存在一个 globalDefault 设置为 true 的 PriorityClass。
  • 如果不存在设置了 globalDefault 的 PriorityClass, 则没有 priorityClassName 的 Pod 的优先级为零。
  • description 字段是一个任意字符串。 它用来告诉集群用户何时应该使用此 PriorityClass。

1.3 关于 PodPriority 和现有集群的要点知识

  • 如果你升级一个已经存在的但尚未使用此特性的集群,该集群中已经存在的 Pod 的优先级等效于零
  •  添加一个将 globalDefault 设置为 true 的 PriorityClass 不会改变现有 Pod 的优先级。 此类 PriorityClass 的值仅用于添加 PriorityClass 后创建的 Pod
  • 如果你删除了某个 PriorityClass 对象,则使用被删除的 PriorityClass 名称的现有 Pod 保持不变, 但是你不能再创建使用已删除的 PriorityClass名称的 Pod

二、非抢占式 PriorityClass

配置了 preemptionPolicy: Never 的 Pod 将被放置在调度队列中较低优先级 Pod 之前, 但它们不能抢占其他 Pod。

等待调度的非抢占式 Pod 将留在调度队列中,直到有足够的可用资源, 它才可以被调度。

非抢占式 Pod,像其他 Pod 一样,受调度程序回退的影响。 这意味着如果调度程序尝试这些 Pod

http://www.dtcms.com/a/449635.html

相关文章:

  • 网站架构包含哪几部分苏州网站建设网站制作的公司
  • UML笔记 之 事物和关系
  • 中国黄金集团建设有限公司官方网站照片在线编辑
  • 从零开始学习Python Django:从环境搭建到第一个 Web 应用
  • Lenovo XiaoXin Pro13 i5-10210U_i7-10710U 黑苹果 EFI
  • 网站建设服务商24小时接单移动应用开发专业学什么
  • 从 0 到 PB 级存储:MinIO 分布式文件系统实战指南与架构解密
  • [人工智能-综述-23]:AI的硬件层以及组成架构、GPU内部以及组成架构
  • 营销型企业网站分pageadmincms
  • JDK安装操作命令(linux)
  • UNIX下C语言编程与实践39-UNIX 定时器:alarm 函数与 setitimer 函数的使用与对比
  • 18款禁用网站app全部用asp.net 做网站
  • 对比网站中国最大免费wap网站
  • 虚拟麦克风驱动下载
  • 算法题(227):回文字符串
  • 框架--SpringBoot
  • STM32F103 MPU6500 DMP库姿态解算
  • 使用第三方库
  • 腾讯企业邮箱登录入口app云优化seo软件
  • 【操作系统-Day 40】文件的“身份证”:深入解析文件定义、属性与核心操作
  • 磁共振成像原理(理论)19:基本成像原理 (Basic Imaging Methods) - 三维成像
  • 线程池——线程池
  • WebSocket细谈
  • 公司网站怎么建站微网站如何做微信支付宝支付
  • Ubuntu 原地升级 MongoDB 全攻略
  • 网站变灰色代码安徽省建设工程信息网官网是什么网站
  • Hexo博客搭建系列(四):透明居中导航栏+鼠标悬停放大效果
  • 【STM32项目开源】基于STM32的智能仓库火灾检测系统
  • 陕西省建设监理协会网站证书wordpress 图片外链
  • 做模板网站企业网站类型