Resource Quotas

Kubernetes 提供我们Resource Quotas元件让Kubernetes 的管理者,不只能限制每个container 能存取的资源多寡,同时也能透过与Namespaces的搭配限制每个团队能使用的总资源。

什么是Resource Quotas?

每一个container 都可以有属于它自己的resource request与resource limit,我们在设定档中加入spec.resources.requests.cpu要求该container 运行时需要多少CPU 的资源。而 Kubernetes 会透过设定的 resource request 去决定把 Pod 分配到哪个 Node 上。

我们也可以将resource request视为该Pod 最小需要的资源.

以helloworld-deployment.yaml为例,

apiVersion: apps/v1beta2
kind: Deployment
metadata:
  name: helloworld-deployment
spec:
  replicas: 2
  selector:
    matchLabels:
      app: helloworld-pod
  template:
    metadata:
      labels:
        app: helloworld-pod
    spec:
      containers:
      - name: my-pod
        image: zxcvbnius/docker-demo:latest
        ports:
        - containerPort: 3000
        resources:
          requests:
            cpu: 200m
          limits:
            cpu: 400m

spec.resources.limits.cpu 该栏位代表,这个container 最多能使用的cpu 的资源为400m 等同于400milicpu(milicore)

若是透过kubectl create 创建hello-deployment,可以从Grafana发现多了limit,

除了可以针对CPU与Memory等计算资源限制之外,也可以限制

configmaps persistentvolumesclaims pods replicationscontrollers resourcequotas services services.loadbalancer secrets 等资源数量上的限制。

Tags: Kubernetes
Share: X (Twitter) Facebook LinkedIn