我的集群中正在运行一个MySQL pod。
我需要暂时暂停pod的工作而不删除它,这类似于docker,其中docker stop container-id
cmd将停止容器而不删除容器。
kubernetes中有可用的命令来暂停/停止Pod吗?
答案 0 :(得分:8)
因此,就像其他人指出的那样。 Kubernetes不支持pod当前状态的停止/暂停,并在需要时恢复。
但是,您仍然可以通过没有有效的部署(将副本数设置为0)来实现。
kubectl scale --replicas=0 deployment/<your-pod>
查看帮助
kubectl scale --help
Set a new size for a Deployment, ReplicaSet, Replication Controller, or StatefulSet.
Scale also allows users to specify one or more preconditions for the scale action.
If --current-replicas or --resource-version is specified, it is validated before the scale is attempted, and it is
guaranteed that the precondition holds true when the scale is sent to the server.
Examples:
# 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
答案 1 :(得分:4)
不。需要时,无法停止窗格并稍后恢复。但是,您可以考虑采用以下方法。
在k8s中,使用服务对pod进行抽象。我想到隔离容器的一种方法是通过更新服务定义中的容器选择器。 这样,您可以使用服务定义来控制到Pod的流量。每当您想要恢复流量时,将pod选择器值更新回服务定义中的值。