企业运维实战--Docker三剑客三之docker swarm小规模集群搭建、图形化管理docker集群
前言-docker swarm简介
在 Docker 1.12 版本发布之后,swarm合并到了 Docker 中,成为 Docker 的一个子命令。Swarm 是 Docker 社区提供的唯一一个原生支持 Docker 集群管理的工具,它可以把多个 Docker 主机组成的系统转换为单一的虚拟 Docker 主机,使得容器可以组成跨主机的子网网络。
Docker swarm 是一个为 IT 运维团队提供集群和调度能力的编排工具。
本章节将要讲解docker compose、docker machine、docker swarm中的docker swarm ,这三个项目都是docker的原生支持,号称docker三剑客,掌握后基本可以帮助您管理docker集群。
Docker Swarm 优点
- 任何规模都有高性能表现
- 灵活的容器调度
- 服务的持续可用性
- 和 Docker API 及整合支持的兼容性
- Docker Swarm 为 Docker 化应用的核心功能(诸如多主机网络和存储卷管理)提供原生支持。
Docker swarm节点分为manager管理节点和worker工作节点。
Task任务是swarm中的最小调度单位,可以理解为一个单一的容器。
Services服务是指一组任务的集合,服务定义了任务的属性。
大致的工作原理图如下:
docker swarm相比kubernetes、mesos项目,还是显得单薄,更加适合小规模docker集群。
Docker swarm实践
docker swarm实现小规模集群负载均衡
准备虚拟机,server1负责私有harbor仓库,server2负责docker swarm 集群leader , server3、server4为集群后端
server1:
配置harbor私有容器仓库,详细配置步骤可查看本人博客:
企业运维实战–最全Docker学习笔记2.本地容器仓库加密认证、harbor远程容器仓库搭建
配置好harbor后,启动(第一次执行脚本安装后无需此操作)
docker-compose up -d
docker-compose ps 查看是否健康启动
上传镜像myapp到容器仓库
docker load -i myapp.tar
打标签
docker tag ikubernetes/myapp:v1 hyl.westos.org/library/myapp:v1
docker tag ikubernetes/myapp:v2 hyl.westos.org/library/myapp:v2
docker push hyl.westos.org/library/myapp:v1
docker push hyl.westos.org/library/myapp:v2
进入harbor仓库web查看
server2:
初始化集群
docker swarm init
docker node ls
为server3、server4安装docker-ce,解决warning
cd /etc/sysctl.d/
scp docker.conf root@172.25.9.3:/etc/sysctl.d/
scp docker.conf root@172.25.9.4:/etc/sysctl.d/
server3、server4连接仓库,传递认证key和仓库json文件
cd /etc/docker/
ls
cat daemon.json