Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/kubernetes/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kubernetes GKE节点的并行删除_Kubernetes_Google Cloud Platform_Google Kubernetes Engine - Fatal编程技术网

Kubernetes GKE节点的并行删除

Kubernetes GKE节点的并行删除,kubernetes,google-cloud-platform,google-kubernetes-engine,Kubernetes,Google Cloud Platform,Google Kubernetes Engine,我正在尝试在GKE上运行一个作业5分钟50个节点。然而,当我缩小实例规模时,它会按顺序发生,因此4-5分钟的作业会花费我更多的成本 有没有办法并行删除GKE实例?如果您正在使用来缩小集群: $ gcloud container clusters resize [CLUSTER_NAME] --node-pool [NODE_POOL] --size [SIZE] 我相信还有其他选择可以加快这一进程。 另一方面,如果您在autoscaler上摇摇晃晃,您可以尝试使用该命令调整大小的速度更快,并且

我正在尝试在GKE上运行一个作业5分钟50个节点。然而,当我缩小实例规模时,它会按顺序发生,因此4-5分钟的作业会花费我更多的成本

有没有办法并行删除GKE实例?

如果您正在使用来缩小集群:

$ gcloud container clusters resize [CLUSTER_NAME] --node-pool [NODE_POOL] --size [SIZE]
我相信还有其他选择可以加快这一进程。 另一方面,如果您在autoscaler上摇摇晃晃,您可以尝试使用该命令调整大小的速度更快,并且能够满足您的要求。但是请记住,Kubernetes的目的并不是创建一个基础设施,如果它可以非常快地启动并添加50个节点,并且当您完成杀死它们时

还可以从以下方面考虑:

kubectl drain命令一次只能向单个节点发出。但是,可以在不同的终端或后台为不同的节点并行运行多个kubectl drain命令。同时运行的多个drain命令仍将遵守您指定的PodDisruptionBudget


因此,从耗尽节点(这是删除节点的基本阶段)的文档中可以看出,不鼓励Kubernetes集群有一个底层实例组

通过直接将实例组中的节点数从50更改为5,我可以并行删除节点


所有节点都在30秒内被删除,GKE还自动用新值更新了群集大小。

我知道这可能在您的实现中起作用,但不安全!基本上,关闭机器,不要让kubernetes知道这正在发生。您甚至不应该使用实例组的经典自动缩放器“不要对Google Kubernetes引擎拥有的托管实例组使用计算引擎自动缩放。对于Google Kubernetes引擎组,使用群集自动缩放。”正如您所见,这不是最佳做法,这对我有很大帮助。谢谢gcloud containers resize命令的速度非常慢。同时耗尽多个节点可能会有风险,因为通常通过在节点之间分发其pod并使用反关联来构建高可用性的服务。这种设计使服务能够适应单节点故障。但是,如果您执行并行排水,所有运行该服务的pod的节点都可能同时停机,现在该服务暂时停止。如果你能接受停机时间,那没关系。例如,你在第二个区域复制了你的应用程序,然后区域1关闭意味着该区域的应用程序响应稍慢,因为流量路由到区域2。或者设计成可以关闭服务。排水没有问题,但并行进行时会有风险,这取决于您的基础架构。请参阅我对OP的评论。