Kubernetes实战(二十九)-集群资源管理(CPU & Memory)

Kubernetes 是一个容器集群管理平台,需要统计整体平台的资源使用情况,合理地将资源分配给容器使用,并且要保证容器生命周期内有足够的资源来保证其运行,这些资源可以被分成两种不同的情形:期望情形(规格)和当前情形(状态)。资源需求和资源容量可被认为是规格(期望情形),资源使用可被认为是状态(当前情形)。Kubernetes 调度器可以利用这两种情形来推断节点容量,资源需求等。

我们可以用术语“限额”和“请求”来描述资源的规格:

  • 请求:一个容器请求的资源数量。如果一个容器超过了它的资源请求,它可能会被压制回到它的请求数;
  • 限额:容器能使用的资源上限。当容器尝试超过它的限额时,如果 Kubernetes 决策发现另一个容器需要资源,那么当前容器会被终结掉。一般来说保持所有容器的资源限额之和等于你的集群的整个资源容量才是有意义的(但是实际上对内存等不可压缩资源,这是有点难做到的)。

创建 Pod 的时候,可以指定资源限制(目前支持的资源类型有CPU和内存),即指定每个容器的资源请求(Request)和资源限制(Limit),资源请求是容器所需的最小资源需求,资源限制则是容器不能超过的资源上限,以下给出某个Pod申请内存及CPU的示例:

[root@master ~]# cat tomcat.yaml
apiVersion: v1
kind: Pod
metadata:
  labels:
    name: tomcat
  name: tomcat
spec:
  containers:
    - name: tomcat
      image: tomcat:latest
      resources:
        requests:
          memory: "256Mi"
          cpu: "500m"
        limits:
          memory: "512Mi"
          cpu: "1000m"

上述编排文件示例中对 Pod 的 Memery 限制在 256MB ~ 512MB 之间,Cpu 限制在 0.5 ~ 1 个 CPU 之间。

到此集群资源管理(CPU & Memory)介绍完成。

你可能感兴趣的:(Kubernetes实战,kubernetes)