二十四、k8s 资源管理

news/2024/7/4 7:46:21 标签: kubernetes, 容器, 云原生

目录

一、资源配置范围管理

LimitRange介绍

1、LimitRange 可以做什么: 

2、 资源限制和请求的约束

3、创建LimitsRange对象 

4、示例:创建一个pod

5、测试用例 

测试1:

测试2:

测试3:

 二、资源服务质量管理(Requests Qos)

1、Qos级别分类:

1.1、Guaranteed:

1.2、BestEffort:

1.3、Burstable:

2、Qos的工作特点

3、示例

三、资源配额管理(Resource Quotas)

1、启用资源配额 

3.1、计算资源配额

3.2、存储资源配额

3.3、对象数量配额

2、配额的作用域(Quota Scopes)

3、基于优先级类(PriorityClass)来设置资源配额

4、资源配额定义

 四、ResourceQuota和LimitRange实践

五、节点的CPU管理策略

1、CPU管理策略

2、更改CPU管理策略

3、节点cpu管理策略示例


一、资源配置范围管理

LimitRange介绍

        在默认情况下,kubernetes不会对Pod做CPU和内存等资源限制,即kubernetes系统中任何Pod都可以使用其所在节点的所有可用的CPU 和内存。

        通过配置 Pod 的计算资源 Requests和 Limits,我们可以限制 Pod 的资源使用,配置最高要求和最低要求。

        但对于Kubernetes 集群管理员而言,为每一个 Pod 配置 Requests和Limits 是麻烦的,同时维护特别的不方便。需要考虑如何确保一个 Pod 不会垄断命名空间内所有可用的资源。

        更多时候,我们需要对集群内Requests和Limits的配置做一个全局限制。这里就要用到 Limitrange ,LimitRange 用来限制命名空间内 适用的对象类别 (例如 Pod 或 PersistentVolumeClaim) 指定的资源分配量(限制和请求)的一个策略对象。对 Pod 和容器的 Requests 和 Limits 配置做进一步做出限制。

1、LimitRange 可以做什么: 

  • 在一个命名空间中实施对每个 Pod 或 Container 最小和最大的资源使用量的限制。
  • 在一个命名空间中实施对每个 PersistentVolumeClaim 能申请的最小和最大的存储空间大小的限制。
  • 在一个命名空间中实施对一种资源的 申请值和限制值 的 比值的控制 。
  • 设置一个命名空间中对计算资源的默认申请/限制值,并且自动的在运行时注入到多个Container中。
  • 当某命名空间中有一个LimitRange对象时,会在该命名空间中实施 LimitRange 限制。

2、 资源限制和请求的约束

        管理员在一个命名空间内创建一个 LimitRange 对象。 用户在此命名空间内创建(或尝试创建) Pod 和 PersistentVolumeClaim 等对象。

        首先,LimitRanger 准入控制器对所有没有设置计算资源需求的所有 Pod(及其容器)设置默认请求值与限制值。也就是(limits 和 Request)

        其次,LimitRange 跟踪其使用量以保证没有超出命名空间中存在的任意 LimitRange 所定义的最小、最大资源使用量以及使用量比值。

        若尝试创建或更新的对象(Pod 和 PersistentVolumeClaim)违反了 LimitRange 的约束,向 API 服务器的请求会失败,并返回 HTTP 状态码 403 Forbidden以及描述哪一项约束被违反的消息。

        若你在命名空间中添加 LimitRange 启用了对 cpu 和 memory 等计算相关资源的限制(Max,Min), 你必须指定这些值的请求使用量 requests 与限制使用量 limits ,否则,系统将会拒绝创建 Pod,除非在 LimitRange 定义 默认的 ( limits 和 requests )。LimitRange 的 验证仅在 Pod 准入阶段进行,不对正在运行的 Pod 进行验证。 如果你添加或修改 LimitRange,命名空间中已存在的 Pod 将继续不变。如果命名空间中存在两个或更多 LimitRange 对象,


http://www.niftyadmin.cn/n/5389871.html

相关文章

android pdf框架-4,分析vudroid源码1

前言 上文基于recyclerview修改,没有自定义layoutmanager,其实并不是一个好的阅读器,缩放功能有限,放大了容易内存溢出. 本文,从修改vudroid源码来完成一个阅读器. 为什么是vudroid? 它是基于view系统的相对完整的功能代码没有那么抽象,简洁容易修改功能没有完善,有修改空间…

C++的map/multimap容器->基本概念、构造和赋值、大小和交换、插入和删除、查找和统计、容器排序

#include<iostream> using namespace std; #include <map> //map容器 构造和赋值 void printMap(map<int,int>&m) { for (map<int, int>::iterator it m.begin(); it ! m.end(); it) { cout << "key " <&l…

2024年合同如何实现智能化管理

#合同智能化管理 近些年来&#xff0c;随着人工智能技术的逐步发展成熟&#xff0c;智能应用服务也越来越多&#xff0c;合同智能应用也是当下企业合同管理的必备条件。近几年&#xff0c;合同智能化管理也取得了不错的成绩&#xff0c;那么往后合同智能化管理将如何去做&…

vue项目使用vue2-org-tree

实现方式 安装依赖 npm i vue2-org-tree使用的vue页面引入 <template><div class"container"><div class"oTree" ><vue2-org-tree name"test":data"data":horizontal"horizontal":collapsable"…

2024022301-关系代数

关系代数 概述 关系代数是一种抽象的查询语言&#xff0c;用对关系的运算来表达查询&#xff0c;作为研究关系数据语言的数学工具。 关系代数的运算对象是关系&#xff0c;运算结果亦为关系。 关系代数的运算 普通的集合运算 并、交、差 删除部分关系的运算 选择、投影…

Ant Design Pro 快速入门

文章目录 为什么要学习 Ant Design Pro视频教程未来规划 为什么要学习 Ant Design Pro Ant Design Pro 作为阿里巴巴开源的前端优秀项目&#xff0c;开箱即用&#xff0c;从技术新颖程度和架构设计&#xff0c;都非常值得学习。 作为后端为主要技术栈的同学&#xff0c;越好上…

普中51单片机学习(DS1302)

DS1302时钟 DS1302实时时钟具有能计算2100年之前的秒、分、时、日、日期、星期、月、年的能力&#xff0c;还有闰年调整的能力。内部含有31个字节静态RAM&#xff0c;可提供用户访问。采用串行数据传送方式&#xff0c;使得管脚数量最少&#xff0c;简单SPI 3线接口。工作电压…

2、核心—卫星配置策略

“核心—卫星”策略(Core-Satellite Strategy)兴起于20世纪90年代&#xff0c;现在已经成为成熟市场上资产配置的主流策略之一&#xff0c;全球著名的资产管理机构如先锋、瑞银、巴克莱等都在应用这一策略为客户配置资产。“核心-卫星”策略是天体物理如“地球-卫星”运行结构在…