首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何停止kubernetes集群?

如何停止kubernetes集群?
EN

Stack Overflow用户
提问于 2017-10-20 04:16:05
回答 6查看 41.3K关注 0票数 21

在kube-up.sh的帮助下,我在Google计算引擎上启动了claster。此脚本创建了主节点和从属组。在我不再需要它之后,我想停止一个集群并关闭所有VM,这样就不会把钱浪费在实例工作上。当我关闭它时(我只是关闭了我所有的集群虚拟机,因为我不知道另一种方法),然后在一段时间内重新启动我的集群将不再工作。"kubectl get node“显示的关于节点的信息不正确(例如,我有A、B、C节点== minion,它只显示甚至不存在的D),并且所有命令的运行速度都非常非常慢。也许我关闭它是不正确的。如何停止群集和虚拟机,以便在一段时间内再次启动它?(不删除)

我有什么集群:

代码语言:javascript
复制
kubernetes-master             | us-central1-b
kubernetes-minion-group-nq7f  | us-central1-b
kubernetes-minion-group-gh5k  | us-central1-b

显示"kubectl get node“命令的内容如下:

代码语言:javascript
复制
[root@common frest0512]# kubectl get nodes
NAME                           STATUS                     AGE       VERSION
kubernetes-master              Ready,SchedulingDisabled   7h        v1.8.0
kubernetes-minion-group-02s7   Ready                      7h        v1.8.0
kubernetes-minion-group-92rn   Ready                      7h        v1.8.0
kubernetes-minion-group-kn2c   Ready                      7h        v1.8.0

在关闭主节点之前,它显示正确(从属节点的名称和计数相同)。

EN

回答 6

Stack Overflow用户

发布于 2018-12-13 13:23:24

感谢Carlos的提示。

您可以按照以下步骤将所有主动节点从Kubernetes集群中分离出来。

1-转到Kubernetes Engine仪表板并选择集群。

https://console.cloud.google.com/kubernetes

2-转到详细信息并单击编辑,将池大小设置为零(0)。

3-在Compute Engine控制面板上验证节点正在关闭

https://console.cloud.google.com/compute

票数 16
EN

Stack Overflow用户

发布于 2017-10-28 07:05:58

除非我误解了,否则听起来像是您试图通过Compute Engine逐个停止VM来杀死集群。如果是这样,容器引擎将看到虚拟机已被终止,并在其位置上启动新的虚拟机以保持集群健康。如果您想要停止集群,您必须通过Container Engine接口执行此操作。通过这种方式,它将知道杀死节点并不是错误的,并且它将关闭所有已配置的VM和磁盘。

票数 4
EN

Stack Overflow用户

发布于 2019-04-16 19:48:09

我已经找到了解决这个问题的办法,因为我在开发阶段工作时,由于谷歌云收费而面临着同样的问题。Kubernetes会在您发出停止这些实例的命令时严格重启google云计算VM,因为kubenetes就是为此而设计的。例如:

代码语言:javascript
复制
gcloud compute instances stop [instance-name] --async --zone=us-central1-b

将停止实例一次,然后kubernetes会在意识到实例已关闭时自动触发重启。此命令将在除以外的任何其他实例上完美地工作,而不是与使用kuberneted集群创建的实例一起工作。

因为kubernetes正在处理计算实例,因为它倾向于重新启动关闭的实例。为了停止实例tp以降低运营成本,您必须使用以下命令清空kuberneted节点。

停止计算VM实例。

  • 获取使用kubectl get nodes运行的节点列表。这将列出在kuberneted集群的当前上下文中运行的节点。
  • 您可能需要关闭所有处于排出模式的节点,以便停止kuberneted服务。使用下面的命令kubectl drain [pod/node-name].
  • Then,使用USe命令关闭计算实例。这将停止虚拟机实例,kubernetes不会触发实例的自动重启,因为它的节点/pod已经关闭。

重新启动计算虚拟机实例

  • 使用以下命令重新启动计算VM实例gcloud compute instances start [instances-name] --async --zone=[zone]。但是这个命令不足以开始使用kubernetes集群。您需要对我们在上一步中排出的kubernetes节点执行uncordon操作。
  • 由于我们的节点处于drain模式,因此使用此命令启动它们,您将能够访问kubernetes集群节点公开的API。

注意:同样的解决方案可以通过使用谷歌云控制台来实现,但我是一名DevOps实践者,所以我一直在编写脚本来自动化工作流程,我希望从长远来看,为您制作一个小脚本将对您有所帮助。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46838221

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档