【问题标题】:How to scale up docker instances using Apache Marathon REST API.?如何使用 Apache Marathon REST API 扩展 docker 实例。?
【发布时间】:2017-07-16 03:23:45
【问题描述】:

是否可以使用 Mesosphere Marathon REST API 扩大和缩小 docker 容器/实例的数量?

端点 GET /deployments 似乎是查看下一个可能操作的唯一选项。 如何使用 REST API 扩展实例(以编程方式:可能使用 curl 脚本而不使用 Marathon Web 界面)?

【问题讨论】:

    标签: rest docker mesos marathon


    【解决方案1】:

    您应该将 PUT 与 JSON 一起使用,其中只有字段 "instances" 以及所需的实例数(例如,2)和应用程序 ID(例如,/foo)。

    PUT <marathon-url>/v2/apps/foo
    
    { "id": "/foo", "instances": 2 }
    

    注意: Marathon 1.4 deprecates PUT semantic.

    /v2/apps 上的 PUT 具有类似 PATCH 的语义:所有未在 json 中定义的值都不会更新现有值。 这始终是 Marathon 版本中的默认行为。 为了向后兼容,我们不会改变这种行为,而是让用户选择合适的 PUT。 Marathon 的下一个版本将使用 PATCH 和 PUT 作为两个单独的操作。

    【讨论】:

    • 谢谢@janisz。我观察到 url 变成这样的一件事:/v2/apps//foo。所以在appid前面加上“/”。
    • 嗨@janisz,还有一个问题。如何知道特定 appid(比如 /foo)的运行实例数?
    • AppID 以/ 为前缀,以确保它是绝对组 ID。要获取当前实例,您需要致电 GET &lt;marathon-url&gt;/v2/apps/foo。如果您想获得正在运行/暂存/杀死的实例,请尝试GET &lt;marathon-url&gt;/v2/apps/foo?embed=app.counts 并查找 tasksStaged、taskRunning、tasksHealthy、tasksUnhealthy
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-25
    • 1970-01-01
    • 2021-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多