- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我尝试使用 swarm
和 consul
设置 docker 集群。我有 manager
、host1
和 host2
。
我在管理器上运行 consul
和 swarm manager
容器。
$ docker run --rm -p 8500:8500 progrium/consul -server -bootstrap
$ docker run -d -p 2377:2375 swarm manage consul://<manager>:8500
在 host1 和 host2 上,我使用 --cluster-store
和 --cluster-advertise
修改守护程序选项,然后重新启动 docker daemon
.
host1
DOCKER_OPTS="--cluster-store=consul://<manager>:8500 --cluster-advertise=<host1>:2375"
host2
DOCKER_OPTS="--cluster-store=consul://<manager>:8500 --cluster-advertise=<host2>:2375"
当我将 host1 和 host2 加入 swarm 时,它失败了。
host1 $ docker run --rm swarm join --advertise=<host1>:2375 consul://<manager>:8500
host2 $ docker run --rm swarm join --advertise=<host2>:2375 consul://<manager>:8500
从 swarm manager 日志中,它出错了。
time="2016-01-20T02:17:17Z" level=error msg="Get http://<host1>:2375/v1.15/info: dial tcp <host1>:2375: getsockopt: connection refused"
time="2016-01-20T02:17:20Z" level=error msg="Get http://<host2>:2375/v1.15/info: dial tcp <host2>:2375: getsockopt: connection refused"
最佳答案
由于我也遇到了类似的问题,我最终发现它为什么不起作用(在我的示例中,我在 LAN 192.168.10.0/24
上使用了多个盒子,我想从那里管理它并且只允许访问从外部到某些容器——以下示例在 192.168.10.1
的盒子上运行):
--cluster-store consul://192.168.10.1:8500
和端口 8500(在每个守护进程上部署 Consul 和 registrator 作为第一个容器)和 --cluster-advertise 192.168.10.1:2375
以及 -H tcp://192.168.10.1:2375 -H unix:///var/run/docker.sock -H tcp://127.0.0.1:2375
设置守护进程(但是,我不会像使用 tcp://0.0.0.0:2375
那样绑定(bind)到其他可用地址,而是只绑定(bind)到本地 192.168.10.0/24)。 如果您希望容器也只绑定(bind)到本地网络(就像我在本例中所做的那样),您可以为守护程序指定额外的 --ip
参数 - 当容器也应该可用于其他任何地方时(在我的只有通过keepalived故障转移的nginx负载均衡器)您指定将端口绑定(bind)到所有接口(interface)docker run ... -p 0.0.0.0:host_port:container_port ... <image>
使用 compose 部署 gliderlabs/registrator 和 Consul(这是我设置中第一个框中的示例,但我在所有守护程序上启动等效项以完成 Consul HA 故障转移设置)docker-compose -p bootstrap up -d
(将容器命名为 bootstrap_registrator_1
和 bootstrap_consul_1
在私网 bootstrap
):
version: '2'
services:
registrator:
image: gliderlabs/registrator
command: consul://192.168.10.1:8500
depends_on:
- consul
volumes:
- /var/run/docker.sock:/tmp/docker.sock
restart: unless-stopped
consul:
image: consul
command: agent -server -bootstrap -ui -advertise 192.168.10.1 -client 0.0.0.0
hostname: srv-0
network_mode: host
ports:
- "8300:8300" # Server RPC, Server Use Only
- "8301:8301/tcp" # Serf Gossip Protocol for LAN
- "8301:8301/udp" # Serf Gossip Protocol for LAN
- "8302:8302/tcp" # Serf Gossip Protocol for WAN, Server Use Only
- "8302:8302/udp" # Serf Gossip Protocol for WAN, Server Use Only
- "8400:8400" # CLI RPC
- "8500:8500" # HTTP API & Web UI
- "53:8600/tcp" # DNS Interface
- "53:8600/udp" # DNS Interface
restart: unless-stopped
现在守护进程在 docker/nodes
的 KV 存储(Consul)上注册并设置锁,Swarm 似乎不会自动从这个位置读取。所以当它尝试读取哪些守护进程可用时它不会找到任何。 现在这点花费我最多的时间:为了解决这个问题,我必须指定 --discovery-opt kv.path=docker/nodes
并以 docker-compose -p bootstrap up -d
启动 Swarm - 在所有盒子上以及最终以管理器的 Swarm HA 故障转移结束:
version: '2'
services:
swarm-manager:
image: swarm
command: manage -H :3375 --replication --advertise 192.168.10.1:3375 --discovery-opt kv.path=docker/nodes consul://192.168.10.1:8500
hostname: srv-0
ports:
- "192.168.10.1:3375:3375" #
restart: unless-stopped
现在我得到了一个工作 Swarm,它只能在 192.168.10.0/24
网络的 3375 端口上使用。所有启动的容器也只能用于这个网络,除非我在启动时指定 -p 0.0.0.0:host_port:container_port
(使用 docker run
)
-server
开始) .关于docker - "--cluster-store"和 "--cluster-advertise"不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34892377/
我正在使用 Unity Ads 在 Unity 2019.2.21f1 中构建带有广告的游戏。我有以下用于显示广告的简短脚本: using System.Collections; using Unit
我希望能够使用一个蓝牙适配器在两个广告数据之间切换,最佳的广告切换间隔是多少,以及要立即被 iOS 识别而没有太多延迟的广告间隔是多少? (我想在 iBeacon 和 GATT 服务广告之间切换)。现
关闭。这个问题需要更多focused .它目前不接受答案。 想改善这个问题吗?更新问题,使其仅关注一个问题 editing this post . 5年前关闭。 Improve this questi
phpBB 论坛。我想包含“广告管理”Mod,但安装后它在管理员面板中不可见。 当我在管理员面板中更改对象的格式时,我可以看到广告管理,但最后没有。 论坛语言是德语和现代语言英语。phpBB 版本:3
我的设备正在发射低功耗蓝牙 (BLE) 广告,而 Nexus 7 (2013) Android 平板电脑应该会听到这些广告。但是,它听不到来 self 设备的 BLE 广告并且似乎听不到任何 BLE
示例:Ads by: Google 这是横幅 css,我想在这个横幅中添加左上角(广告:mysite.com) .mybannerads { display: block; posi
我已经搜索了如何使用Amazon Product Advertising API,现在可以使用Amazon Product Advertising API搜索其他产品,并且可以正常工作。 但是据我所知
我有一个3节点群。每个都有一个静态IP地址。我在ip 192.168.2.100上有一个领导者node-0,在192.1682.101上有一个备份管理器node-1,在192.168.2.102上有一
我正在使用亚马逊产品广告 API 为我的网站获取产品。我需要能够判断响应中的新项目是来自亚马逊还是来自第三方。在 11/01/2012 API 之前,这似乎可以通过:
当我未连接到我的设备时,我需要永久扫描ble广告以找到它并知道何时连接到它(特定产品)。此扫描是在前台服务中实现的,以匹配 8.0 的先决条件。 为了节省电量,我想定期扫描(同时遵守 Android
我用 iPhone 在 BLE Advertising 中发送数据(短字符串),我想从 Windows 设备读取这个字符串。 所以我正在尝试示例项目“BluetoothAdvertisement”,来
我的应用因使用广告标识符而被拒绝,但我没有在我的应用中使用任何广告标识符。我检查了我的代码,没有广告标识符,我什至没有使用广告支持框架。 是的,我的应用程序转换广告,但我只使用 iAd 框架在我的应用
我有一个运行 3 位服务数据的 BLE 广告服务(例如:010501),其中 05可能是将在特征级别设置的数据版本。我希望另一个设备能够知道重新读取特征而无需手动轮询它。现在我可以在发生变化时使用新的
我是这个 UWP 的新手,请耐心等待。我修改了以下MS GitHub中的代码:Link创建一个可以“观看”BTLE 广告的 Windows Phone 应用程序。 但它无法读取任何广告。我的手机确实支
我知道我们可以使用 docker swarm init 如果节点有多个地址,那么我们需要添加标志 --advertise-addr 并提供IP地址。此标志用于向群集中用于API访问的其他节点提及IP地
我在一个iOS应用程序中工作,该应用程序需要使用Amazon Product Advertising API的Lookup操作获取信息。 我遵循此Pico Tutoiral,我可以使用ItemSear
在高并发环境下使用有什么问题吗?它真的像 MS 宣传的那样有效吗?我正在使用 SQL Server 2005 并且想听听那些正在/正在使用它的应用程序在生产中使用它的经验。 快照隔离本身对我来说并不新
我正在为 iOS 7 编写一套低功耗蓝牙应用程序。当应用程序启动时,我感兴趣的外设很有可能仍然连接到 iOS 设备,为了避免扫描外设,最好立即连接。 retrieveConnectedPeripher
出于某种原因,我无法访问 using UnityEngine.Advertisements; 尽管我的目标平台是 Android 和 Unity Ads,并且内置广告扩展已启用。 通常,我只在为不支持
连接到广播我感兴趣的特定服务的 BLE 设备后,为了发现此服务,我正在调用: [self.peripheral discoverServices:@[[self.class serviceUUID]]
我是一名优秀的程序员,十分优秀!