构建微服务实验环境(一):容器与应用
【摘要】微服务架构目前最流行的方案(最佳实践)是容器集群。AWS 的 ECS、docker 的 Swarm、google 的 Kubernetes(K8s),apache 的 mesos,包括 Rancher Labs 的 Rancher 。 建议使用 AWS 或 阿里云 等共有云部署,会有更多技术支持,让你体验不同方案的优势。这里仅为了让你更好理解容器集群工作原理,介绍在 Centos 集群上部署 Swarm、K8s、 Rancher 的方案。
特别提示 无论 swarm,k8s 甚至 AWS 的 ECS 都是快速进化的软件,每个月都会发生一些变化。
(1)容器与应用: 讲述 centos docker的安装,仓库、镜像、容器、服务的概念, dockerfile,compose 文件,容器管理图形界面,以单机操作为主线。
(2)Docker Swarm 集群:讲述集群(cluster)manager,worker,node 的概念与应用在集群部署。重点讲述容器网络、存储管理、集群管理、服务发现等知识。
(3)Rancher 管理平台:讲述多租户多主机容器运行管理平台 Rancher 的租户、环境、主机、环境模板概念与应用。包括 Rancher 自带集群管理 Cattle 的栈、服务的管理,需要读者对比与Docker Swarm 集群在容器基础服务、管理方式方面的差异
1、环境与网络
准备三台 Centos 的 物理机或虚拟机,虚拟机可使用 VMware 或 Vbox,本文案例主机采用 Window10,虚拟化软件 Vbox。
虚拟机应采用双网卡配置:
- 第一块网卡配 NAT,
- 第二块网卡按(Host-Only)配内部私有网络。
配置参考: docker 集群网络规划与 VM 网络配置
2、安装 CentOS 与 Docker 引擎
2.1 安装 CentOS 基础环境
1.安装CentOS服务器的模板
双网卡网络配置: NAT,192.168.56.250/24
具体过程:安装基础-centos-7-服务器
2.安装docker-master虚拟机
使用 VBox 复制上述服务器。使用 nmtui
配置:
- 第二网卡,例如:192.168.56.110/24
- 主机名:docker-master
2.2 安装 Docker 引擎
1. 在阿里云注册账号
进入阿里云,dev.aliyun.com
登陆后,进入【管理中心】
2. 安装 docker 引擎
如果是安装最新版本 docker:
- 【管理中心】 –> Docker镜像仓库 –> 加速器 –> centos
- 按提示操作
如果需要安装 docker 历史版本:
3. 启动 docker 引擎
systemctl start docker
systemctl enable docker
systemctl status docker
docker version
docker run --rm hello-world
4. 配置容器加速服务
- 【管理中心】 –> Docker镜像仓库 –> 加速器 –> centos
5. 建立你的镜像仓库
- 【管理中心】 –> Docker镜像仓库 –> 镜像列表 –> 华南1 –> 【创建镜像创库】
创建公有仓库,(一个仓库一般就存一个镜像的不同版本)。完成后,看到【管理】按钮,进入
仓库使用操作: 如上传 hello-world 镜像
- 列表
docker images
- 登陆
docker login --username=<your account> registry.cn-shenzhen.aliyuncs.com
- tag
docker tag hello-world registry.cn-shenzhen.aliyuncs.com/pmlpml/repo:hello-world
- 上传
docker push registry.cn-shenzhen.aliyuncs.com/pmlpml/repo:hello-world
- 下载
docker push registry.cn-shenzhen.aliyuncs.com/pmlpml/repo:hello-world
- tag
docker tag registry.cn-shenzhen.aliyuncs.com/pmlpml/repo:hello-world hello-world
- 删除
docker rmi registry.cn-shenzhen.aliyuncs.com/pmlpml/repo:hello-world
- 运行
docker run --rm hello-world
- 退出
docker logout registry.cn-shenzhen.aliyuncs.com
3、Docker 入门
docker 官网文档 Get Stated 给出了 6 个基础教程,Part1-6。 Part I 安装,请参考前面。
入门要求 docker 1.13 版本以上,当前版本 17.04.00 ce
3.1 核心概念
Docker引擎 (Docker Engine)
Docker Engine is a client-server application with these major components(一个客户-服务应用,含三个部件)
1)驻守(daemon)进程 docker
2) REST API 接口提供外部系统与 docker 进程交互
3) Cli 命令行接口的应用 docker 命令
图:Docker引擎基础架构
镜像(im