V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
daocloud
V2EX  ›  程序员

Swarm 高级用户的五条贴士

  •  
  •   daocloud ·
    DaoCloud · 2016-04-11 10:30:07 +08:00 · 2042 次点击
    这是一个创建于 3141 天前的主题,其中的信息可能已经有所发展或是发生改变。

    深入浅出 Docker Swarm | DaoCloud 现推出 Docker Swarm 系列技术文章,为大家深入浅出地解读 Docker Swarm 的概念、使用方法以及最真实的案例分析。全系列共五篇,本周为大家每日放送一篇精彩内容,敬请期待。

    今天的 Swarm 文章,让我们分享 5 条 Swarm 高级用户使用 Swarm 的贴士。

    贴士 1 :标签 Cheat Sheet

    每个 Docker Engine 都可以被分配一个或多个任意字符串的标签( label ),如 disk=ssd 。此后,你可以在你的 docker run 命令里包含相同的标签,作为标示来控制容器调度的位置。

    可以按照以下示例,来了解如何使用标签:

    在你的其中一个 Engine 上运行:

    在另一个 Engine 上运行:

    现在就这样运行你的容器:

    贴士 2 :如何启用在节点崩溃时的重新调度( Swarm 1.1 的新增功能)

    在发布的 Swarm 1.1 版本中,新增了一项功能:如果因为某些原因,容器运行错误,你可以把它们重新调度到正常的节点上。这项功能目前还在试验阶段,不过你可以按照以下步骤试一试该新功能。

    这样运行 Swarm 管理 :

    贴士 3 :玩转容器 ID 和 Swarm ID

    每个容器都有一个 ID ,如果容器被重新调度, ID 也会随之更改。但每个容器也有一个 com.docker.swarm.id ,就算容器被重新调度到新的节点上,这一 ID 也不会更改。同样也适用于容器命名,你为容器指定的名字也不会在重新调度过程中更改。

    案例如下:

    贴士 4 : Heartbeat 间隔

    Docker Engine 的 discovery heartbeat 是 overlay 网络模块使用的一个机制,用于确定集群中位于远程主机上的 Docker daemon 进程是否仍在工作。你可以用秒时来指定心跳的频率。默认心跳间隔是 20 秒,但更大的集群倾向于使用较长的间隔。

    Overlay 网络取决于主机发现,而 Docker Engine 里的主机发现取决于 Key-value (KV) Store 。在一个拥有大量主机的环境里,越激烈的心跳间隔越会影响各种 KV Store 的表现。 为了减轻主机发现和事件监控对 KV Store 的压力,在 Swarm v 1.10 版本中增加了 daemon 配置标记。你可以根据你的扩展需求,对 value 进行微调。

    贴士 5 :--subnet 选项会给你更多的 IP

    如果你打算在同一个 overlay 网络下运行多个容器,你就需要足够多的 IP 地址。请在建立网络时使用 --subnet :

    通过以上配置,网络会拥有 170 万个 IP 地址。

    如果你想将其限制到 65000 个,就用 --subnet=20.0.0.0/16

    注意:这里是以 20.0.0.0 subnet 为例。只要与你环境里的 IP 地址不冲突,你用什么都行。

    下期预告: Swarm 在健康医疗领域的最佳实践

    目前尚无回复
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2019 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 00:45 · PVG 08:45 · LAX 16:45 · JFK 19:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.