k8s设置pod资源请求和限制

设置资源请求和限制

实验目标:
学习如何为 Pod 设置资源请求和限制,以优化集群资源分配。

实验步骤:

  • 创建一个 Deployment,并设置 CPU 和内存的资源请求和限制。
  • 使用 kubectl describe 命令查看资源分配情况。
  • 观察资源限制对 Pod 行为的影响。

今天继续我们k8s未做完的实验:设置资源请求和限制

因为我们之前的容器都是未用yaml文件而是直接拉取镜像启动的,今天我们使用配置文件跑nginx,并设置资源请求和限制。

创建

1、创建namespace

kubectl create namespace nginx-test

2、编写yaml文件。

yaml要求:设置资源限制和请求,并指定镜像版本为1.18,

# /kubeapi/data/project4/nginx-test.yamlapiVersion: apps/v1
kind: Deployment
metadata:name: nginx-testnamespace: nginx-test
spec:replicas: 1  #设置1个副本运行selector:matchLabels:app: nginx-testtemplate:metadata:labels:app: nginx-testspec:containers:- name: nginx-testimage: nginx:1.18resources:requests:  #容器所需的最少资源memory: "4Mi"  #请求4MiB内存cpu: "2m"  #请求250m CPU(0.0002个CPU核)limits:  #容器可以使用的最大资源memory: "8Mi" #限制为8MiB内存cpu: "4m" #限制为500m CPU(0.0004个CPU核)ports:- containerPort: 80 #容器端口映射,暴露80端口

pod启动并运行成功

在这里插入图片描述

3、验证

在这里插入图片描述


测试资源限制

由于nginx的性能过于强悍。目前又并未安装 Prometheus监控,单纯采用脚本去模拟并发连接,对于设置的资源限制一直控制不好量。模拟并未有明显的结果。还在寻求其他办法。 后续有等装了监控后看效果图会更加明显一点


扩展

除了在容器创建时的yaml文件中指定资源限制,在namespace中也可以这么做。这样的话每个运行在此namespace中的容器将自动限制资源使用

1、ResourceQuota

ResourceQuota 允许限制命名空间中可用的资源总量,如CPU、内存、存储以及Pod的数量等。通过设置ResourceQuota,可以确保一个命名空间不会超出分配的资源配额。

apiVersion: v1
kind: ResourceQuota
metadata:name: qt-quotanamespace: qt-name
spec:hard:pods: "10"requests.cpu: "2"requests.memory: "2Gi"limits.cpu: "4"limits.memory: "4Gi"

2、LimitRange

LimitRange 允许为命名空间中的Pod和容器设置默认的资源请求和限制。可以确保新创建的Pod和容器具有合理的资源限制。

apiVersion: v1
kind: LimitRange
metadata:name: qt-limitsnamespace: qt-name
spec:limits:- default:cpu: "500m"memory: "256Mi"defaultRequest:cpu: "250m"memory: "128Mi"type: Container

3、示例

创建命名空间

kubectl create namespace qt-name

应用 ResourceQuota

kubectl apply -f resource-quota.yaml

应用 LimitRange

kubectl apply -f limit-range.yaml

创建实列验证

kubectl create deployment qt-nginx -n qt-name --image nginx:alpine --replicas=3

在这里插入图片描述

查看命名空间中的 ResourceQuotaLimitRange 配置

kubectl get resourcequota -n qt-name

在这里插入图片描述
这和我们上述限制的,资源要求是一致的

查看容器内的资源限制情况
在这里插入图片描述

上述实验可知通过设置 ResourceQuotaLimitRange,可以有效地管理和控制命名空间中的资源使用情况,确保资源的合理分配和使用。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全球首个数字人开源了

DUIX(Dialogue User Interface System)是硅基智能打造的AI数字人智能交互平台。通过将数字人交互能力开源,开发者可自行接入多方大模型、语音识别(ASR)、语音合成(TTS)能力,实现数字…

Chrome Tracing flow event demo

