Swarm 高级用户的五条贴士

2016-04-11 10:30:07 +08:00
 daocloud

深入浅出 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 在健康医疗领域的最佳实践

2046 次点击
所在节点    程序员
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/270081

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX