Swarmkit install
跳转到导航
跳转到搜索
install
info and pre
hostname 这一步其它可以不要 不像k8s那样一定要 192.168.88.20 manager 192.168.88.21 worker1 192.168.88.22 worker2 hostnamectl --static set-hostname
ins docker
ins swarmkit
搭建Go开发环境
#不建议用这个方法 请见下面的go docker #axel 就行哦 还是FQ吧 axel https://dl.google.com/go/go1.8.6.linux-amd64.tar.gz export GOROOT=/usr/local/go export PATH=/root/go/src/github.com/docker/swarmkit/bin:/usr/local/go/bin:$PATH export GOPATH=/root/go export SWARM_SOCKET=/tmp/controller/swarm.sock tar -xvf go1.12.6.linux-amd64.tar.gz -C /usr/local/ 加入 echo 'export PATH=$PATH:/usr/local/go/bin' >>/etc/profile export GOROOT=/usr/local/go/ export PATH=/usr/local/go/bin/:$PATH export GOPATH=/root mkdir src/github.com/docker/ -p cp -a swarmkit_bak/* src/github.com/docker/
go docker 镜像
建议用这种办法更加方便 第一种我试过 更加麻烦 #clone src git clone https://github.com/docker/swarmkit.git #不用 cd 进去目录 docker pull golang:1.12 [root@centos7 ]# docker run --rm -it \ -v `pwd`/swarmkit:/go/src/github.com/docker/swarmkit \ -w /go/src/github.com/docker/swarmkit/ golang:1.12 \ make binaries 🐳 bin/swarmd 🐳 bin/swarmctl 🐳 bin/swarm-bench 🐳 bin/swarm-rafttool 🐳 bin/protoc-gen-gogoswarm 🐳 binaries #这一步 所有要加入swarmkit集群的节点都要 [root@centos7 ~]# mv swarmkit/bin/swarmctl swarmkit/bin/swarmd /usr/local/bin/ [root@centos7 ~]# ls /usr/local/bin/ swarmctl swarmd
Initialize the node
Initialize the first node
swarmd --state-dir /tmp/node-mgmt-01 --listen-control-api /tmp/mgmt-01.sock --hostname mgmt-01 >/tmp/mmt-01.log 2>&1 &
swarmctl 查看集群信息
加入到环境变量吧
export SWARM_SOCKET=/tmp/mgmt-01.sock
export SWARM_SOCKET=/tmp/mgmte-01.sock #有一次多个e
[root@manager ~]# ip addr show eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 0e:68:40:d2:cd:4e brd ff:ff:ff:ff:ff:ff
inet 192.168.88.20/24 brd 192.168.88.255 scope global eth0
[root@manager ~]# swarmctl cluster inspect default
ID : ufcwpkw98g7wnxcjn7e3r79no
Name : default
Orchestration settings:
Task history entries: 5
Dispatcher settings:
Dispatcher heartbeat period: 5s
Certificate Authority settings:
Certificate Validity Duration: 2160h0m0s
Join Tokens:
Worker: SWMTKN-1-270tl6zrmapolhgc6wa88lz523apjt0zlvujqmajve0n3jaoma-4fgi6jba3bym7wsaogb9mrr7g
Manager: SWMTKN-1-270tl6zrmapolhgc6wa88lz523apjt0zlvujqmajve0n3jaoma-1hiykln32o7ssmjr4k6vbi7ax
#--join-add 后为manager ip
swarmd -d /tmp/node-2 --hostname node-2 --join-addr 192.168.88.20:4242 --join-token SWMTKN-1-270tl6zrmapolhgc6wa88lz523apjt0zlvujqmajve0n3jaoma-4fgi6jba3bym7wsaogb9mrr7g >/tmp/node-02.log 2>&1 &
swarmd -d /tmp/node-3 --hostname node-3 --join-addr 192.168.88.20:4242 --join-token SWMTKN-1-270tl6zrmapolhgc6wa88lz523apjt0zlvujqmajve0n3jaoma-4fgi6jba3bym7wsaogb9mrr7g >/tmp/node-03.log 2>&1 &
[root@manager ~]# swarmctl node ls
ID Name Membership Status Availability Manager Status
-- ---- ---------- ------ ------------ --------------
c1k7uwl4st3ninfsfe0gp9bau mgmt-01 ACCEPTED READY ACTIVE REACHABLE *
x1ty0szhvhzvyeljj9yhpk3lt node-2 ACCEPTED READY ACTIVE
xm0moxdqlobo23gger0wxfw43 node-3 ACCEPTED READY ACTIVE
看到有三台机器了
停机 维护 swarmctl node drain 节点id
恢复 swarmctl node activate 节点id
usage
集群上运行服务
[root@manager ~]# swarmctl service create --name nginx --image nginx:1.16-alpine nmjywh2kajsv5kdiwa5v4ohmw [root@manager ~]# swarmctl service ls ID Name Image Replicas -- ---- ----- -------- nmjywh2kajsv5kdiwa5v4ohmw nginx nginx:1.16-alpine 0/1 # 添加容器 副本个数 [root@manager ~]# swarmctl service update nginx --replicas 3 nmjywh2kajsv5kdiwa5v4ohmw [root@manager ~]# swarmctl service ls ID Name Image Replicas -- ---- ----- -------- nmjywh2kajsv5kdiwa5v4ohmw nginx nginx:1.16-alpine 3/3
trouble
得用go1.12(docker) 不然编译有问题 还是用docker方便 安装文件的老是有问题呢
2019年 06月 13日 星期四 10:13:46 CST
tatus: Downloaded newer image for golang:1.8
WARNING: IPv4 forwarding is disabled. Networking will not work.
解决办法:
# vi /etc/sysctl.conf
或者
# vi /usr/lib/sysctl.d/00-system.conf
添加如下代码:
net.ipv4.ip_forward=1
重启network服务
# systemctl restart network
查看是否修改成功
# sysctl net.ipv4.ip_forward
如果返回为“net.ipv4.ip_forward = 1”则表示成功了
这时,重启容器即可。
https://yq.aliyun.com/articles/233818
make: *** No rule to make target 'binaries'. Stop.
不要cd 进去swarmkit 目录
docker go 环境老报错
# github.com/docker/swarmkit/manager/allocator/cnmallocator
manager/allocator/cnmallocator/drivers_ipam.go:18: undefined: strings.Builder
direct.mk:94: recipe for target 'bin/swarmd' failed
make: *** [bin/swarmd] Error 2
see also
官方教程一定要看 很多在里面来的 https://github.com/docker/swarmkit
SwarmKit初体验(redis service) 比传统集群工具更方便
Hello Docker Swarm with SwarmKit