我在单台机器上的Docker Swarm中运行服务。这是我部署服务的步骤:
docker swarm init
docker stack deploy -c docker-compose.yml MyApplication
docker-compose.yml 的内容:
version: "3"
services:
web:
image: myimage:1.0
ports:
- "9000:80"
- "9001:443"
deploy:
replicas: 3
resources:
limits:
cpus: "0.5"
memory: 256M
restart_policy:
condition: on-failure
Docker Swarm是否能够根据当前流量自动增加副本数量?如果是,如何进行配置?如果没有,我如何实现,也许使用Kubernetes?
最佳答案
根据Pod的CPU利用率,可以自动缩放部署。您需要使用kubectl autoscale
命令,该命令将创建一个HorizontalPodAutoscaler对象,该对象以指定的资源为目标并根据需要对其进行缩放。 HPA会定期调整缩放目标的副本数以匹配您指定的平均CPU利用率。
使用kubectl autoscale
时,需要为应用程序指定最大和最小副本数,以及CPU使用率目标。
以示例为例:将最大副本数设置为5,将最小副本数设置为2,CPU使用率目标为60%,请运行以下命令:
$ kubectl autoscale deployment my-app --max 5 --min 2 --cpu-percent 60
请在documentation和following article中找到有关它的更多信息。希望对您有帮助。