<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-Hans-CN">
	<id>https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Swarmkit_install</id>
	<title>Swarmkit install - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.linuxsa.org/index.php?action=history&amp;feed=atom&amp;title=Swarmkit_install"/>
	<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Swarmkit_install&amp;action=history"/>
	<updated>2026-04-20T13:13:29Z</updated>
	<subtitle>本wiki上该页面的版本历史</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://wiki.linuxsa.org/index.php?title=Swarmkit_install&amp;diff=1040&amp;oldid=prev</id>
		<title>Evan：​导入1个版本</title>
		<link rel="alternate" type="text/html" href="https://wiki.linuxsa.org/index.php?title=Swarmkit_install&amp;diff=1040&amp;oldid=prev"/>
		<updated>2019-10-14T13:52:37Z</updated>

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