构建微服务实验环境(一):容器与应用
【摘要】微服务架构目前最流行的方案(最佳实践)是容器集群。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引擎基础架构
镜像(image)
An image is a read-only template with instructions for creating a Docker container.
镜像是创建docker容器指令的只读模板。包含一个只读的文件系统镜像,应用程序在这个文件系统上运行,并拥有属于自己的网络、内存、CPU 等资源的定义。通常,一个镜像申明了自己主进程的应用。
镜像一般在其他镜像基础上建立,如在 ubuntu 上添加自己的 apache 文件,然后在 apache 上建立 web 应用文件
容器(Container)
A container is a runnable instance of an image.
镜像中的程序(主进程)运行在只读文件镜像上,对现有文件变更将写在一个临时的卷上(新的一层),该主进程、相关进程、文件系统成为一个运行的实例。
- 每个容器创建后,有运行、暂停、中止状态,直到移除。
- 程序运行的产生的数据,都在容器中的文件中,Restart 不会丢失数据。
当主进程结束时,该实例同时结束运行。使用 –rm 表示运行后自动删除容器。
服务(Services)
Services allow you to scale containers across multiple Docker daemons, which all work together as a swarm with multiple nodes.
服务是一组运行于集群不同结点中可复制的容器的集合。通过服务发现机制,使用该服务的客户端可以透明的访问这些容器。这些容器的分布、升级、故障管理有集群统一管理。
一般地,集群内部服务容器地选择由 动态DNS 实现。
栈(stack)
A stack is a group of interrelated

本文介绍了如何在CentOS集群上构建微服务实验环境,包括安装CentOS与Docker,理解核心概念,如镜像、容器和服务,并通过Docker官方教程进行实践。文章详细阐述了Docker的安装过程、容器与服务的创建,并提到了Docker Swarm、Rancher等集群管理方案。此外,还推荐了使用阿里云或AWS进行云部署以获取更多技术支持。
最低0.47元/天 解锁文章
6万+

被折叠的 条评论
为什么被折叠?



