2016-03-02 23 views
6

我想放大/缩小机器数量来增加/减少我的Kubernetes群集中的节点数量。当我添加一台机器时,我可以成功注册Kubernetes;因此,按预期创建了一个新节点。但是,我不清楚如何顺利关闭机器。一个好的工作流程将是:如何从Kubernetes中正常删除节点?

  1. 将与我要关闭的机器相关的节点标记为不可调度的;
  2. 开始在其他节点中的节点中运行的pod;
  3. 完美地删除节点中正在运行的pod;
  4. 删除节点。

如果我理解正确的,甚至kubectl draindiscussion)没有做什么,我希望,因为它没有删除前启动豆荚(它依赖一个复制控制器开始荚之后这可能会导致停机时间)。我错过了什么吗?

我应该如何正确关闭机器?

回答

1

拉斐尔。 kubectl drain的确如你所描述的那样工作。有一些停机时间,就好像机器崩溃一样。

你能描述你的设置吗?您拥有多少副本,并且是否预配置了这样的副本,以致无法处理单个副本的任何停机时间?

+0

目前,我正在一个单独的环境中评估Kubernetes,其中有一堆具有不同应用程序/豆荚的EC2实例。我明白我不应该将应用程序作为单个副本运行。但是我也不会为每个应用程序运行大量的副本;因此,丢失一个副本会影响应用程序的总体容量。尽管我最终可以接受这种做法,但我认为这不是一种合理的方法,如果这是由计划的行为引起的,例如缩小机器数(节点数)。 – Rafael

+1

事实证明,只要您设置适当的宽限期,拥有准备好的探测器并正确处理SIGTERM,Kubernetes就会正确执行此操作。 https://github.com/kubernetes/kubernetes/issues/20473涵盖了类似的问题(从滚动更新的角度)。如果您需要更多细节,请告诉我,我很乐意提供帮助。 –

+0

谢谢。我要去做一些测试。 – Rafael