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相互验证和加密,确保安全的其他节点通信。

扫描二维码关注公众号,回复: 6496483 查看本文章

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-machine
curl -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
安装virtualbox
yum install VirtualBox-5.2
在这里插入图片描述
3) 然后继续创建虚拟机,任然 报错
在这里插入图片描述
安装提示安装3.10.0-957.12.2.el7.x86_64
yum -y install kernel-devel-3.10.0-957.12.2.el7.x86_64
安装完成后再运行
/sbin/vboxconfig
4)继续创建虚拟机,依然报错
VirtualBox, 里面已经设置了启用虚拟化技术 VT-x/AMD-V,它需要依赖于硬件虚拟化支持
在这里插入图片描述
这就需要硬件支持,重启进入BIOS,开启硬件支持,重启docker即可
因为我用的是阿里云服务器,已经无法二次虚拟化了,所以此功能也就不再演示了

猜你喜欢

转载自blog.csdn.net/k393393/article/details/91359687