如何 stop/pause 在 kubernetes 中创建一个 pod
how to stop/pause a pod in kubernetes
我的集群中有一个 MySQL pod 运行。
我需要暂时暂停 pod 的工作而不删除它,类似于 docker 其中docker stop container-id
cmd 将停止容器而不是删除容器。
kubernetes 中是否有可用于 pause/stop pod 的命令?
没有。无法停止 Pod 并稍后在需要时恢复。但是,您可以考虑以下方法。
在k8s中,pods是使用服务抽象出来的。我能想到的隔离 pod 的一种方法是更新服务定义中的 pod 选择器。
这样您就可以使用服务定义来控制 pod 的流量。每当您想恢复流量时,将 pod 选择器值更新回服务定义中的值。
因此,就像其他人指出的那样,Kubernetes 不支持 stop/pause 当前 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
使用 Kubernets,stop/pause Pod 是不可能的。但是,您可以删除 Pod,前提是您有清单可以再次将其恢复。
如果你想删除一个Pod,你可以运行下面的kubectl
命令:
kubectl delete -n default pod <your-pod-name>
我的集群中有一个 MySQL pod 运行。
我需要暂时暂停 pod 的工作而不删除它,类似于 docker 其中docker stop container-id
cmd 将停止容器而不是删除容器。
kubernetes 中是否有可用于 pause/stop pod 的命令?
没有。无法停止 Pod 并稍后在需要时恢复。但是,您可以考虑以下方法。
在k8s中,pods是使用服务抽象出来的。我能想到的隔离 pod 的一种方法是更新服务定义中的 pod 选择器。 这样您就可以使用服务定义来控制 pod 的流量。每当您想恢复流量时,将 pod 选择器值更新回服务定义中的值。
因此,就像其他人指出的那样,Kubernetes 不支持 stop/pause 当前 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
使用 Kubernets,stop/pause Pod 是不可能的。但是,您可以删除 Pod,前提是您有清单可以再次将其恢复。
如果你想删除一个Pod,你可以运行下面的kubectl
命令:
kubectl delete -n default pod <your-pod-name>