OpenStack Magnum通常用于部署和监控容器——如Docker Swarm、Google Kubernetes 和 Apache Mesos等,但是除此之外这个项目还有一些其他有用工具。
易于部署,并且体积要比hypervisor小很多,这些都是容器技术日益流行的原因,此外,单个容器只需要完成特定任务。现在最为常见的三种容器是Docker Swarm、Google Kubernetes和Apache Mesos。
使用容器技术,管理员能够部署完整应用或者是应用的重要组成部分,并且其体积只有几十MB。容器启动过程只需要几秒钟,而hypervisor需要数分钟才能够完成启动过程。
容器运行在主机操作之上,因此其中包含了一个迷你操作系统。这种架构是必要的,因为不论安装何种应用程序,都需要运行在底层操作系统之上。但是不同于hypervisor,容器不会额外的系统开销(比如模拟硬件)。
之前容器只能工作在Linux平台上,而现在其也能够支持Windows Server 2016了。
OpenStack和容器
最为常见的容器使用方式就是下载完整系统,之后立刻开始进行工作。比如,管理员需要创建并运行Ubuntu虚拟机或者Apache Spark环境,那么只需要安装Docker,之后从Docker公共镜像库中下载已经封装好的镜像就可以了。
如果企业需要使用50种应用,并且全部运行在容器当中,那么用不了多久管理员就会忘记应用程序和容器的对应关系,因为缺少集中管理机制。这种情况将会导致孤立容器占用资源——并且增加大量的云成本。而OpenStack Magnum可以帮助解决这种问题。
OpenStack Magnu能够部署容器并且对其进行监控记录。此外还允许管理员对应用程序进行抽象,快速复制大量容器以满足负载需求,并且在不需要的时候随时关闭。
OpenStack Magnum
OpenStack Magnum使用非常简单。如,部署一个容器只需三个步:
1.使用OpenStack Magnum创建Google Kubernetes、Docker Swarm或者Apache Mesos Bay。
2.创建Docker Swarm Bay,Docker Swarm将会在多台机器之间启用集群。
3.现在管理员就可以运行Docker命令来从OpenStack Glance当中获取镜像,并且启动Docker容器了。
管理员可以使用OpenStack Glance程序来存储Docker镜像,就像hypervisor镜像一样。比如,只需要两个步骤就可以下载MySQL,并将其存储到Glance当中:
docker pull mysqldocker save mysql | glance image-create --is-public=True --container-format=docker --disk-format=raw --name mysql
OpenStack Magnum中对容器的逻辑分组称为Bay。Bay中包含了由OpenStack编排工具Heat创建的一组OpenStack镜像。Heat能够在模板中定义云应用需要使用的所有资源,这个集合被称为栈,这种方式遵循了AWS CloudFormation所定义的规则。
Docker Swarm将主机资源抽象为Docker容器共享的资源池
其他OpenStack Magnum工具
在OpenStack Magnum项目中,还有另外两款十分有用的工具:Kolla和Murano。
Kolla支持在容器当中部署OpenStack。很多情况都需要这样做,比如为了降低安装OpenStack的复杂度等。更为常见的情况是为开发人员提供一个能够完成工作的OpenStack环境。Kolla使用Ansible完成实现这种功能。
Murano帮助管理员对容器镜像进行分类,之后添加到Horizon dashboard中。除了管理员自己定义的类别之外,还可以使用一些公共类别,比如OpenStack Community App Catalog、 Google Container Repository和Docker Hub/Registry等。这样做的好处在于能够极大简化使用和部署Docker Swarm、Google Kubernetes以及Apache Mesos容器的流程,并且将它们加入到Horizon网页图形界面当。