- 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/
从 Wildfly 8.2.1.Final 升级到 Wildfly 9.0.1.Final 后,我们开始收到很多警告,如下所示: WARNING [org.jgroups.protocols.TCP]
如果是,在哪里可以找到?!根据this infoq 条目,他们已经开源了。但是现在,他们的网站上没有这样的产品。 最佳答案 本页,http://terracotta.org/dl/oss-downlo
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicates: Difference between clustered and nonclustered index What
我将 H2 数据库用于包含大量时间序列的环境数据。时间序列只是定期(例如每小时一次)记录在数据库中的传感器的测量值。 表中存储的数据: CREATE TABLE hydr (dt timestamp
Cluster 和 MPP super 计算机架构之间有什么区别? 最佳答案 在集群中,每台机器在内存、磁盘等方面都在很大程度上独立于其他机器。它们使用普通网络上的一些变体相互连接。集群主要存在于程序
我正在尝试为 akka 集群构建一个大脑 split 解析器。但是很难模拟某些节点无法从原始集群的其余部分访问并形成自己的集群的场景。 不能通过停止和重启节点来完成,因为新启动的节点不是同一个节点,因
我正在尝试在我的应用程序中使用集群。但是,在导入语句中,我得到“无法解析导入 com.google.maps (clustering.Cluster)”。 此外,在使用 ClusterManager
我想知道 Hive 中 Cluster By 和 CLUSTERED BY 的主要区别是什么。 Cluster By 用于对表进行分桶。并且会用到Hash函数。 CLUSTERED BY 用于在 re
我有3台机器,为redis集群创建了6个节点,我几个月前创建成功了,但现在它掉线了,我尽力修复它,但它不起作用,所以我清理所有数据并重新创建它从零开始,当我使用以下命令创建集群时,它在这里阻塞,等待节
我尝试使用 swarm 和 consul 设置 docker 集群。我有 manager、host1 和 host2。 我在管理器上运行 consul 和 swarm manager 容器。 $ do
如果我不使用 DTW 作为距离度量,那么 tslearn.clustering.TimeSeriesKMeans 和 sklearn.cluster.KMeans 是否等同? 如果不是,谁能告诉我这两
我正在研究 Flink 1.9.1 的 docker/k8s 部署可能性。 我正在阅读/观看 [1][2][3][4]。 目前我们确实认为我们会尝试采用作业集群方法,尽管我们想知道这方面的社区趋势是什
我可以使用一些关于 R 中方法的建议来确定最佳集群数,然后用不同的统计标准描述集群。我是 R 的新手,对聚类分析的统计基础有基本的了解。 确定簇数的方法:在文献中,一种常用的方法是所谓的“肘部准则”,
我有一个查询无法执行,并显示“由于文件组“DEFAULT”中磁盘空间不足,无法为数据库“TEMPDB”分配新页面”。 在排除故障的过程中,我正在检查执行计划。有两个标记为“聚集索引扫描(聚集)”的昂贵
我刚刚下载了 Elasticsearch 发行版并运行了它。 curl 'localhost:9200' { "status" : 200, "name" : "cbs", "clu
我有一个集群,其“cluster_ Purpose”设置为“dev_test”。我想将其更改为“生产”。在文档中找不到任何内容。 最佳答案 回答我自己的问题。这是不可能的。 关于Azure ML :
如何将主聚集索引更改为非聚集索引。 (作为“辅助”表,我想对“标题”表的外键列使用聚集索引。) 这对我不起作用(错误似乎是合理的:) DROP INDEX ClientUsers.PK_ClientU
我注意到,当使用 sklearn.cluster.KMeans 从方法 .cluster_centers_ 获取集群时,集群中心和每个集群的手动计算均值似乎不会给出完全相同的答案。 对于小样本量,差异
我在集群环境中使用 Quartz Scheduler 作为 Spring bean。 我有一些用@NotConcurrent 注释的作业,它们在每个集群中运行一次(即仅在一个节点中,仅在一个线程中)。
Node.js 本身有一个名为 Cluster 的核心模块(引用:http://nodejs.org/docs/v0.8.3/api/cluster.html),Learnboost 发布了一个名为
我是一名优秀的程序员,十分优秀!