Docker Swarm one-day Tour

来源:互联网 发布:淘宝德芙巧克力 编辑:程序博客网 时间:2024/06/14 04:51

服务器列表

IP hostname swarm role 192.168.2.121 ubuntu manager 192.168.2.122 zipkin worker 192.168.2.123 elastic worker 192.168.2.124 tensorflow manager

本次验证所使用的docker 版本如下:

kube@tensorflow:~$ docker versionClient: Version:      1.13.1 API version:  1.26 Go version:   go1.7.5 Git commit:   092cba3 Built:        Wed Feb  8 06:42:29 2017 OS/Arch:      linux/amd64Server: Version:      1.13.1 API version:  1.26 (minimum version 1.12) Go version:   go1.7.5 Git commit:   092cba3 Built:        Wed Feb  8 06:42:29 2017 OS/Arch:      linux/amd64 Experimental: false

本次验证的主要架构如下图所示:

这里写图片描述
为了防止Swarm Mange单点故障,引入了HA机制,Swarm Manage自身是无状态的,所以还是很容易实现HA的。 实现过程中采用主备方式,当主节点故障以后,会从新选主提供服务,选主过程中采用分布式锁实现,现在支持etcd、zookeeper、consul三种类型的分布式存储,用来提供分布式锁。 当备节点收到消息后,会将消息转发给主节点

Steps

kube@ubuntu:~$ docker swarm init --listen-addr 192.168.2.121:2377Swarm initialized: current node (tlm00esjj8c794bnt27ohy6ax) is now a manager.To add a worker to this swarm, run the following command:    docker swarm join \    --token SWMTKN-1-1d0zbvscbn5n879a8d8gninqc0zrgio9eu21vvh4c3r48h22o1-a0iw8a8mkwwczrnxeedff57br \    192.168.2.121:2377To add a manager to this swarm, run 'docker swarm join-token manager' and follow the instructions.
kube@ubuntu:~$ docker swarm join-token managerTo add a manager to this swarm, run the following command:    docker swarm join \    --token SWMTKN-1-1d0zbvscbn5n879a8d8gninqc0zrgio9eu21vvh4c3r48h22o1-brgeenpout0mom3506l19ioqi \    192.168.2.121:2377
kube@ubuntu:~$ docker swarm join-token -q  manager      //查看swarm manager的tokenSWMTKN-1-1d0zbvscbn5n879a8d8gninqc0zrgio9eu21vvh4c3r48h22o1-brgeenpout0mom3506l19ioqi
kube@ubuntu:~$ docker swarm join-token -q  worker       //查看swarm worker的tokenSWMTKN-1-1d0zbvscbn5n879a8d8gninqc0zrgio9eu21vvh4c3r48h22o1-a0iw8a8mkwwczrnxeedff57br
kube@zipkin:~$ docker swarm join \ --token SWMTKN-1-1d0zbvscbn5n879a8d8gninqc0zrgio9eu21vvh4c3r48h22o1-a0iw8a8mkwwczrnxeedff57br \192.168.2.121:2377This node joined a swarm as a worker.
kube@elastic:~$ docker swarm join \--token SWMTKN-1-1d0zbvscbn5n879a8d8gninqc0zrgio9eu21vvh4c3r48h22o1-a0iw8a8mkwwczrnxeedff57br \192.168.2.121:2377This node joined a swarm as a worker.
kube@tensorflow:~$ docker swarm join \--token SWMTKN-1-1d0zbvscbn5n879a8d8gninqc0zrgio9eu21vvh4c3r48h22o1-brgeenpout0mom3506l19ioqi \192.168.2.121:2377This node joined a swarm as a manager
kube@ubuntu:~$ docker  node lsID                           HOSTNAME    STATUS  AVAILABILITY  MANAGER STATUS2p25ctjidc4ep93x9dtc94o41    elastic     Ready   Active        tlm00esjj8c794bnt27ohy6ax *  ubuntu      Ready   Active        Leaderxw25t5biu4lt22ctfiqyy98ls    tensorflow  Ready   Active        Reachabley3tbcpks0hmatb2eylxo93516    zipkin      Ready   Active
kube@ubuntu:~$ docker service create --replicas 1 --name svc alpine ping docker.comyagle957bftymp5r9f4irpqe5
kube@ubuntu:~$ docker service create --replicas 3 --name redis --update-delay 10s --update-parallelism 1 redis:3.2.7xbfehf2v0pmx8onc6n0jvj145
0 0
原创粉丝点击