docker-集群


什么是docker集群

不同服务实例,来共同提供服务的一组集合,集群

集群类型

1、先看两个集群例子:nginx集群,redis集群

2、然后总结

1、对称集群

? 不同服务实例,功能地位相等(每一个实例提供的功能机会相同)

? 定位:数据计算

2、非对称集群

? 不同服务实例,功能地位不相等(每一个实例提供功能的机会不相同)

? 定位:数据存储

什么是docker集群

接下来,考一下大家,大家认为docker集群是个什么集群

总结

1、docker集群是非对称集群

 

为什么要使用docker集群

? 从docker集群图来进行分析,docker里面运行着容器,如果docker宕机?

docker容器对外提供 访问,如果访问量越大,一台docker的并发量毕竟有限

总结:

? 1、单点故障问题

? 2、性能问题

所以为了解决这两个问题,就出现了docker集群

实现docker集群方式

? 1、swarm

? 2、k8s

? 但是我们今天只会讲解swarm,今天我们选择swarm

选择原因

1、swarm是docker官方提供的集群工具

2、k8s是谷歌开发的

3、k8s理解使用起来比较难

swarm如何管理docker集群

swarm是什么,怎么理解?

swarm 就好比是地铁购票机安装员。同理swarm就是地铁购票机安装员

Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。

swarm内部概念

1、node节点概念

就是将集群的docker通过node分配角色的方式进行维护

node 就是docker的别名,就好比,我们去公司上班,每一个人都有一个工号,工号就是我们的别名,那么node就是docker的别名,但是node有两个类型,manager 和work,就是讲docker分成了两类,就好比,公司里面有老板和员工,manager就是老板,work就是员工,老板是管理的,员工是干事的。有时候人工不够的时候,老板也过来干事。

 

swarm如何创建docker集群

条件

1、两台以上docker主机

2、docker swarm 

步骤

1、安装两台docker主机,使用linux或者centos7.0以上

? 安装1.12 版本以上的docker,会在主机上默认提供支持

2、如何使用docker swarm?

? 1、输出docker命令,会看到有一个swarm管理命令

? docker swarm

? 2、然后输入docker swarm 命令

? 可以看到很多的帮助命令

? 3、创建集群管理节点

? docker swarm init --advertise-addr 123.57.164.54  (创建老板===manager) 创建成功后提示一个创建工作节点(员工===worker的命令) 把这个命令复制到另外一个docker主机上运行

? 4、创建工作节点 (复制到另外一个docker主机上运行)

? docker swarm join --token SWMTKN-1-2bomg3tb4cs8f5g7oqrw34k1mql9i0tr2msn8leqyphgac5hct-db4iwy32sdr6m0bmqyhi47jyn 123.57.164.54:2377 

? 5、查看集群消息,查看工作节点和管理节点

? docker info

工作节点 (worker)

1、提供容器服务

swarm是如何操作集群节点容器的?

在使用之前我们必须要准备一些概念,这些概念是swarm的核心,掌握了这些概念,就已经理解了swarm 50%

后面都是基于这些概念的操作

service是什么?(类似部门经理)

? 是指不同节点容器集合,用来维护容器 (用来创建集群的容器)

task是什么?

? 在集群环境中,用来运行容器

stack是什么?

? 是指stack的集合,用来维护service

swarm集群中如何管理容器?

? 使用service 你们想一下,公司除了人工还有什么,是不是还有部分经理,那么service就是部分经理

? 就好比公司的部门经理

? 条件

? 1、rmcore镜像

? 2、nginx镜像

? 3、docker service

? 步骤

? 1、查看rmcore镜像和nginx镜像

? 使用rmcore镜像来进行集群服务部署

? 2、 如何使用docker service?

? 1、输出docker命令,会看到有一个service管理命令

? docker service

? 2、然后输入docker service命令

? 可以看到很多的帮助命令

? 3、创建服务 (所有的操作在管理节点中操作)

? docker service create --replicas 1 -- name rmcoreservice rmcore

? --replicas 配置服务副本(容器在不同节点启动)

? --name 服务名称

? 4、列表服务

? docker service ls

? 5、查看服务运行在哪个节点

? docker service ps rmcore-service

? 6、查看服务部署详细信息

? docker service inspect --pretty rmcoreservice

? 7、服务扩展(向其他节点添加服务副本)

? docker service scale rmcoreservice=2

? 8、删除服务

? docker service rm rmcoreservice

? 9、服务如何进行外部访问

? docker service create --replicas 1 -- name --publish 6066:80 rmcoreservice

? --publish 发布端口例如 6066:80

? 10、进行网络访问

? 111.229.181.115:6066

? 123.57.164.54:606699-6