当耗尽 Kubernetes 集群中的节点时会发生什么?

2024-02-07

当您耗尽 Kubernetes 集群中的节点时,我想了解一些有关维护准备的说明:

这是我在跑步时所知道的kubectl drain MY_NODE:

  • 节点被封锁
  • Pod 正常关闭
  • 您可以选择忽略 Daemonset pod,因为如果它们被关闭,它们将立即重新生成。

我对节点耗尽时会发生什么感到困惑。

问题:

  • 豆荚会发生什么情况?据我所知,Kubernetes 中没有 Pod 的“实时迁移”。
  • pod会被关闭然后在另一个节点上自动启动吗?或者这取决于我的配置? (即 Pod 是否可以通过 Drain 关闭并且不在另一个节点上启动)

我希望对此进行一些澄清以及任何最佳实践或建议。提前致谢。


默认情况下kubectl drain是非破坏性的,您必须重写才能改变该行为。它以以下默认值运行:

  --delete-local-data=false
  --force=false
  --grace-period=-1
  --ignore-daemonsets=false
  --timeout=0s

这些保护措施中的每一个都处理不同类别的潜在破坏(本地数据、裸 Pod、优雅终止、守护进程集)。它还尊重 Pod 中断预算,以遵守工作负载可用性。任何非裸 Pod 都将由其各自的控制器在新节点上重新创建(例如daemonset controller, replication controller).

是否要覆盖该行为取决于您(例如,如果运行 jenkins 作业,您可能有一个裸 Pod。如果您通过设置覆盖--force=true它会删除该 pod 并且不会重新创建)。如果不覆盖它,节点将无限期地处于耗尽模式(--timeout=0s)).

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当耗尽 Kubernetes 集群中的节点时会发生什么? 的相关文章

随机推荐