文档解读 | K8S中的Pod和容器配置(二)

了解如何在Kubernetes中为Pod内的容器指定CPU和RAM资源请求及限制,确保资源合理分配,避免过度消耗,提升系统稳定性和效率。

接上篇,如何给运行在Kubernetes Pod中的容器分配CPU和RAM资源?    


给运行在Kubernetes Pod中的容器分配CPU和RAM资源

开始之前

必须有一个Kubernetes集群,和一个能和集群沟通的kubectl命令行工具。如果你还没有集群,你可以用Minikube建立一个集群。

给容器分配CPU和RAM资源

当创建一个Pod的时候,你可以为运行在Pod中的容器请求CPU和RAM资源。你还可以设置CPU和RAM资源的限制。请求CPU和RAM资源,在配置文件里面包含resources:rquests字段。设置CPU和RAM限制包含resource:limits字段。如果节点上具有足够的CPU和RAM资源可用于所有容器要求的CPU和RAM总和,Kubernetes将把Pod调度在上面。同样当容器运行在节点上时,Kubernetes不允许容器消耗的CPU和RAM资源超出指定的容器的限制。如果容器超出他的RAM限制,他将结束。如果CPU超出限制,他将成为CPU节流的候选者。

在本次练习,创建一个运行了一个容器的Pod。Pod的配置文件请求250milicpu和64 mebibytes RAM。同样设置上线为1cpu和128 mebibytes RAM。下面是这个Pod的配置文件:

apiVersion: v1

kind: Pod

metadata:

name: cpu-ram-demo

spec:

containers:

– name: cpu-ram-demo-container

image: gcr.io/google-samples/node-hello:1.0

resources:

requests:

memory: “64Mi”

cpu: “250m”

limits:

memory: “128Mi”

cpu: “1”

1.创建一个Pod基于YAML配置文件:

kubectl create -f http://k8s.io/docs/tasks/configure-pod-container/cpu-ram.yaml

2.显示pod信息:

kubectl describe pod cpu-ram-demo

输出类似于:

Name: cpu-ram-demo

Containers:

cpu-ram-demo-container:

Limits:

cpu: 1

memory: 128Mi

Requests:

cpu: 250m

memory: 64Mi

了解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限制,它将从内存不足状态死亡。你可以指定比你期望稍高点的值来提高可靠性。

如果指定了请求(request),则保证了可以使用的资源。有关资源的限制和请求可以参考Resource QoS。

如果你没有指定限制和请求

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

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

关于为什么要指定限制的相信信息,参考 Setting Pod CPU and Memory Limits。

关于如果没有指定CPU和RAM资源请求的发生情况,参考Resource Requests and Limits of Pod and Container。

本文转移K8S技术社区-文档解读 | K8S中的Pod和容器配置(二)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值