k8s-对命名空间资源配额

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

用的k8s对象就是ResourceQuota

一:创建命名空间

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

二: 对命名空间进行限制

创建resourcequota

vim resourcequota.yaml

apiVersion: v1
kind: ResourceQuota               #定义配额资源   ResourceQuota
metadata:
  name: quota-test
  labels:
    app: quota
  namespace: test            #指定想要限制那个命名空间
spec:
  hard:                           #硬限制
    pods: "3"                     #pod最多创建3个
    count/deployments.apps: "1"   #deploy资源最多创建1个
    cpu: 5                        #cpu 下限总和5核 对比 container.resource下面的request.memory
    memory: 5Gi                   #内存  下限总和5Gi 对比 container.resource下面的request.memory
    limits.cpu: 10                #cpu 上限10核 对比 container.resource下面的limit.cpu
    limits.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: test
  name: quota-deploy
spec:
  selector:
    matchLabels:
      app: test
  replicas: 2       # 副本数设置为 2
  template:
    metadata:
      labels:
        app: test
    spec:
      containers:
      - name: pod-quota
        image: 192.168.8.99/web/nginx:1.20
        imagePullPolicy: IfNotPresent
        resources:
          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. 安全性增强:减少因资源滥用导致的系统不稳定或安全风险

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/894117.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Javaweb的医院挂号预约管理系统

系统展示 用户前台界面 管理员后台界面 医生后台界面 系统背景 在现代社会,随着医疗需求的不断增长,病患挂号成为医院面临的一大挑战。传统的挂号方式不仅耗时耗力,还容易引发混乱和不满。病患需要排队等候,挂号过程繁琐&#xff…

Nginx(Linux):启动停止Nginx

目录 1、理解Nginx后台进程2、停止Nginx(方式一:使用信号源)2.1 获取master进程号2.1 设置信号源 3、停止Nginx(方式二:使用命令行) 1、理解Nginx后台进程 Nginx后台进程包含master和worker两类进程。 master进程:主要用来管理worker进程&am…

Docker 教程四 (Docker 镜像加速)

Docker 镜像加速 国内从 DockerHub 拉取镜像有时会遇到困难,此时可以配置镜像加速器。 目前国内 Docker 镜像源出现了一些问题,基本不能用了,后期能用我再更新下。* Docker 官方和国内很多云服务商都提供了国内加速器服务,例如…

C++ | Leetcode C++题解之第479题最大回文数乘积

