我在 GKE Autopilot 上运行的 Kubernetes 集群有一个不健康的节点。该节点有一个Ready
状态,但在其上运行的所有 Pod 都有一个CreateContainerError
状态,并且似乎在轮询容器映像时陷入困境。
例子:
(正常拉取 101 秒(x1326 超过 4 小时 49 分钟)kubelet 容器映像“gke.gcr.io/cluster-proportional-autoscaler:v1.8.10-gke.3@sha256:274afbfd520aef0933f1fefabddbb33144700982965f9e3632caabb055e912c6 “已经存在于机器上)。
kubernetes 升级时出现问题,因为我的帐户超出了配额(显然 1TB 的计算存储对于小型集群来说是不够的)。我获得了更多配额,但自动驾驶仪集群无法自行修复。
我“封锁”了该节点,将其标记为不可调度,并手动从中删除了我的 pod。新的 Pod 被安排在更健康的节点上,所以还不错。
现在我想打扫卫生。旧的 Pod 被困在Terminating
状态中,但强制删除它们会使它们消失。
我无法对kube-system
和gke-gmp-system
命名空间执行相同的操作。我看到“托管”pod 具有CreateContainerError
状态,并且它们正在循环中拉取容器映像。一个人也被某种Terminating
地位所困。
我想删除这个节点,显然你需要耗尽该节点并忽略名称空间中的错误kube-system
。我耗尽了节点,但它仍然存在。
如何删除不健康的节点?
新的 kubernetes 版本最终到来,升级集群解决了不健康的节点。
也许降级和升级集群也可以起作用。