命名空间中运行的容器使用的内存的最小值和最大值。 你可以在 LimitRange 对象中指定最小和最大内存值。如果 Pod 不满足 LimitRange 施加的约束,则无法在命名空间中创建它。

  • 创建namespace

kubectl create namespace test
  • 编写LimitRange 对象文件

    
    apiVersion: v1
    kind: LimitRange
    metadata:name: mem-min-demonamespace: test
    spec:limits:- max:memory: 1Gimin:memory: 500Mitype: Container

    可以看到内存的最大限制是1GB,最小请求500MB

注:如果不知道apiVersion版本,可以使用一下命令查看 kubectl  explain limitrange

[root@master-2-4 kubernetes]# kubectl explain limitrange
KIND:     LimitRange
VERSION:  v1DESCRIPTION:LimitRange sets resource usage limits for each kind of resource in aNamespace.FIELDS:apiVersion   <string>APIVersion defines the versioned schema of this representation of anobject. Servers should convert recognized schemas to the latest internalvalue, and may reject unrecognized values. More info:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resourceskind <string>Kind is a string value representing the REST resource this objectrepresents. Servers may infer this from the endpoint the client submitsrequests to. Cannot be updated. In CamelCase. More info:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kindsmetadata     <Object>Standard object's metadata. More info:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadataspec <Object>Spec defines the limits enforced. More info:https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
  • 使用pod测试
  1. 尝试创建一个超出内存限制的pod
apiVersion: v1
kind: Pod
metadata:name: nginxnamespace: test
spec:containers:- name: nginximage: nginx:1.20imagePullPolicy: IfNotPresentresources:limits:memory: 1800Mirequests:memory: 500Mi
[root@master-2-4 kubernetes]# kubectl apply -f nginx.yaml
Error from server (Forbidden): error when creating "nginx.yaml": pods "nginx" is forbidden: maximum memory usage per Container is 1Gi, but limit is 1800Mi

输出结果显示 Pod 没有创建成功,因为容器声明的内存限制太大了

2. 尝试创建一个小于内存限制的pod

apiVersion: v1
kind: Pod
metadata:name: nginxnamespace: test
spec:containers:- name: nginximage: nginx:1.20imagePullPolicy: IfNotPresentresources:limits:memory: 600Mirequests:memory: 300Mi
[root@master-2-4 kubernetes]# kubectl apply -f nginx.yaml
Error from server (Forbidden): error when creating "nginx.yaml": pods "nginx" is forbidden: minimum memory usage per Container is 500Mi, but request is 300Mi

输出结果显示 Pod 没有创建成功,因为容器声明的内存请求太小了

设置内存最小和最大限制的动因

作为集群管理员,你可能想规定 Pod 可以使用的内存总量限制。例如:

  • 集群的每个节点有 2 GB 内存。你不想接受任何请求超过 2 GB 的 Pod,因为集群中没有节点可以满足。
  • 集群由生产部门和开发部门共享。允许产品部门的负载最多耗用 8 GB 内存, 但是开发部门的负载最多可使用 512 MiB。 这时,可以为产品部门和开发部门分别创建名字空间,并为各个名字空间设置内存约束。

