Kubernetes 在测试环境中限制 kube-system 的 CPU 请求。

use*_*782 5 kubernetes google-kubernetes-engine

我有 6 个单核 google 节点,kube-system pod 占用了太多 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%)
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法可以将所有 kube-system pod 的 CPU 请求/限制降低 10 倍?

我知道内存需要正常运行,但 CPU 可以降低,而在开发环境中不会出现任何重大问题。如果 DNS 的运行速度慢 10 倍会发生什么?对于单系统 dns pod 来说 27% 的节点太多了。

Ali*_*oua 3

与文档一样,要指定容器的 CPU 请求,请在 Container\xe2\x80\x99s 资源清单中包含resources:requests字段。要指定 CPU 限制,请包含resources:limits,请参阅下面的示例:

\n\n
apiVersion: v1\nkind: Pod\nmetadata:\n  name: cpu-demo\n  namespace: cpu-example\nspec:\n  containers:\n  - name: cpu-demo-ctr\n    image: vish/stress\n    resources:\n      limits:\n        cpu: "1"\n      requests:\n        cpu: "0.5"\n    args:\n    - -cpus\n    - "2"\n
Run Code Online (Sandbox Code Playgroud)\n\n

在 GCP Kubernetes 中,1 个 cpu 相当于:1 个 GCP Core。\nPod 的 CPU 限制是 Pod 中所有容器的 CPU 限制之和。

\n\n

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

\n