Docker中的网络与数据管理(Docker Swarm集群)

一、Docker Swarm:一个用于创建和管理Docker集群的工具

二、Docker Swarm集群的主要特点

  • 方便创建和管理集群
  • 可扩展
  • 可实现期望的状态调节
  • 集群中多主机网络自动扩展管理
  • 提供服务发现功能
  • 可实现负载均衡
  • 安全性强
  • 支持延迟更新和服务回滚

 三、Docker Sware使用

(一)环境搭建

(1)准备3台Ubuntu系统主机,每个主机都需要安装Docker并且连接网络,Docker版本为1.12及以上,修改3台主机名分别是

Manager、worker1、worker2

(2)集群管理节点设置静态IP,集群中所有节点都可以访问该管理接点

 Docker中的网络与数据管理(Docker Swarm集群)Docker中的网络与数据管理(Docker Swarm集群)

Docker中的网络与数据管理(Docker Swarm集群)

设置完成后,在终端输入ping  baidu.com验证是否成功。

(3)集群节点之间必须使用相应的协议并保证以下端口号可用

  • 用于集群管理通信的TCP端口2377;
  • TCP和UDP端口7946,用于节点间的通信;
  • UDP端口4789,用于覆盖网络流量

 (二)创建Docker Swarm集群

(1)在名为Manager的Docker机器上创建Docker Swarm集群

#docker swarm init --advertise-addr  Manager的静态IP地址   //创建集群

Docker中的网络与数据管理(Docker Swarm集群)

 此图表示集群创建成功,显示的两条指令分别是在添加工作节点和管理节点时使用

(2)在管理节点上使用docker node ls指令查看集群节点信息

#docker  node ls      //查看集群节点信息

Docker中的网络与数据管理(Docker Swarm集群)

(3)向Docker swarm集群中添加工作节点

启动另外两台Docker节点 worker1和worker2,分别执行向集群中加入工作节点的指令(使用创建集群时显示出来的指令)

Docker中的网络与数据管理(Docker Swarm集群)

Docker中的网络与数据管理(Docker Swarm集群)

(4)验证工作节点是否添加成功

Docker中的网络与数据管理(Docker Swarm集群)

(5)向Docker Swarm集群中部署服务

在Docker Swarm集群中部署服务时,既可以使用Docker Hub上自带的镜像来启动服务,也可以使用自己通过Dockerfile构建的镜像来启动服务(这里使用自带镜像)

#docker service create --replicas 1 --name helloworld apline ping docker.com

Docker中的网络与数据管理(Docker Swarm集群)

(6)查看Docker swarm集群中的服务

#docker  service  ls     //查看当前集群中的服务列表信息

Docker中的网络与数据管理(Docker Swarm集群)

 #docker  service inspect  helloworld      //查看部署服务的具体详情

Docker中的网络与数据管理(Docker Swarm集群)

#docker  service  ps  helloworld    //查看指定服务在集群节点上的分配情况和运行情况

Docker中的网络与数据管理(Docker Swarm集群)

 从图中可以看出,helloworld服务的5个副本实例被随机分配到Manager、worker1、worker2这三个节点上运行,并且

他们的状态都是running,表示服务正常运行

注:在集群环境中,服务副本是随机均衡分配到不同节点上的

(7)删除服务

#docker  service  rm  helloworld      //删除服务

Docker中的网络与数据管理(Docker Swarm集群)

(8)访问服务

在集群管理节点Manager上,执行docker  network ls查看网络列表

Docker中的网络与数据管理(Docker Swarm集群)

在集群管理节点Manager上,创建以overlay为驱动的自定义网络

Docker中的网络与数据管理(Docker Swarm集群)

在集群管理节点Manager上,再次部署服务

Docker中的网络与数据管理(Docker Swarm集群)

在集群管理节点Manager上,使用docker  service ps my-web指令查看服务的两个副本的运行情况

Docker中的网络与数据管理(Docker Swarm集群)

外界访问服务(IP+8080端口访问)

Docker中的网络与数据管理(Docker Swarm集群)

Docker中的网络与数据管理(Docker Swarm集群)

Docker中的网络与数据管理(Docker Swarm集群)

当在任意节点访问服务的时候,都可以正常访问部署的服务,这是由于集群负载均衡将请求路由到一个活动容器,从而实现容器

内部正常访问,这也体现了Docker  Swarm负载均衡的特点。

 

 

 

 

 


 

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-06-29
  • 2021-05-10
  • 2021-09-16
  • 2021-07-20
  • 2022-12-23
  • 2021-11-20
猜你喜欢
  • 2022-01-11
  • 2021-10-10
  • 2022-12-23
  • 2021-06-16
  • 2021-05-21
  • 2022-01-08
相关资源
相似解决方案