k8s中配置namespace的最小和最大内存相关推荐

  1. 容器编排技术 -- Kubernetes 为 Namespace 设置最小和最大内存限制

    容器编排技术 -- Kubernetes 为 Namespace 设置最小和最大内存限制 1 Before you begin 2 创建一个 namespace 3 创建一个 LimitRange 和 ...

  2. 【Android FFMPEG 开发】Android Studio 中 配置 FFMPEG 库最小兼容版本 ( undefined reference to 'atof' )

    文章目录 FFMPEG 最小兼容版本 注意事项 FFMPEG 最小兼容版本 注意事项 1 . 最小兼容版本 : 在 Ubuntu 中编译 FFMPEG 时 , 需要指定头文件 与 NDK 的依赖库 , ...

  3. 在 k8s 中配置域名解析

    在应用开发中,我们不应把远程服务的 ip 硬编码到应用中.有些同学习惯使用域名来标定远程服务,通过修改解析,来区分开发测试和生产环境,这是一个挺好的习惯. 在 k8s 系统中,我们使用服务名来调用服务 ...

  4. 容器编排技术 -- Kubernetes 在 Namespace 中配置默认的CPU请求与限额

    容器编排技术 -- Kubernetes 在 Namespace 中配置默认的CPU请求与限额 1 Before you begin 2 创建一个命名空间 3 创建一个LimitRange和一个Pod ...

  5. k8s中namespace资源讲解

    前言 环境:centos7.9 docker-ce-20.10.9 kubernetes-version v1.22.6 什么是namespace namespace是kubernetes系统中的一种 ...

  6. K8S中如何跨namespace 访问服务?为什么ping不通ClusterIP?

    1.K8S中如何跨namespace 访问服务? 2.在Pod中为什么ping不通ClusterIP? 简述: Rancher2.0中的一个用户,在K8S环境中,创建两个namespace,对应用进行 ...

  7. 【K8S实战系列-nignx-2】k8s中configmap挂载配置nginx.conf

    [K8S实战系统-nignx-2]k8s中configmap挂载配置nginx.conf 1. ConfigMap是什么 ConfigMap作用是存储不加密的数据到etcd中,让Pod以变量或数据卷V ...

  8. kubernetes(三)k8s中通信和Service

    目录 1.同一个Pod中的容器通信 2.集群内Pod之间的通信 3 集群内Service-Cluster IP 4.外部服务访问集群中的Pod 4.1 Service-NodePort 4.2.Ser ...

  9. 关于K8s中资源配置范围管理(LimitRange)的一些笔记

    写在前面 分享一些 K8s 中 LimitRange 的笔记 博文内容涉及: LimitRange 简单介绍 LimitRange 资源对象创建使用 准入检查和资源约束的一些 Demo 理解不足小伙伴 ...

最新文章

  1. pycharm 在ubuntu18.04 20.04以上保存在侧边栏的方法
  2. Mac-远程连接Mac
  3. C++实现的简单vector
  4. verdi使用linux命令,verdi工具的使用
  5. python编程入门经典实例-终于明了python入门经典实例
  6. 掌握 Ajax,第 10 部分: 使用 JSON 进行数据传输
  7. 11种必知的word embeddings模型
  8. boost::callable_traits的return_type_t的测试程序
  9. Recovery Rate违约后可回收比率
  10. 飞利浦弃意已决 冠捷顺势接手
  11. django 1.8 官方文档翻译:8-5 加密签名
  12. sort,uniq,wc指令简单用法
  13. 真正的大学老师,是那些无需打卡和考评,也会不可遏止地要去读书写作和上课的人...
  14. 关于RTB实时竞价的基本原理
  15. MyBatis官方文档——入门部分
  16. 【UV打印机】RYPC打印软件教程(一)-软件简介
  17. html%2b怎么转换成加号,url 参数的加号变成空格处理
  18. c语言intmain作用,c语言intmain()是什么意思
  19. 智能健身房风靡全国,但有90%的人却掉进“伪智能”陷阱!
  20. 计算机私密相册安全吗,手机照片到底藏在哪里才不会被别人随便就翻看到

热门文章

  1. 软件开发时,比较好的辅助软件推荐
  2. STEP标准描述方法-EXPRESS语言
  3. kali下载速度慢_Linux系统软件安装更新下载太慢解决方法(转载)
  4. 解决 Adobe Acrobat Pro DC更新后提示登录激活问题
  5. MultipartFile 上传文件工具类
  6. java 使用LocalDate根据起始时间和结束时间算出周的列表
  7. 问题解决:java.lang.IllegalArgumentException: character to be escaped is missing
  8. 【模电】习题知识点总结(持续更新ing)
  9. 微信电脑端双击不能放大图片怎么回事_IOS 微信 聊天双击放大图片操作
  10. lisp语言如何画小红点_用AutoLISP语言编程实现参数化绘图