新钛云服已累计为您分享661篇技术干货
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:
app: demo-app
spec:
containers:
- name: nginx
image: nginx:latest
将此 YAML 保存到工作目录中的demo-deployment.yaml 。接下来,使用kubectl将部署添加到我们的集群: