【问题标题】:How to remove NotReady nodes from kubernetes cluster automatically如何从 kubernetes 集群中自动删除 NotReady 节点
【发布时间】:2019-10-13 13:51:58
【问题描述】:

我在裸机服务器上运行 kuberenets 集群,并且我的集群节点会定期添加和删除。但是当一个节点被删除时,kubernetes 不会自动从节点列表中删除它,并且 kubectl get nodes 会一直显示 NotReady 节点。有没有自动化的方法来实现这一点?我希望节点的行为与 Kubernetes 对 pod 的行为类似。

【问题讨论】:

  • 我相信cluster-autoscaler 可以做到这一点,因此您可以尝试运行它或查看源代码,看看如何制作自己的控制器来做同样的事情
  • 您使用的是哪个 pod 网络插件?

标签: kubernetes


【解决方案1】:

要删除节点,请按照以下步骤操作

Run on Master
# kubectl cordon <node-name>
# kubectl drain <node-name> --force --ignore-daemonsets  --delete-emptydir-data
# kubectl delete node <node-name>

【讨论】:

  • 我需要一些类似于 Kubernetes 中 POD 驱逐的自动化方式。
  • 以自动方式执行此操作:最终,某些网络中断或其他临时故障可能会导致您的脚本删除实际工作的节点。容器在耗尽后无法重新启动,缺乏计算资源。集群自动扩缩器应该在缩减后删除相应的节点条目。
【解决方案2】:

您可以使用这个小 bash 命令,或将其设置为 cron-job。

kubectl delete node $(kubectl get nodes | grep NotReady | awk '{print $1;}')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-12-04
    • 2020-02-14
    • 2018-07-19
    • 2019-03-05
    • 1970-01-01
    • 2021-01-22
    • 2016-09-20
    • 2019-07-26
    相关资源
    最近更新 更多