如何为Kubernetes集群计算节点可分配资源?

时间:2019-09-22 23:51:37

标签: memory-management kubernetes resources cpu scaling

我们有一个集群,其中的节点资源不足,导致运行缓慢和过量提交问题。这迫使我们频繁重启节点。我们计划实施节点可分配资源策略,以在系统,kubelet和应用程序容器之间分配可用的CPU,内存和临时存储。

了解有关可分配资源计算here的一些准则。

它没有指定系统资源和kubelet资源之间的分配量。另外,我们正在进行开放式上班,因此不确定其中有多少适用。

1 个答案:

答案 0 :(得分:0)

如前所述,您正在使用OpenShift,并且您提供的文档来自GCP。默认要求,参数可能会因云提供商的规范而有所不同。

很遗憾,我不是OpenShift用户,但是您可以在操作系统documentation中发现:

为节点组件保留的资源基于两个节点设置:kube-reservedsystem-reserved

您可以在一组节点配置文件(默认为 /etc/origin/node/node-config.yaml 文件)的kubeletArguments部分中进行设置(例如, cpu = 200m,内存= 512Mi)。

如何计算分配的资源?

根据以下公式计算资源的分配量:

[Allocatable] = [Node Capacity] - [kube-reserved] - [system-reserved]

如果[Allocatable]为负,则设置为0。

请检查以下OpenShift文档:Allocating node resourcesCapacity managementCluster LimitsResource Limits

许多因素取决于您要使用什么类型的豆荚/图像。有些图像可能需要0.1 CPU,而其他图像可能需要1 CPU才能启动。

您可以通过创建Quota并设置Pod requests and limits来限制它。

请记住,您始终可以在Containers.containerName.Requests下检查每个Pod中的当前Requests / Limits:

$ os describe pod <pod-name>

或请求的资源/节点上的限制

$ os describe node <node-name>

在此说明的底部,您应该获得所有吊舱的要求和限制

Non-terminated Pods:         (6 in total)
  Namespace                  Name                                              CPU Requests  CPU Limits  Memory Requests  Memory Limits  AGE
  ---------                  ----                                              ------------  ----------  ---------------  -------------  ---
  default                    nginx-7cdbd8cdc9-b94r9                            100m (10%)    0 (0%)      0 (0%)           0 (0%)         6m2s
  default                    nginx-7cdbd8cdc9-nlsw7                            100m (10%)    0 (0%)      0 (0%)           0 (0%)         6m2s
  kube-system                fluentd-gcp-v3.2.0-lwnqn                          100m (10%)    1 (106%)    200Mi (7%)       500Mi (18%)    5h22m
  kube-system                kube-proxy-gke-stc1-default-pool-094e5c74-4dzj    100m (10%)    0 (0%)      0 (0%)           0 (0%)         5h22m
  kube-system                prometheus-to-sd-lbj57                            1m (0%)       3m (0%)     20Mi (0%)        20Mi (0%)      5h22m
  kube-system                traefik-749d86f748-frs7q                          0 (0%)        0 (0%)      0 (0%)           0 (0%)         158m
Allocated resources:
  (Total limits may be over 100 percent, i.e., overcommitted.)
  Resource                   Requests    Limits
  --------                   --------    ------
  cpu                        401m (42%)  1003m (106%)
  memory                     220Mi (8%)  520Mi (19%)
  ephemeral-storage          0 (0%)      0 (0%)
  attachable-volumes-gce-pd  0           0

希望这会有所帮助。