题目: 题解: class Solution { public:int largestPalindrome(int n) {if (n 1) {return 9;}int upper pow(10, n) - 1;for (int left upper;; --left) { // 枚举回文数的左半部分long p left;for (int x left; x > 0; x / 10) {p p * 10 x %…

Maxwell 底层原理 详解

Maxwell 是一个 MySQL 数据库的增量数据捕获(CDC, Change Data Capture)工具,它通过读取 MySQL 的 binlog(Binary Log)来捕获数据变化,并将这些变化实时地发送到如 Kafka、Kinesis、RabbitMQ 或其他输出端。…

信息搜集 --前端js打点

前端js打点 什么是js渗透测试 在Javascript中也存在变量和函数,当存在可控变量及函数调用即可参数漏洞JS开发的WEB应用和PHP,JAVA,NET等区别在于即没有源代码,也可以通过浏览器的查看源代码获取真实的点。获取URL,获取Js敏感信息&…

永磁同步电机控制算法--非线性自抗扰NLADRC转速环控制器(1)

一、原理介绍 ADRC由跟踪微分器(TD)、扩张状态观测器(ESO)和非线性状态误差反馈控制律(NLSEF)三部分组成。 其中SMC-LSEF表达式为: e3v1-z1u0ζsign(s)-ks-ce3u(u0-z2)/b 二、仿真验证 在MATLAB/simulink里面验证所提算法,采用和实验中一致的控制周期1e-4&#…

Navigation2 算法流程

转自 https://zhuanlan.zhihu.com/p/405670882 此文仅作学习笔记 启动流程 在仿真环境中启动导航包的示例程序,执行nav2_bringup/bringup/launch/tb3_simulation_launch.py文件。ROS2的launch文件支持采用python语言来编写以支持更加复杂的功能,本文件…

性能测试工具JMeter

本次使用的博客系统的url: http://8.137.19.140:9090/blog_edit.html 1. JMeter介绍 环境要求:要求java,jdk版本大于8; Apache JMeter 是 Apache 组织基于 Java 开发的压⼒测试⼯具,⽤于对软件做性能测试&#xff1b…

请问:ESModule 与 CommonJS 的异同点是什么?

前言 本篇文章不会介绍模块的详细用法,因为核心是重新认识和理解模块的本质内容是什么,直奔主题,下面先给出最后结论,接下来在逐个进行分析。 ECMAScript Module 和 CommonJS 的相同点: 都拥有自己的缓存机制&#…

分布式链路追踪原理:

我的后端学习大纲 SpringCloud学习大纲 假定三个微服务调用的链路如下图所示:Service 1 调用 Service 2,Service 2 调用 Service 3 和 Service 4 1、完整的调用链路: 1.1.原理分析: 1.那么一条链路追踪会在每个服务调用的时候加…

在PC端使用微信浏览器的调试功能

首先&#xff0c;此功能只限自己开发网页&#xff0c;其次&#xff0c;这是为了帮助使用了微信的相关JS SDK功能&#xff0c;比如微信登录&#xff0c;在不方便使用电脑上的浏览器时使用的的。 方法&#xff1a; 在网页中插入 <script src"https://unpkg.com/vconso…

Java根据word 模板,生成自定义内容的word 文件

Java根据word 模板&#xff0c;生成自定义内容的word 文件 背景1 使用技术2 实现方法依赖啊 3 问题4 背景 主要是项目中需要定制化一个word&#xff0c;也就是有一部分是固定的&#xff0c;就是有一个底子&#xff0c;框架&#xff0c;里面的内容是需要填充的。然后填充的内容…

WPF常见容器全方位介绍

Windows Presentation Foundation (WPF) 是微软的一种用于构建Windows桌面应用程序的UI框架。WPF的布局系统基于容器&#xff0c;帮助开发者以灵活、响应的方式组织用户界面 (UI) 元素。本篇文章将详细介绍WPF中几种常见的容器&#xff0c;包括Grid、StackPanel、WrapPanel、Do…

基于51单片机的proteus数字时钟仿真设计

注意&#xff1a;本项目是本人大学时期的课设项目&#xff0c;不得在未经本人允许下进行转载或商用 数字钟设计 项目背景与意义 在信息化时代&#xff0c;时间管理成为了我们日常生活中不可或缺的一部分。数字钟作为一种常见的时间显示设备&#xff0c;因其精确、直观、易读等…

如何捕捉行情爆发的前兆

在金融市场的激烈角逐中&#xff0c;每一次行情的爆发都是投资者获取丰厚回报的关键时刻。然而&#xff0c;如何识别并把握这些时刻&#xff0c;却是一门需要深厚金融专业知识和敏锐洞察力的艺术。今天&#xff0c;我们就来深入探讨行情爆发的初期信号&#xff0c;揭示那些能够…

Jlink 直接读取单片机数据

1. 驱动版本 因人而异&#xff0c;这里我使用的是 “J-Flash V6.96” 本人驱动链接&#xff1a;夸克网盘 提取码&#xff1a;rgzk 2. 打开软件 3. 创建jlink工程 4. 选择芯片 此处本人使用芯片 “STM32F103VCT6” 5. 连接单片机 连接成功反馈 6. 读取单片机内部数据 …

【2024|FTransUNet|论文解读1】融合视界:解密FTransUNet在遥感语义分割中的创新突破

【2024|FTransUNet|论文解读1】融合视界&#xff1a;解密FTransUNet在遥感语义分割中的创新突破 【2024|FTransUNet|论文解读1】融合视界&#xff1a;解密FTransUNet在遥感语义分割中的创新突破 文章目录 【2024|FTransUNet|论文解读1】融合视界&#xff1a;解密FTransUNet在遥…

web 0基础第四节 多媒体标签

图片标签 主要是讲解 在html 中 怎么将图片放入其中 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <meta name"viewport" content"widthdevice-width, initial-scale1.0"> <…

Django模型优化

1、创建一个Django项目 可参考之前的带你快速体验Django web应用 我使用的是mysql数据库。按照上述教程完成准备工作。 2、创建一个app并完成注册 demo主要来完成创建用户、修改用户、查询用户、删除用户的操作。 python manage.py startapp test0023、app的目录 新建templ…