用来学习就可以了,k8s 是既定事实
- docker 分布式网络的一种方式**
依赖端口
| 端口 | 说明 | | —- | —- | | 2376 | docker 实体机才需要 | | 2377 | docker 集群的节点通讯,只需要在管理节点上打开 | | 7946 | docker 节点间通讯,用于容器网络发现 | | 4789 | docker 覆盖网络流量,用于容器入口网络 |
开启防火墙
firewall-cmd —zone=public —permanent —add-port=9000/tcp # 用来提供外部连接 firewall-cmd —zone=public —permanent —add-port=2377/tcp firewall-cmd —zone=public —permanent —add-port=7946/tcp firewall-cmd —zone=public —permanent —add-port=7946/udp firewall-cmd —zone=public —permanent —add-port=4789/tcp firewall-cmd —zone=public —permanent —add-port=4789/udp firewall-cmd —reload
创建swarm节点
选择一个宿主机,执行以下命令
- 创建 swarm 集群的节点为 manager 节点
docker swarm init
- 创建 swarm 集群的节点为 manager 节点
会生成以下内容 ```shell
Swarm initialized: current node (l47v6wb4624awqwn2pyef4r5c) is now a manager.
To add a worker to this swarm, run the following command:
docker swarm join \
--token SWMTKN-1-3fe486scrrsxmmz3x730zpr0b73d40pf62av9x3ahxe9psfgy8-c8il89ayodm0yw9e27znm734o \
192.168.10.101:2377
To add a manager to this swarm, run ‘docker swarm join-token manager’ and follow the instructions.
```
- 在其他宿主机下执行上面的
docker swarm join ...
命令
管理 swarm 节点
swarm 节点管理者才能查看
docker node ls
swarm 节点管理者才能删除其他节点(-f 表示强制删除ACTIVE状态的节点
docker node rm -f ID
swarm 节点管理者如果要解散 swarm 节点,需要带上 -f
docker swarm leave -f
普通节点离开
- 如果被踢开网络,也需要被踢开的节点执行该命令
docker swarm leave
- 如果被踢开网络,也需要被踢开的节点执行该命令
创建共享网络
- 只有 manager 节点 才能查看共享网络
- 可以让一个集群划分在一个网络中,避免 ip 不够分配
创建指定名称的 swarm 虚拟网络
docker network create -d overlay —attachable
查看 network
docker network ls
删除共享网络
docker network rm
创建分布式容器
- 创建的时候,带上
--net=<虚拟网络的名称>
即可