在Kubernetes中,Deployment提供了自动伸缩和手动伸缩两种方式。
- 自动伸缩
Deployment可以通过 spec.replicas
字段控制Pod副本的数量,同时还可以使用Horizontal Pod Autoscaler (HPA)实现自动伸缩。HPA会根据CPU利用率等指标调整Pod副本的数量,以保证应用程序的可用性和稳定性。
例如,创建一个基于CPU利用率来自动扩展/收缩nginx-deployment的HPA:
kubectl autoscale deployment nginx-deployment --cpu-percent=80 --min=1 --max=10
该命令会创建一个名为 nginx-deployment
的Horizontal Pod Autoscaler对象,并设置CPU利用率达到80%时自动扩展Pod副本数量至最大值10个(如果当前Pod副本数小于1,则会自动创建一个新的Pod)。
- 手动伸缩
除了使用HPA进行自动伸缩外,还可以通过手动修改Deployment的 .spec.replicas
字段来进行手动伸缩。例如:
- 将Pod副本数量增加到3:
kubectl scale deployment nginx-deployment --replicas=3
- 将Pod副本数量减少到1:
kubectl scale deployment nginx-deployment --replicas=1
以上两种方法等价于直接修改Deployment YAML文件中的 .spec.replicas
字段。
需要注意的是,在使用手动伸缩时,应该保证Pod副本数量不会低于 .spec.minReadySeconds
字段所设置的最小可用时间(默认为0),以确保所有新创建的Pod都已经就绪并且能够接受流量。