用来学习就可以了,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

  • 会生成以下内容 ```shell

Swarm initialized: current node (l47v6wb4624awqwn2pyef4r5c) is now a manager.

To add a worker to this swarm, run the following command:

  1. docker swarm join \
  2. --token SWMTKN-1-3fe486scrrsxmmz3x730zpr0b73d40pf62av9x3ahxe9psfgy8-c8il89ayodm0yw9e27znm734o \
  3. 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=<虚拟网络的名称> 即可