# 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
4条答案
按热度按时间ecbunoof1#
因此,正如其他人所指出的,Kubernetes不支持停止/暂停pod的当前状态并在需要时恢复。但是,您仍然可以通过将副本数量设置为0来实现这一点。
查看帮助
Scale还允许用户指定缩放操作的一个或多个前提条件。
如果指定了
--current-replicas
或--resource-version
,则会在尝试缩放之前对其进行验证,并保证在将缩放发送到服务器时前提条件为真。示例:
jecbmhm32#
不可以。您不可以停止pod,然后在需要时再恢复。但是,您可以考虑以下方法。
在k8s中,pod是使用服务抽象的。我认为隔离pod的一种方法是更新服务定义中的pod选择器。这样你就可以使用服务定义来控制pod的流量。无论何时你想恢复流量,都可以更新pod选择器的值,使其回到服务定义中的值。
7gyucuyw3#
在Kubernets中,无法停止/暂停Pod。但是,您可以删除Pod,因为您有清单可以将其恢复。
如果要删除Pod,可以运行以下
kubectl
命令:htrmnn0y4#
对我来说,当我在Openshift控制台中的Helm的DeploymentConfig详细信息中将pod缩小到0时,它起作用了。