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

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

2023年7月6日发(作者:)

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来查看默认的限制。备注:如果节点中有多个pod配置了Requests,那么后⾯分配到该节点的pod需要计算该节点是否有⾜够的资源为:节点剩下资源 = 节点总资源 - 已存在pod的Requests资源总和(n * pod)⽐如:节点可分配内存资源为2000Mi,如果需要部署nginx的内存资源为: resources: limits: cpu: "2" memory: 1700Mi requests: cpu: 100m memory: 800Mi我们扩展nginx的副本数:kubectl scale --replicas=3 deployment/nginx这时,⼀个节点只能运⾏2个nginx(2 * 800 =1600Mi),第三个nginx会运⾏于另外⼀个节点。kubectl get po -o wide -l app=nginx 19:27:59NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATESnginx-6579459fd6-7s8l2 1/1 Running 0 27m 172.20.169.181 k8s-node2 nginx-6579459fd6-sdsht 1/1 Running 1 27m 172.20.107.246 k8s-node3 nginx-6579459fd6-xrk6j 1/1 Running 0 27m 172.20.169.191 k8s-node2 原因是:虽然nginx实际没有使⽤到800Mi内存,但是requests已经把它预算在内。这种计算⽅式,也可以让你控制在⼀个节点运⾏pod的数量。参考:

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1688594178a153201.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信