docker - 自动增加副本数

标签 docker kubernetes docker-compose docker-swarm

我在单台机器上的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命令,该命令将创建一个Horizo​​ntalPodAutoscaler对象,该对象以指定的资源为目标并根据需要对其进行缩放。 HPA会定期调整缩放目标的副本数以匹配您指定的平均CPU利用率。

使用kubectl autoscale时,需要为应用程序指定最大和最小副本数,以及CPU使用率目标。

以示例为例:将最大副本数设置为5,将最小副本数设置为2,CPU使用率目标为60%,请运行以下命令:

$ kubectl autoscale deployment my-app --max 5 --min 2 --cpu-percent 60

请在documentationfollowing article中找到有关它的更多信息。希望对您有帮助。

关于docker - 自动增加副本数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58353789/

相关文章:

docker - 构建docker镜像时使用FROM时基本镜像中包含的内容

Kubernetes https 通信

python - 使用 python kubernetes 客户端读取具有特定标签的 Kubernetes 部署

kubernetes - 从 Ansible 剧本运行 k8s_exec 导致握手状态 403 Forbidden 错误

linux - 尝试安装 DOCKER GPG key 时收到错误 : Curl: option '-' is unknown

python - Docker-compose MemoryError

docker - 在docker-compose文件中映射端口不起作用。网络无法访问

azure - 基于 REST 的服务在 Azure 中的 Kubernetes 上作为 Pod 运行,且存在间歇性超时

docker - 在 Docker 容器中添加用户,运行 Jenkins 作业时 UID 不匹配

用于发布和更新的 Docker 内部私有(private)存储库?