kubectl scale 是帮助我们管理 Kubernetes 部署的众多工具之一。在本文中我们将了解如何使用此工具以及最佳使用实践。
概述
kubectl scale命令通过调整正在运行的容器的数量来立即缩放应用程序。这是增加部署副本数量的最快、最简单的方法,可用于应对服务高峰以及日常维护变更。
在本文中,我们将了解如何使用kubectl scale来扩展一个简单的Kubernetes Deployment,同时,我们还将更深入的了解该命令相关的各种参数。最终形成kubectl scale的最佳实践,以及一些用于调整 Kubernetes 副`本数的替代方法。
kubectl scale用例
kubectl scale用于更改Kubernetes deployment, replica set, replication controller和 statefulset 等对象的副本数码。当我们增加副本数时,Kubernetes将启动新的Pod来扩我们的服务。降低副本数将导致 Kubernetes 优雅地终止一些 pod,从而释放集群资源。
我们可以运行kubectl scale来手动调整应用程序的副本数,以响应不断变化的服务容量需求。增加的流量负载可以通过增加副本数来处理,提供更多的应用程序实例来服务用户流量。当业务突发降低的时候,可以减少副本的数量。这有助于通过避免使用不需要的资源来降低成本。
使用 kubectl
kubectl scale最基本的用法是这样的:
$ kubectl scale --replicas=3 deployment/demo-deployment
执行此命令将调整名为demo-deployment 的部署,使其拥有三个正在运行的副本。我们可以通过替换其名称而不是部署来定位不同类型的资源:
# ReplicaSet $ kubectl scale --replicas=3 rs/demo-replicaset # ReplicationController $ kubectl scale --replicas=3 rc/demo-replicationcontroller # StatefulSet $ kubectl scale --replicas=3 sts/demo-statefulset
基础缩放
现在我们将看一个使用kubectl scale扩展部署的完整示例。这是一个定义简单部署的 YAML 文件:
apiVersion: apps/v1 kind: Deployment metadata: name: demo-deployment spec: replicas: 1 selector: matchLabels: app: demo-app template: metadata: labels: