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

k8s-对命名空间资源配额

对k8s命名空间限制的方法有很多种,今天来演示一下很常用的一种

用的k8s对象就是ResourceQuota

一:创建命名空间

kubectl   create ns  test   #namespace命名空间可以简写成ns

二: 对命名空间进行限制

创建resourcequota

vim resourcequota.yaml

apiVersion: v1
kind: ResourceQuota               #定义配额资源   ResourceQuota
metadata:name: quota-testlabels:app: quotanamespace: test            #指定想要限制那个命名空间
spec:hard:                           #硬限制pods: "3"                     #pod最多创建3个count/deployments.apps: "1"   #deploy资源最多创建1个cpu: 5                        #cpu 下限总和5核 对比 container.resource下面的request.memorymemory: 5Gi                   #内存  下限总和5Gi 对比 container.resource下面的request.memorylimits.cpu: 10                #cpu 上限10核 对比 container.resource下面的limit.cpulimits.memory: 10Gi           #内存  上限10Gi 对比 container.resource下面的limit.memory

kubectl  apply  -f  resourcequota.yaml 

查看一下命名空间的详细信息  

kubectl describe ns test

这是显示的就是test这个名称空间下资源限制和使用情况

  • test 命名空间内最多只能有 1 个 Deployment。
  • CPU 使用总量不超过 5 个单位。
  • 内存使用总量不超过 5GiB。
  • Pod 的最大数量是 3 个。

三:创建deploy资源进行测试

vim test-deploy.yaml

apiVersion: apps/v1
kind: Deployment
metadata:namespace: testname: quota-deploy
spec:selector:matchLabels:app: testreplicas: 2       # 副本数设置为 2template:metadata:labels:app: testspec:containers:- name: pod-quotaimage: 192.168.8.99/web/nginx:1.20imagePullPolicy: IfNotPresentresources:requests:   # 资源请求,保证容器启动所需的最小资源量cpu: 1     # 请求 1 个 CPU 核心memory: 1Gi # 请求 1GiB 内存limits:     # 资源限制,限制容器可以使用的最大资源量cpu: 2     # 限制使用不超过 2 个 CPU 核心memory: 2Gi # 限制使用不超过 2GiB 内存ports:- containerPort: 80

kubectl  apply -f test-deploy.yaml

kubectl get pod -n test

kubectl describe ns test

可以看到pod已经创建出来了,并且查看ns的详细信息显示资源限制pod已使用两个,因为我们的deploy的副本数是两个

cpu和memory都是对应我们yaml文件中指定的resources

---

现在将deploy副本数修改为5个看看会怎么样

kubectl edit deploy quota-deploy -n test

将副本数这里的2换成5 即可

再查看pod

可以看到明明我们写的副本数是5个他却只创建出来了3个

再查看ns的详细信息

可以看到我们定义的资源限制起作用了, 显示这个命名空间下的pod使用率已经满了

----------------

ResourceQuota 的好处和作用主要包括:

  1. 资源管理:限制命名空间内资源的使用量,防止资源过度消耗。
  2. 成本控制:避免不必要的资源浪费,降低运行成本。
  3. 稳定性保障:防止单个应用或用户占用过多资源,影响其他应用运行。
  4. 安全性增强:减少因资源滥用导致的系统不稳定或安全风险

http://www.lryc.cn/news/464976.html

相关文章:

  • Failed to connect to github.com port 443
  • 【设计模式系列】简单工厂模式
  • 给定一个正整数n随机生成n个字节即生成2n个十六进制数将其组成字符串返回secrets.token_hex(n)
  • [Gtk] 工程
  • 基于Multisim的汽车尾灯控制电路设计与仿真
  • Leetcode 3326. Minimum Division Operations to Make Array Non Decreasing
  • redo文件误删除后通过逻辑备份进行恢复
  • 7805的输出电压如何调整?
  • git命令使用一览【自用】
  • MES系列-报表和分析
  • 如何在分布式环境中实现高可靠性分布式锁
  • Vue基础(4)
  • Redis高阶篇之Redis单线程与多线程
  • 【C++】STL——priority_queue优先级队列
  • 大数据新视界 --大数据大厂之大数据在智慧城市建设中的应用:打造智能生活的基石
  • 使用枚举来实现策略模式
  • 区块链技术原理
  • Spring Boot 接口数据加解密
  • 2018年计算机网络408真题解析
  • Javascript 脚本查找B站限时免费番剧
  • YoloV10改进策略:主干网络改进|DeBiFormer,可变形双级路由注意力|全网首发
  • C#学习笔记(一)
  • MATLAB边缘检测
  • Tortoise SVN 安装汉化教程(乌龟SVN)
  • 深入了解Spring重试组件spring-retry
  • 海南聚广众达电子商务咨询有限公司靠谱吗怎么样?
  • Java的魔法世界:面向对象编程(OOP)是什么?
  • 软件测试笔记——接口测试
  • 东方通 TongRDS V2 配置与开机自启指南及 Spring Boot 集成
  • 在 VS Code 中调试 Tensor 形状不显示的问题及解决方案