kubernetes-pod分配CPU和RAM资源以及计算方法

例子:

Containers:
    cpu-ram-demo-container:
     ...
     image: busybox:latest
     resources:
       Limits:
         cpu: 1
         memory: 128Mi
       Requests:
         cpu: 250m
         memory: 64Mi

  

可以理解为:

cpu: 最多使用1个核,最低要求 250/1000 = 1/4 核 (1 = 1000m);可以使用top简单查看你的机器的cpu总共有多少个核;

memory: 最多使用128M,最低要求64 M;

CPU和RAM单元
CPU资源以cpus为单位。允许小数值。你可以用后缀m来表示mili。例如100m cpu等同于100 milicpu,意思是0.1cpu。
RAM资源以bytes为单位。你可以将RAM表示为纯整数或具有这些后缀之一的定点整数:
E, P, T, G, M, K, Ei, Pi, Ti, Gi, Mi, Ki。例如,以下代表大约相同的数值:

128974848, 129e6, 129M , 123Mi

如果你不确定需要请求多少资源,首先你可以发布应用不指定资源,使用资源监控来确定合适的值。
如果容器超出他的RAM限制,它将从内存不足状态死亡。你可以指定比你期望稍高点的值来提高可靠性。

如果你没有指定限制和请求:
如果没有指定RAM限制,Kubernetes对于容器可以使用的RAM没有上线。容器可以使用所在机器所有的可用RAM资源。类似,如果没有指定CPU限制,Kubernetes对于CPU资源没有限制,容器可以使用所在机器所有的可用CPU资源。

默认的限制应用参照默认命名空间的限制范围。你可以使用kubectl describe limitrange limits来查看默认的限制。

原文地址:https://www.cnblogs.com/weifeng1463/p/10279048.html

时间: 2024-10-17 18:25:38

kubernetes-pod分配CPU和RAM资源以及计算方法的相关文章

Kubernetes Pod概述

Pod简介 Pod是Kubernetes创建或部署的最小/最简单的基本单位,一个Pod代表集群上正在运行的一个进程. 一个Pod封装一个应用容器,Pod代表部署的一个单位. Pods提供两种共享资源:网络和存储. 网络:每个Pod被分配一个独立的IP地址,Pod中的每个容器共享网络命名空间,包括IP地址和网络端口. 存储:Pod可以指定一组共享存储volumes.Pod中的所有容器都可以访问共享volumes,允许这些容器共享数据. Pod不会自愈.如果Pod运行的Node故障,或者是调度器本身

配置Pods和containers--为Containers和Pods分配CPU资源

指定CPU请求和CPU限制 要为容器指定CPU请求,在容器资源清单中使用resources:requests字段.要指定CPU限制,使用resources:limits. cpu-request-limit.yaml 1 apiVersion: v1 2 kind: Pod 3 metadata: 4 name: cpu-demo 5 namespace: cpu-example 6 spec: 7 containers: 8 - name: cpu-demo-ctr 9 image: vish

1-2 给容器和PODS 分配CPU资源

这一小节讲述 如何对容器分配CPU资源和对CPU资源使用做限制.一个容器被保证有足够的CPU资源可以被调用,但是也不允许使用超过CPU资源的限制. 创建一个命名空间 kubectl create namespace cpu-example 定义一个CPU资源请求和CPU资源限制 资源请求resources:requests 资源限制resources:limits 在这个练习中,你创建了一个POD拥有 0.5cpu和1cpu的限制apiVersion: v1kind: Podmetadata:n

服务器为什么这么慢?耗尽了CPU、RAM和磁盘I/O资源

备注:该内容是摘自<DevOps故障排除:Linux服务器运维最佳实践>一书 系统负载 解决引起系统运行缓慢的问题时,平均系统负载可能是最先用到的基本度量标准.在排除系统运行缓慢的问题时,通常我执行的第一条命令是uptime: load average后面的3个数字2.03.20.17和15.09分别代表了1分钟.5分钟和15分钟内机器的平均负载.一个系统的平均负载等于处于运行或 者不可打扰状态进程的平均数.可运行的进程要么正在使用CPU,要么正在等待使用CPU:不可打扰状态的进程都在等待I/

kubernetes Pod 资源调度

1 概述 1 总述 API server 接受客户端提交的POD对象创建请求操作过程中,需要kube-scheduler 从当前集群中选择一个可用的最佳节点接受并运行,通常是默认调度器复制此类任务,对于每个待创建的POD来说,需要经过三个步骤.1 预选(predicate)节点预选: 基于一系列预选规则(podfitsresources 和 matchnode-selector等)对每个节点进行检查,将那些不符合条件的节点过滤.如果需要某些特殊服务,则需要通过组合节点标签,以及POD标签或标签选

详解 Kubernetes Pod 的实现原理

Pod.Service.Volume 和 Namespace 是 Kubernetes 集群中四大基本对象,它们能够表示系统中部署的应用.工作负载.网络和磁盘资源,共同定义了集群的状态.Kubernetes 中很多其他的资源其实只对这些基本的对象进行了组合. Pod 是 Kubernetes 集群中能够被创建和管理的最小部署单元,想要彻底和完整的了解 Kubernetes 的实现原理,我们必须要清楚 Pod 的实现原理以及最佳实践. 在这里,我们将分两个部分对 Pod 进行解析,第一部分主要会从

Kubernetes Pod故障归类与排查方法

Pod概念 Pod是kubernetes集群中最小的部署和管理的基本单元,协同寻址,协同调度. Pod是一个或多个容器的集合,是一个或一组服务(进程)的抽象集合. Pod中可以共享网络和存储(可以简单理解为一个逻辑上的虚拟机,但并不是虚拟机). Pod被创建后用一个UID来唯一标识,当Pod生命周期结束,被一个等价Pod替代时UID将重新生成. Kubernetes Pod中最常用Docker容器运行,当然Pod也能支持其他的容器运行,比如rkt.podman等. Kubernetes集群中的P

docker高级应用之cpu与内存资源限制

之前介绍过如何使用ovs的qos技术对docker容器做网络资源限制,本次介绍如何使用docker本身的参数进行cpu与内存资源限制. 默认docker本身提供在创建容器的时候,进行内存.swap.cpu限制,但使用起来就得有些技巧需要注意,具体如下: 1.内存限制 默认docker内存限制可以使用-m参数进行限制,但如果仅-m参数,不添加其他,那么内存限制不会限制死,比如你-m 256m内存,那么容器里程序可以跑到256m*2=512m后才会被oom给杀死, 原因是源码里memory.mems

影响K8S Pod分配和调度策略的两大关键特性

在Kubernetes中有一个最复杂的调度器可以处理pod的分配策略.基于在pod规范中所提及的资源需求,Kubernetes调度器会自动选择最合适的节点来运行pod. 但在许多实际场景下,我们必须干预调度过程才能在pod和一个节点或两个特定pod之间进行匹配.因此,Kubernetes中有一种十分强大的机制来管理及控制pod的分配逻辑. 那么,本文将探索影响Kubernetes中默认调度决定的关键特性. 节点亲和性/反亲和性 Kubernetes一向以来都是依赖label和selector来对