广告

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

  • 浏览(1,857)
  • 评论(0)
  • 译者:k8s

接上篇,如何给运行在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 与深度学习的最佳实践

最新   KubeCon欧洲大会前沿话题

最干 K8S1.6和1.7特性解析干货

22日 ,最大、最新、最热的K8S话题分享,

K8S GeekGathering 2017首场

极客大趴华丽来袭!

PS.

 不能来到现场的朋友

后台留言微信号可分享嘉宾演讲PPT!

K8S技术社区当前有两大技术推广平台,K8S技术社区官方网站(www.k8s.cn)和K8S技术社区微信公众平台(kubernetescn),我们欢迎广大K8S技术同好们关注支持,也希望集合K8S技术极客进群交流(筒子们后台留言微信号!),有任何建议或问题都可以随时与我们取得沟通(admin@k8s.cn),感谢支持!

 


  • 分享到:
  • icon
  • icon
  • icon
  • icon
箭头