Linlitao 2019-06-25
转载请注明出处 http://www.paraller.com
原文排版地址 点击跳转
节点 加入swarm中会触发发现事件,当你使用脚本添加大量的节点,或者从网络分区中恢复节点连接,因为太集中的触发将会导致发现失败,可以使用 --delay选项指定延时限制,Swarm join 会在你指定的时间汇总添加随机的延时去减轻发现服务的压力
Etcd:
swarm join --advertise=<node_ip:2375> etcd://<etcd_addr1>,<etcd_addr2>/<optional path prefix>
Consul:
swarm join --advertise=<node_ip:2375> consul://<consul_addr>/<optional path prefix>
ZooKeeper:
swarm join --advertise=<node_ip:2375> zk://<zookeeper_addr1>,<zookeeper_addr2>/<optional path prefix>
Etcd:
swarm manage -H tcp://<swarm_ip:swarm_port> etcd://<etcd_addr1>,<etcd_addr2>/<optional path prefix>
Consul:
swarm manage -H tcp://<swarm_ip:swarm_port> consul://<consul_addr>/<optional path prefix>
ZooKeeper:
swarm manage -H tcp://<swarm_ip:swarm_port> zk://<zookeeper_addr1>,<zookeeper_addr2>/<optional path prefix>
docker -H tcp://<swarm_ip:swarm_port> info docker -H tcp://<swarm_ip:swarm_port> run ... docker -H tcp://<swarm_ip:swarm_port> ps docker -H tcp://<swarm_ip:swarm_port> logs ...
Etcd:
swarm list etcd://<etcd_addr1>,<etcd_addr2>/<optional path prefix> <node_ip:2375>
Consul:
swarm list consul://<consul_addr>/<optional path prefix> <node_ip:2375>
ZooKeeper:
swarm list zk://<zookeeper_addr1>,<zookeeper_addr2>/<optional path prefix> <node_ip:2375>
只能使用Consul and Etcd. Consul示例:
swarm join \ --advertise=<node_ip:2375> \ --discovery-opt kv.cacertfile=/path/to/mycacert.pem \ --discovery-opt kv.certfile=/path/to/mycert.pem \ --discovery-opt kv.keyfile=/path/to/mykey.pem \ consul://<consul_addr>/<optional path prefix>
这种方式不适用于 复制的swarm manager,当你要使用复制特性,请使用发现服务。
可以使用文件记录节点,但是这个文件必须放在能被manager访问的地方,或者在启动的时候指定文件路径
可以指定一个IP地址范围,类似于:
$ echo "10.0.0.[11:100]:2375" >> /tmp/my_cluster $ echo "10.0.1.[15:20]:2375" >> /tmp/my_cluster $ echo "192.168.1.2:[2:20]375" >> /tmp/my_cluster swarm manage -H tcp://<swarm_ip:swarm_port> file:///tmp/my_cluster $ swarm list file:///tmp/my_cluster <node_ip1:2375> <node_ip2:2375> <node_ip3:2375>
或者
swarm manage -H <swarm_ip:swarm_port> "nodes://10.0.0.[10:200]:2375,10.0.1.[2:250]:2375" swarm manage -H <swarm_ip:swarm_port> nodes://<node_ip1:2375>,<node_ip2:2375> or swarm manage -H <swarm_ip:swarm_port> <node_ip1:2375>,<node_ip2:2375>
使用Docker hub做发现服务,参考之前的文章 《docker swarm入门笔记》