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来查看默认的限制。