Kubernetes Pod 资源申请request与限制limit

我们知道使用容器的一个优点是可以控制每个容器使用资源的大小,docker 提供了参数来控制 cpu 和内存的使用,pod 也同样,但仍然是容器级别的,需要对 pod 的每个容器做设置。在之前的例子中,我们没有设置这个字段,表示默认是不限制的。但是在一般的使用中,还是要限制的。

Pod 中的资源限制也主要是针对 cpu 和 内存。与 docker 不同的是,它提供了 requests 和 limits 两个设置。具体的含义为:

  • requests:pod 运行所需要的最少资源。例如 kubernetes 在调度 pod 时,就是以这个设置来挑选 node
  • limits: pod 运行的资源上限。也就说,超过这个 limits, pod 会被 kill 掉。

文件名:pod-request-limit.yaml

apiVersion: v1
kind: Pod
metadata:
  name: pod-request-limit
spec:
  containers:
  - name: busybox
    image: busybox
    imagePullPolicy: IfNotPresent
    command: ['sh', '-c', 'echo Hello Kubernetes! && sleep 3600']
    resources:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
        memory: "128Mi"
        cpu: "500m"

注: cpu 仅支持 1 或者 500m 这样的写法。500m = 0.5(核)。内存有很多单位,都是我们常用的。具体有哪些可用在使用时查看官方文档即可。

在命令行中执行如下命令用 kubectl 创建:

kubectl create -f /share/lesson/kubernetes/pod-request-limit.yaml

这个 pod 明确设置了 requests 和 limits, 并且 requests <= limits。我们看下运行结果(等到运行中):

kubectl describe po pod-request-limit

这里我们要介绍一个 kubectl 的命令,叫 describe。 它与 get 类似,都是查看某个资源的信息,但是包含的信息更多。它重新排版了资源的 yaml, 凸显了重要信息,并且将这个资源创建以来的事件信息也展示出来了,在排查问题时很有用。

我们可以在这里以更直观的方式看到 pod 的信息以及 events。

移动端设备除iPad Pro外,其它移动设备仅能阅读基础的文本文字。
建议使用PC或笔记本电脑,浏览器使用Chrome或FireFox进行浏览,以开启左侧互动实验区来提升学习效率,推荐使用的分辨率为1920x1080或更高。
我们坚信最好的学习是参与其中这一理念,并致力成为中文互联网上体验更好的学练一体的IT技术学习交流平台。
您可加QQ群:575806994,一起学习交流技术,反馈网站使用中遇到问题。
内容、课程、广告等相关合作请扫描右侧二维码添加好友。

狐狸教程 Copyright 2021

进入全屏