docker的swarm集群
docker集群技术有很多,现在比较火的就是k8s,但是k8s安装较为复杂,而swarm是一款相对简单、更加轻量的docker集群容易上手。
1、swarm简单介绍
Swarm
是Docker官方提供的一款集群管理和编排工具,它可以把N台Docker主机抽象为一个整体,并且通过一个入口统一管理这些Docker主机上的各种Docker资源。在当时和Swarm一起发布的Docker管理工具还有Machine以及Compose。Docker Compose
和Docker Swarm 一样,都是 Docker 官方容器编排项目,但不同的是,Docker Compose 是一个在单个服务器或主机上创建多个容器的工具,而 Docker Swarm 则可以在多个服务器或主机上创建容器集群服务,对于微服务的部署,显然 Docker Swarm 会更加适合。Docker Machine
是 Docker 官方编排项目之一,它可以创建多个虚拟机,在多种平台上可以快速安装 Docker 环境。
2、swarm特性
Swarm内置kv存储功能,提供了众多特性
1)Docker Engine集成集群管理
使用Docker Engine CLI 创建一个Docker Engine的Swarm模式,在集群中部署应用程序服务。
2)去中心化设计
Swarm角色分为Manager和Worker节点,Manager节点故障不影响应用使用。
3) 扩容缩容
可以声明每个服务运行的容器数量,通过添加或删除容器数自动调整期望的状态。
4)期望状态协调
Swarm Manager节点不断监视集群状态,并调整当前状态与期望状态之间的差异。
5) 多主机网络
当初始化或更新应用程序时,Swarm manager会自动为网络上的容器分配IP地址。
6)服务发现
Swarm manager节点为集群中的每个服务分配唯一的DNS记录和负载均衡。可以通过Swarm内置的DNS服务器查询集群中每个运行的容器。
7)负载均衡
实现服务负载均衡,提供入口访问。
8) 安全传输
Swarm中的每个节点使用TLS相互验证和加密,确保安全的其他节点通信。
2、多台机器swarm安装
从 Docker 1.12.0 版本开始,Docker Swarm 已经包含在 Docker 引擎中,如果是低版本的就需要安装swarm。
查看docker版本docker -v
1)查询swarm容器docker search swarm
2)拉取swarm容器docker pull docker.io/swarm
查看镜像docker images
3)swarm初始化
(1)在 A机器上docker swarm init
或者docker swarm init --advertise-addr 本机ip地址
要记住此token,此集群token是全球唯一的 token,作为集群唯一标识。后续将其他节点加入集群都会用到这个token值。此机器的docker已经加入集群了,而且是个manager。
(2)在 B、C机器上docker swarm join --token A机器的token
(3)在A机器上查看节点docker node list
3、使用manager machine在一台机器上安装
因为只有一台机器,我们可以使用manager machine创建几个虚拟机
1)安装 docker-machinecurl -L https://github.com/docker/machine/releases/download/v0.8.2/docker-machine-
uname -s-
uname -m>/usr/local/bin/docker-machine && \ chmod +x /usr/local/bin/docker-machine
查看manager machine版本docker-machine -version
2)创建虚拟机(worker1 和 worker2)docker-machine create -d virtualbox worker1
发现一个错误,virtualbox并未安装
获取virtualbox安装包wget https://download.virtualbox.org/virtualbox/rpm/el/virtualbox.repo -P /etc/yum.repos.d
安装virtualboxyum install VirtualBox-5.2
3) 然后继续创建虚拟机,任然 报错
安装提示安装3.10.0-957.12.2.el7.x86_64yum -y install kernel-devel-3.10.0-957.12.2.el7.x86_64
安装完成后再运行/sbin/vboxconfig
4)继续创建虚拟机,依然报错
VirtualBox, 里面已经设置了启用虚拟化技术 VT-x/AMD-V,它需要依赖于硬件虚拟化支持
这就需要硬件支持,重启进入BIOS,开启硬件支持,重启docker即可
因为我用的是阿里云服务器,已经无法二次虚拟化了,所以此功能也就不再演示了