“ Pod 阻止缩小规模,因为它具有本地存储 ”

Era*_*era 6 kubernetes google-kubernetes-engine

我在 gcp 中有 kubernets 集群以及 docker 容器运行时。我正在尝试将 docker 容器运行时更​​改为 containerd。以下步骤显示了我所做的事情。

  1. 添加了新节点池(带有 containerd 的节点)
  2. 耗尽旧节点

执行上述步骤后,我收到“Pod 正在阻止缩小规模,因为它有本地存储”警告消息。

Har*_*var 3

您需要向 POD 添加 Once 注释,以便集群自动缩放程序可以将该 POD 从 POD 安全驱逐中删除。

cluster-autoscaler.kubernetes.io/safe-to-evict": "true"
Run Code Online (Sandbox Code Playgroud)

上面的注释,你必须添加到POD中。

您可以在以下位置阅读更多信息:https://cloud.google.com/kubernetes-engine/docs/how-to/cluster-autoscaler-visibility#cluster-not-scalingdown

NoScaleDown 示例:您发现一个 noScaleDown 事件,其中包含节点的每个节点原因。消息 ID 为“no.scale.down.node.pod.has.local.storage”,只有一个参数:“test-single-pod”。查看错误消息列表后,您发现这意味着“Pod 正在阻止缩小规模,因为它请求本地存储”。您查阅了 Kubernetes Cluster Autoscaler FAQ,发现解决方案是在 Pod 上添加“cluster-autoscaler.kubernetes.io/safe-to-evict”: "true" 注解。应用注释后,集群自动缩放器会正确缩小集群。