在没有 Zookeeper 的 Docker Swarm (1.12) 上启动 Solr cloud
Start Solr cloud on Docker Swarm (1.12) without Zookeeper
我是 运行 Docker 通过 Vagrant 在 3 台 CoreOS 机器上运行 Swarm 1.12。
在集群上启动 Solr 云的最佳方式是什么?
我需要 Zookeeper 吗?
我已经做到了:
docker service create --mode=global --name solr -p 8983:8983 solr:5.3.1 bash -c "/opt/solr/bin/solr start -f -c"
但是 Cloud 是空的,因为它不知道其他 2 台机器,我如何在这里使用 Swarm 的力量?
文档
container image documentation 描述了如何将 Zookeeper 互连为分布式 Solr 设置的后备存储:
You can also run a distributed Solr configuration, with Solr nodes in
separate containers, sharing a single ZooKeeper server:
Run ZooKeeper, and define a name so we can link to it:
$ docker run --name zookeeper -d -p 2181:2181 -p 2888:2888 -p 3888:3888 jplock/zookeeper
Run two Solr nodes, linked to the zookeeper container:
$ docker run --name solr1 --link zookeeper:ZK -d -p 8983:8983 \
solr \
bash -c '/opt/solr/bin/solr start -f -z $ZK_PORT_2181_TCP_ADDR:$ZK_PORT_2181_TCP_PORT'
$ docker run --name solr2 --link zookeeper:ZK -d -p 8984:8983 \
solr \
bash -c '/opt/solr/bin/solr start -f -z $ZK_PORT_2181_TCP_ADDR:$ZK_PORT_2181_TCP_PORT'
运行 在 Docker Swarm
上分发了 Solr
从 3 节点群开始:
$ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
2wkpmybf4wni8wia1s46lm2ml * node1 Ready Active Leader
ajrnf5oibgm7b12ayy0hg5i32 node3 Ready Active
bbe8n1hybhruhhrhmswn7fjmd node2 Ready Active
创建网络
$ docker network create --driver overlay my-net
启动一个zookeeper服务并等待它启动
$ docker service create --name zookeeper --replicas 1 --network my-net jplock/zookeeper
启动 2 个配置为连接到 DNS 地址 "zookeeper" 的 solr 实例。有关群模式网络的更多信息,您可以阅读 documentation
$ docker service create --name solr --replicas 2 --network my-net -p 8983:8983 \
solr \
bash -c '/opt/solr/bin/solr start -f -z zookeeper:2181'
Web UI 将在集群中的任何节点上可用
http://192.168.99.100:8983/
http://192.168.99.101:8983/
http://192.168.99.102:8983/
如果您检查服务,您会注意到容器分布在集群中的所有 3 个节点上。这是默认的调度行为
$ docker service ps zookeeper
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR
3fhipbsd4jdazmx8d7zum0ohp zookeeper.1 jplock/zookeeper node1 Running Running 7 minutes ago
$ docker service ps solr
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR
bikggwpyz5q6vdxrpqwevlwsr solr.1 solr node2 Running Running 43 seconds ago
cutbmjsmcxrmi1ld75eox0s9m solr.2 solr node3 Running Running 43 seconds ago
我是 运行 Docker 通过 Vagrant 在 3 台 CoreOS 机器上运行 Swarm 1.12。
在集群上启动 Solr 云的最佳方式是什么? 我需要 Zookeeper 吗?
我已经做到了:
docker service create --mode=global --name solr -p 8983:8983 solr:5.3.1 bash -c "/opt/solr/bin/solr start -f -c"
但是 Cloud 是空的,因为它不知道其他 2 台机器,我如何在这里使用 Swarm 的力量?
文档
container image documentation 描述了如何将 Zookeeper 互连为分布式 Solr 设置的后备存储:
You can also run a distributed Solr configuration, with Solr nodes in separate containers, sharing a single ZooKeeper server:
Run ZooKeeper, and define a name so we can link to it:
$ docker run --name zookeeper -d -p 2181:2181 -p 2888:2888 -p 3888:3888 jplock/zookeeper
Run two Solr nodes, linked to the zookeeper container:
$ docker run --name solr1 --link zookeeper:ZK -d -p 8983:8983 \ solr \ bash -c '/opt/solr/bin/solr start -f -z $ZK_PORT_2181_TCP_ADDR:$ZK_PORT_2181_TCP_PORT' $ docker run --name solr2 --link zookeeper:ZK -d -p 8984:8983 \ solr \ bash -c '/opt/solr/bin/solr start -f -z $ZK_PORT_2181_TCP_ADDR:$ZK_PORT_2181_TCP_PORT'
运行 在 Docker Swarm
上分发了 Solr从 3 节点群开始:
$ docker node ls
ID HOSTNAME STATUS AVAILABILITY MANAGER STATUS
2wkpmybf4wni8wia1s46lm2ml * node1 Ready Active Leader
ajrnf5oibgm7b12ayy0hg5i32 node3 Ready Active
bbe8n1hybhruhhrhmswn7fjmd node2 Ready Active
创建网络
$ docker network create --driver overlay my-net
启动一个zookeeper服务并等待它启动
$ docker service create --name zookeeper --replicas 1 --network my-net jplock/zookeeper
启动 2 个配置为连接到 DNS 地址 "zookeeper" 的 solr 实例。有关群模式网络的更多信息,您可以阅读 documentation
$ docker service create --name solr --replicas 2 --network my-net -p 8983:8983 \
solr \
bash -c '/opt/solr/bin/solr start -f -z zookeeper:2181'
Web UI 将在集群中的任何节点上可用
http://192.168.99.100:8983/
http://192.168.99.101:8983/
http://192.168.99.102:8983/
如果您检查服务,您会注意到容器分布在集群中的所有 3 个节点上。这是默认的调度行为
$ docker service ps zookeeper
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR
3fhipbsd4jdazmx8d7zum0ohp zookeeper.1 jplock/zookeeper node1 Running Running 7 minutes ago
$ docker service ps solr
ID NAME IMAGE NODE DESIRED STATE CURRENT STATE ERROR
bikggwpyz5q6vdxrpqwevlwsr solr.1 solr node2 Running Running 43 seconds ago
cutbmjsmcxrmi1ld75eox0s9m solr.2 solr node3 Running Running 43 seconds ago