如何在 kubernetes 中停止/暂停 pod

新手上路,请多包涵

我有一个 MySQL pod 在我的集群中运行。

我需要在不删除它的情况下暂时暂停 pod 的工作,类似于 docker 中的 docker stop container-id cmd 将停止容器而不删除容器。

Kubernetes 中是否有可用的命令来暂停/停止 pod?

原文由 AATHITH RAJENDRAN 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 3.5k
2 个回答

因此,就像其他人指出的那样,Kubernetes 不支持停止/暂停 Pod 的当前状态并在需要时恢复。但是,您仍然可以通过没有将副本数设置为 0 的有效部署来实现它。

 kubectl scale --replicas=0 deployment/<your-deployment>

查看帮助

# Set a new size for a Deployment, ReplicaSet, Replication Controller, or StatefulSet.
kubectl scale --help

Scale 还允许用户为缩放操作指定一个或多个先决条件。

如果指定了 --current-replicas--resource-version ,则在尝试缩放之前进行验证,并保证将缩放发送到服务器时前提条件成立。

例子:

   # Scale a replicaset named 'foo' to 3.
  kubectl scale --replicas=3 rs/foo

  # Scale a resource identified by type and name specified in "foo.yaml" to 3.
  kubectl scale --replicas=3 -f foo.yaml

  # If the deployment named mysql's current size is 2, scale mysql to 3.
  kubectl scale --current-replicas=2 --replicas=3 deployment/mysql

  # Scale multiple replication controllers.
  kubectl scale --replicas=5 rc/foo rc/bar rc/baz

  # Scale statefulset named 'web' to 3.
  kubectl scale --replicas=3 statefulset/web

原文由 sulabh chaturvedi 发布,翻译遵循 CC BY-SA 4.0 许可协议

不可以。无法停止 pod 并在需要时稍后恢复。但是,您可以考虑以下方法。

在 k8s 中,pod 是使用服务抽象出来的。我能想到的隔离 pod 的一种方法是更新服务定义中的 pod 选择器。这样,您可以使用服务定义控制到 pod 的流量。每当您想要恢复流量时,将 pod 选择器值更新回它在服务定义中的值。

原文由 P Ekambaram 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题