docker-集群
什么是docker集群
什么是集群
1、现实生活中集群
2、软件中集群
3、最后总结
总结:不同服务实例,来共同提供服务的一组集合就是集群
集群类型
1、先看两个集群例子:nginx集群,redis集群
2、然后总结
1、对称集群
不同服务实例,功能地位相等(每一个实例提供的功能机会相同)
定位:数据计算,nginx集群(不存储任何状态)
2、非对称集群
不同服务实例,功能地位不相等(每一个实例提供功能的机会不相同)
定位:数据存储,redis集群(会存储数据状态)
什么是docker集群
接下来,考一下大家,大家认为docker集群是个什么集群
总结
1、docker集群是非对称集群
为什么要使用docker集群
从docker集群图来进行分析,docker里面运行着容器,如果docker宕机?
docker容器对外提供 访问,如果访问量越大,一台docker的并发量毕竟有限
总结:
1、单点故障问题
2、性能问题
所以为了解决这两个问题,就出现了docker集群
实现docker集群方式
-
swarm
-
k8s
swarm如何管理docker集群
swarm是什么,怎么理解?
swarm 就好比是地铁购票机安装员。同理swarm就是地铁购票机安装员
Docker Swarm 是 Docker 的集群管理工具。它将 Docker 主机池转变为单个虚拟 Docker 主机。 Docker Swarm 提供了标准的 Docker API,所有任何已经与 Docker 守护程序通信的工具都可以使用 Swarm 轻松地扩展到多个主机。
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是如何操作集群节点容器的?
service是什么?
是指不同节点容器集合,用来维护容器
task是什么?
在集群环境中,用来运行容器
stack是什么?
是指stack的集合,用来维护service
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
4、创建工作节点
docker swarm join --token SWMTKN-1-2bomg3tb4cs8f5g7oqrw34k1mql9i0tr2msn8leqyphgac5hct-db4iwy32sdr6m0bmqyhi47jyn 123.57.164.54:2377
5、查看集群消息,查看工作节点和管理节点
docker info
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:6066
swarm集群中如何管理不同容器?
使用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
swarm如何运行容器
使用task运行容器
swarm如何监听容器状态?
swarm不能做到
使用k8s做到
swarm如何记录容器日志?
swarm不能做到
使用k8s做到