Chrome Tracing flow event demo 1.效果2.解释3.代码 Chrome Tracing flow event demo 1.效果 2.解释 cpu_op 为host上的opkernel 为device上的kernel标记一条线 {"ph": "s", "id": 13, "pid": 1, "tid": 100, "ts&qu…

【Containerd】Containerd接入Harbor仓库

说明 在日常使用容器时,安全方便起见一般都会使用到私有仓库,一般都是采用 harbor 作为私有仓库,docker 对接 harbor 仓库非常简单,那么 containerd 如何对接 harbor 呢? 在内网使用 harbor 根据个人习惯&#xff0c…

eNSP中ACL访问控制表的配置和使用

一、拓扑图 1.新建拓扑图 2.PC端配置 PC1: PC2: PC3: 二、基本命令配置 1.S1配置 <Huawei>system-view [Huawei]sysname S1 [S1]vlan 10 [S1-vlan10]vlan 20 [S1-vlan20]vlan 30 [S1-vlan30]quit [S1]interface Vlanif 10 [S1-Vlanif10]ip address 192.168.10…

Gradle学习-2 Groovy

1、Groovy基础语法 1.1、基本数据类型 Groovy支持数据类型&#xff1a;byte, short, int, long, float, double, char &#xff08;1&#xff09;创建一个Android Studio项目 &#xff08;2&#xff09;在根目录新建一个 leon.gradle&#xff0c;输入以下内容 leon.gradle…

Ansible自动化运维,(1)模块

ansible是基于Python语言实现的&#xff0c;模块化&#xff1a;调用特定的模块完成特定的任务&#xff0c;支持自定义模块&#xff0c;可使用任何编程语言写模块(账号&#xff0c;软件等)。部署简单&#xff0c;基于python和SSH&#xff0c;相对安全&#xff0c;基于OpenSSH。 …

高考填报志愿,为何要优先考虑个人兴趣 ?

随着高考成绩纷纷出炉&#xff0c;考生又要面对人生另外一个重要的选择&#xff0c;那便是填报志愿&#xff0c;这关系到自己能否进入满意的学校和专业。如果考生对上述两个方面都不满意&#xff0c;那高考目的就没有达到。既然填报志愿如此重要&#xff0c;考生和家长在选择的…

软件构造 | Design Patterns for Reuse and Maintainability

Design Patterns for Reuse and Maintainability &#xff08;面向可复用性和可维护性的设计模式&#xff09; Open-Closed Principle (OCP) ——对扩展的开放&#xff0c;对修改已有代码的封 Why reusable design patterns A design… …enables flexibility to change …

Nuxt3 [Vue warn]: Hydration node mismatch:【解决方案】

[Vue warn]: Hydration node mismatch: 水合节点不匹配 Server rendered element contains more child nodes than client vdom. 服务器呈现的元素包含的子节点多于客户端vdom。 这个问题解决起来也很好解决&#xff0c;看这个问题是怎么出来的&#xff0c;看代码&#xff1a;…

暗影精灵8Pro声音没有了,这个方法可以解决,亲测有效!

这个OMEN by HP Gaming Laptop 16-k0xxx Windows 10 Sound Driver Mod &#xff0c;真的解决了我的大问题&#xff01; 如果你的暗影精灵8 Pro酷睿版突然变得哑巴了&#xff0c;扬声器和麦克风都发不出声音&#xff0c;那可能是声卡驱动出了问题。 别担心&#xff0c;我也是个…

eNSP中三层交换机的配置和使用

一、拓扑图 1.新建拓扑图 2.PC端配置 PC1: PC2&#xff1a; 二、基本命令配置 1.S1配置 <Huawei>system-view [Huawei]sysname S1 [S1]vlan 10 //在交换机 S1 上创建 VLAN 10 [S1-vlan10]vlan 20 // 在交换机 S1 上创建 VLAN 20 [S1-vlan20]quit //退出 VLAN 配置…

舆论中心的《黑神话:悟空》:人们总希望,这只猴子能打破些什么

距离《黑神话&#xff1a;悟空》上线还有60天。外界关于游戏的争议有很多&#xff0c;但游戏科学却很少出来回应什么。 6月9日&#xff0c;博主兲虎发文称&#xff0c;《黑神话&#xff1a;悟空》之所以在发布宣传视频后&#xff0c;一直遭受到所谓性别歧视的攻击与污蔑&#…

短视频营销系统小程序源码

开启全新营销时代 &#x1f3a5;一、引言&#xff1a;短视频营销微信小程序&#xff0c;营销新风尚 在数字化时代&#xff0c;短视频以其直观、生动的特点迅速崛起&#xff0c;成为用户获取信息、娱乐消遣的重要渠道。而短视频营销微信小程序则是将短视频与微信营销完美结合&…

解决node: bad option: -V

出现这个问题是由于我们的不当操作造成的&#xff0c;v是需要小写的&#xff0c;看下图 node --version node -v

缓存双写一致性(笔记)

缓存更新方案 旁路缓存模式 这是比较多的 旁路缓存模式&#xff1a;缓存有就返回&#xff0c;没有数据库查询&#xff0c;放入缓存返回。 还有些常用缓存策略 读穿透模式 读穿透和旁路很相似&#xff0c;程序不需要关注从哪里读取数据&#xff0c;它只需要从缓存查询数据。…

从概念到现实:数字孪生技术在智慧充电站的实践

在电动汽车蓬勃发展的今天&#xff0c;充电基础设施的智能化升级成为了推动新能源汽车产业跃进的关键一环。数字孪生技术&#xff0c;作为智能制造和工业4.0的核心&#xff0c;正在逐渐渗透到智慧充电站的每一个角落——从提高能源效率到增强用户体验&#xff0c;为智慧充电站的…

强化学习-RLHF-PPO入门

一、定义 强化学习微调分类RM模型 数据集格式训练流程Reward 模型训练流程(分类模型&#xff0c;积极为1&#xff0c;消极为0) AutoModelForSequenceClassificationReward 模型训练案例PPO模型训练流程PPO模型训练案例 二、实现 强化学习微调分类 RLHF:基于人类反馈对语言模型…

机器学习之数学基础(七)~过拟合(over-fitting)和欠拟合(under-fitting)

目录 1. 过拟合与欠拟合 1.1 Preliminary concept 1.2 过拟合 over-fitting 1.3 欠拟合 under-fitting 1.4 案例解析&#xff1a;黑天鹅 1. 过拟合与欠拟合 1.1 Preliminary concept 误差 经验误差&#xff1a;模型对训练集数据的误差。泛化误差&#xff1a;模型对测试…

RabbitMQ 消息传递

消息何去何从 mandatory和immediate是channel.basicPublish方法中的两个参数&#xff0c;他们都有当消息传递过程中不可达目的地时将消息返回给生产者的功能。RabbitMQ提供的备份交换器可以将未能被交换器路由的消息&#xff08;没有绑定队列或者没有匹配的绑定&#xff09;存…

学习C++第三天——对引用的深入了解

引用 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空 间&#xff0c;它和它引用的变量共用同一块内存空间。 一个变量可以有多个引用&#xff1a; int main() {//一个变量可以有多个引用int a 10;int& b …