【问题标题】:Is it possible to run a new docker container of same image when the old one reaches a specified memory limit当旧容器达到指定的内存限制时,是否可以运行相同图像的新 docker 容器
【发布时间】:2016-06-21 09:42:36
【问题描述】:

我想知道是否可以通过某种自动化方式运行一个新的 docker 容器,这样 只要旧容器达到特定的内存/CPU 使用限制,旧容器就不会被杀死新的平衡负载。

【问题讨论】:

  • 您可以运行自己的脚本,将cat /sys/fs/cgroup/memory/docker/$CONTAINER_ID/memory.stat作为一个整体读出,或者例如仅读出cat /sys/fs/cgroup/memory/docker/$CONTAINER_ID/memory.memsw.usage_in_bytes的总使用量,并在达到某个阈值时采取相应措施
  • @KRONWALLED 感谢您的帮助。之后我还想在新旧容器之间划分任务。是否可以使用相同的图像来做到这一点。

标签: docker monitoring


【解决方案1】:

您的意思是一种自动缩放,目前我没有内置的解决方案可供使用,但我可以与您分享我的想法:

您可以使用收集器来收集 cAdvisor https://github.com/google/cadvisor 等指标,您可以获取有关您的容器的信息(您也可以使用 docker stats 来做到这一点)

您可以将此数据存储在 InfluxDB 或 prometheus 等时间序列数据库中。

创建一个连续查询以在某些指标超出您的限制时触发“创建新容器”事件。

我知道您正在寻找准备好的东西,但目前我没有看到任何工具可以解决这个问题。

【讨论】:

  • 正是我需要自动缩放以平衡服务器负载。感谢您分享您的想法。
【解决方案2】:

听起来您可能需要一个容器编排器来处理可能的其他用例。您可以通过几乎任何一个指标来推动规模选择。 Mesos、Kubernetes 或 Swarm。随着 Docker 的大量投资,Swarm 正在发生很大的变化。 Swarm 模式是 1.12 中的一项新功能,它将在核心产品中加入大量这种编排,并且可能会为您提供一个很好的用例。

【讨论】:

    猜你喜欢
    • 2020-03-23
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 2017-09-13
    • 2020-03-31
    • 2016-05-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多