如何在kubernetes中停止/暂停pod

xesrikrc  于 2022-12-22  发布在  Kubernetes
关注(0)|答案(4)|浏览(3131)

我有一个MySQL pod在我的集群中运行。
我需要暂时暂停pod的工作而不删除它,类似于docker的docker stop container-id cmd将停止容器而不删除容器。
Kubernetes中是否有暂停/停止pod的命令?

ecbunoof

ecbunoof1#

因此,正如其他人所指出的,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
jecbmhm3

jecbmhm32#

不可以。您不可以停止pod,然后在需要时再恢复。但是,您可以考虑以下方法。
在k8s中,pod是使用服务抽象的。我认为隔离pod的一种方法是更新服务定义中的pod选择器。这样你就可以使用服务定义来控制pod的流量。无论何时你想恢复流量,都可以更新pod选择器的值,使其回到服务定义中的值。

7gyucuyw

7gyucuyw3#

在Kubernets中,无法停止/暂停Pod。但是,您可以删除Pod,因为您有清单可以将其恢复。
如果要删除Pod,可以运行以下kubectl命令:

kubectl delete -n default pod <your-pod-name>
htrmnn0y

htrmnn0y4#

对我来说,当我在Openshift控制台中的Helm的DeploymentConfig详细信息中将pod缩小到0时,它起作用了。

相关问题