Kubernetes限制了测试环境中对kube系统的CPU请求。

时间:2018-06-30 14:40:12

标签: kubernetes google-kubernetes-engine

我有6个具有单核和kube系统吊舱的google节点,它们占用过多的CPU。

  default                    scylla-2                                            200m (21%)    500m (53%)  1Gi (38%)        1Gi (38%)
  kube-system                fluentd-gcp-v2.0.9-p9pvs                            100m (10%)    0 (0%)      200Mi (7%)       300Mi (11%)
  kube-system                heapster-v1.4.3-dcd99c9f8-n6wb2                     138m (14%)    138m (14%)  301856Ki (11%)   301856Ki (11%)
  kube-system                kube-dns-778977457c-gctgs                           260m (27%)    0 (0%)      110Mi (4%)       170Mi (6%)
  kube-system                kube-dns-autoscaler-7db47cb9b7-l9jhv                20m (2%)      0 (0%)      10Mi (0%)        0 (0%)
  kube-system                kube-proxy-gke-scylla-default-pool-f500679a-7dhh    100m (10%)    0 (0%)      0 (0%)           0 (0%)
  kube-system                kubernetes-dashboard-6bb875b5bc-n4xsm               100m (10%)    100m (10%)  100Mi (3%)       300Mi (11%)
  kube-system                l7-default-backend-6497bcdb4d-cncr4                 10m (1%)      10m (1%)    20Mi (0%)        20Mi (0%)
  kube-system                tiller-deploy-dccdb6fd9-7hd2s                       0 (0%)        0 (0%)      0 (0%)           0 (0%)

是否有简单的方法可以将所有kube系统吊舱的CPU请求/限制降低10倍?

我知道需要内存才能正常运行,但可以降低CPU的使用率,而不会对开发环境造成任何重大影响。如果DNS的工作速度慢10倍,会发生什么情况?单系统dns pod的27%的节点太多。

2 个答案:

答案 0 :(得分:1)

作为对等体the documentation要为容器指定CPU请求,请在容器的资源清单中包含 resources:requests 字段。要指定CPU限制,请包括 resources:limits (参见以下示例):

apiVersion: v1
kind: Pod
metadata:
  name: cpu-demo
  namespace: cpu-example
spec:
  containers:
  - name: cpu-demo-ctr
    image: vish/stress
    resources:
      limits:
        cpu: "1"
      requests:
        cpu: "0.5"
    args:
    - -cpus
    - "2"

在GCP Kubernetes中,一个cpu等效于:1个GCP Core。 Pod的CPU限制是Pod中所有容器的CPU限制的总和。

Pod调度基于请求。仅当节点具有足够的可用CPU资源来满足Pod的CPU请求时,该Pod才计划在该节点上运行。

答案 1 :(得分:0)

您可以创建默认的cpu-request-limit manifest并将其应用于kube-system命名空间:

现在,如果在kube-system命名空间中创建了一个Container,并且Container没有为CPU请求和CPU限制指定其自己的值,那么将为Container提供默认的CPU请求0.5和默认的CPU限制1。

https://kubernetes.io/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace/#create-a-limitrange-and-a-pod