首页 > 解决方案 > 如何降低节点的 DiskPressure 条件阈值

问题描述

我想减少DiskPressure限制。在阅读了 Kubernetes 文档(也在这个 GitHub 案例上)之后,我明白因为nodefs.available<10%我的卷可用空间必须超过 10%。

我想将其更改为 5%,但我不明白如何。

在这里Kubernetes 的节点条件中阅读,他们提到了这些标志,--eviction-hard或者eviction-soft这可能是解决方案,但我应该在哪里更改它们?

我在工作节点上使用 Kubelet 配置文件:

root@worker:/# cat /var/lib/kubelet/config.yaml
apiVersion: kubelet.config.k8s.io/v1beta1
authentication:
  anonymous:
    enabled: true
  webhook:
    cacheTTL: 0s
    enabled: true
  x509:
    clientCAFile: /etc/kubernetes/pki/ca.crt
authorization:
  mode: AlwaysAllow
  #mode: Webhook
  webhook:
    cacheAuthorizedTTL: 0s
    cacheUnauthorizedTTL: 0s
readOnlyPort: 10255
clusterDNS:
- 10.96.0.10
clusterDomain: cluster.local
cpuManagerReconcilePeriod: 0s
evictionPressureTransitionPeriod: 0s
fileCheckFrequency: 0s
healthzBindAddress: 127.0.0.1
healthzPort: 10248
httpCheckFrequency: 0s
imageMinimumGCAge: 0s
kind: KubeletConfiguration
nodeStatusReportFrequency: 0s
nodeStatusUpdateFrequency: 0s
rotateCertificates: true
runtimeRequestTimeout: 0s
staticPodPath: /etc/kubernetes/manifests
streamingConnectionIdleTimeout: 0s
syncFrequency: 0s
volumeStatsAggPeriod: 0s  

我不明白我应该改变什么。这些设置中的大多数都是秒 ( 0s)。
如何降低门槛?

标签: kuberneteskubelet

解决方案


这曾经是 kubelet 命令行参数。
https://kubernetes.io/docs/reference/command-line-tools-reference/kubelet/

--eviction-hard mapStringString
一组驱逐阈值(例如memory.available<1Gi),如果满足将触发 pod 驱逐。

已弃用:
此参数应通过 Kubelet--config标志指定的配置文件进行设置。
有关更多信息,请参阅 https://kubernetes.io/docs/tasks/administer-cluster/kubelet-config-file/

现在应该通过 kubelet 配置文件指定它 - 你是在正确的方式 :)
只需将所需的条目添加到您的配置中。

evictionHard:
  nodefs.available: 5%

配置架构。
https://github.com/kubernetes/kubernetes/blob/master/staging/src/k8s.io/kubelet/config/v1beta1/types.go#L571


推荐阅读