1、先生活中集群
2、再软件中集群
3、最后总结
总结:不同服务实例,来共同提供服务的一组集合就是集群
1、先看两个集群例子:nginx集群,redis集群
2、然后总结
1、对称集群
不同服务实例,功能地位相等(每一个实例提供的功能机会相同)
定位:数据计算
2、非对称集群
不同服务实例,功能地位不相等(每一个实例提供功能的机会不相同)
定位:数据存储
接下来,考一下大家,大家认为docker集群是个什么集群
总结
1、docker集群是非常集群
见图进行解析
从docker集群图来进行分析,docker里面运行着容器,如果docker宕机?
docker容器对外提供 访问,如果访问量越大,一台docker的并发量毕竟有限
总结:
1、单点故障问题
2、性能问题
所以为了解决这两个问题,就出现了docker集群
1、swarm
2、k8s
但是我们今天只会讲解swarm,今天我们选择swarm
选择原因
1、swarm是docker官方提供的集群工具
2、k8s是谷歌开发的
3、k8s理解使用起来比较难
swarm 就好比是地铁购票机安装员。同理swarm就是地铁购票机安装员
Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。
1、node节点概念
2、task概念 — 后面再引入
3、service概念 — 后面再引入
4、stack概念 — 后面再引入
就是将集群的docker通过node分配角色的方式进行维护
node 就是docker的别名,就好比,我们去公司上班,每一个人都有一个工号,工号就是我们的别名,那么node就是docker的别名,但是node有两个类型,manager 和work,就是讲docker分成了两类,就好比,公司里面有老板和员工,manager就是老板,work就是员工,老板是管理的,员工是干事的。有时候人工不够的时候,老板也过来干事。
1、node :docker主机
2、管理节点(manager)
管理docker集群
1、集群配置
2、容器服务管理。
3、负载均衡
4、集群管理?
3、工作节点 (worker)
1、提供容器服务
在使用之前我们必须要准备一些概念,这些概念是swarm的核心,掌握了这些概念,就已经理解了swarm 50%
后面都是基于这些概念的操作
service是什么?
是指不同节点容器集合,用来维护容器
task是什么?
在集群环境中,用来运行容器
stack是什么?
是指stack的集合,用来维护service
条件
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
4、创建工作节点
docker swarm join --token SWMTKN-1-2bomg3tb4cs8f5g7oqrw34k1mql9i0tr2msn8leqyphgac5hct-db4iwy32sdr6m0bmqyhi47jyn 123.57.164.54:2377
5、查看集群消息,查看工作节点和管理节点
docker info
使用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:6066
使用stack 你们想一下,公司除了人工,是不是还有部分经理,还有什么,就是总经理,那么stack 就是总经理
就好比公司的部门经理
条件
1、rmcore镜像
2、nginx镜像
3、docker-compose.yml
4、stack
1、查看rmcore镜像和nginx镜像
使用rmcore镜像来进行集群服务部署
2、 如何使用docker stack?
1、输出docker命令,会看到有一个service管理命令
docker stack
2、然后输入docker stack命令
有很多的帮助命令
3、创建堆栈(服务集合)
1、创建一个stack目录(在当前目录/root下创建一个stack)
mkdir stack
2、配置yml文件
在原有docker.compose.yml增加配置
version: ‘3.4’
deploy: #集群模式配置 mode: replicated #配置副本模式,gloab replicas: 2 # 副本份数
3、创建stack
docker stack deploy -c docker-compose.yml rmstack
-c 是指定docker-compose.yml文件
rmcorestack 指定stack 标识(名称)
4、查看stack列表
docker stack ls
5、查看stack 服务列表信息
docker stack ps rmstack
或者 docker service ls
5、删除stack
docker stack rm rmstack
通过两个节点查看,所有的信息是否删除
version: '3' services: rmcore: image: rmcore ports: - 8088:80 - 8089:443 deploy: mode: replicated replicas: 2 nginx: image: nginx ports: - 8090:80 deploy: mode: replicated replicas: 2 6、进行网路访问
111.229.181.115:6066
123.57.164.54:6066
使用task运行容器
swarm不能做到
使用k8s做到
swarm不能做到
使用k8s做到