OpenStack Magnum如何部署Docker Swarm等容器

简介:

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容器共享的资源池

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网页图形界面当。

本文转自d1net(转载)

相关实践学习
深入解析Docker容器化技术
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。Docker是世界领先的软件容器平台。开发人员利用Docker可以消除协作编码时“在我的机器上可正常工作”的问题。运维人员利用Docker可以在隔离容器中并行运行和管理应用,获得更好的计算密度。企业利用Docker可以构建敏捷的软件交付管道,以更快的速度、更高的安全性和可靠的信誉为Linux和Windows Server应用发布新功能。 在本套课程中,我们将全面的讲解Docker技术栈,从环境安装到容器、镜像操作以及生产环境如何部署开发的微服务应用。本课程由黑马程序员提供。     相关的阿里云产品:容器服务 ACK 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理。整合阿里云虚拟化、存储、网络和安全能力,打造云端最佳容器化应用运行环境。 了解产品详情: https://www.aliyun.com/product/kubernetes
目录
相关文章
|
4月前
|
应用服务中间件 网络安全 nginx
手把手教你使用 Docker 部署 Nginx 教程
本文详解Nginx核心功能与Docker部署优势,涵盖镜像拉取、容器化部署(快速、挂载、Compose)、HTTPS配置及常见问题处理,助力高效搭建稳定Web服务。
1704 4
|
4月前
|
应用服务中间件 Linux nginx
在虚拟机Docker环境下部署Nginx的步骤。
以上就是在Docker环境下部署Nginx的步骤。需要注意,Docker和Nginix都有很多高级用法和细节需要掌握,以上只是一个基础入门级别的教程。如果你想要更深入地学习和使用它们,请参考官方文档或者其他专业书籍。
205 5
|
5月前
|
存储 Docker Python
docker 部署 sftp
本文介绍SFTP服务的部署与配置,包括users.conf用户配置规则、Docker容器运行命令及上传目录权限说明,重点解析atmoz/sftp镜像的chroot机制与子目录映射,确保用户登录后正确访问/upload目录,并提供Python脚本实现文件上传示例。
459 12
docker 部署 sftp
|
5月前
|
运维 Linux 数据库
基于 Docker 部署 n8n 指南,新手一看就会
本教程详解如何通过 Docker 快速部署开源自动化工具 n8n,适合新手快速上手。内容涵盖官方部署步骤、常见难点及第三方一键部署方案,助你高效搭建自动化工作流平台。
1840 6
|
4月前
|
存储 NoSQL Redis
手把手教你用 Docker 部署 Redis
Redis是高性能内存数据库,支持多种数据结构,适用于缓存、消息队列等场景。本文介绍如何通过Docker快速拉取轩辕镜像并部署Redis,涵盖快速启动、持久化存储及docker-compose配置,助力开发者高效搭建稳定服务。
1243 7
|
4月前
|
存储 搜索推荐 数据库
🚀 RAGFlow Docker 部署全流程教程
RAGFlow是开源的下一代RAG系统,融合向量数据库与大模型,支持全文检索、插件化引擎切换,适用于企业知识库、智能客服等场景。支持Docker一键部署,提供轻量与完整版本,助力高效搭建私有化AI问答平台。
2999 8
|
4月前
|
存储 关系型数据库 MySQL
MySQL Docker 容器化部署全指南
MySQL是一款开源关系型数据库,广泛用于Web及企业应用。Docker容器化部署可解决环境不一致、依赖冲突问题,实现高效、隔离、轻量的MySQL服务运行,支持数据持久化与快速迁移,适用于开发、测试及生产环境。
731 4
|
5月前
|
前端开发 JavaScript 应用服务中间件
在Docker部署的前端应用中使用动态环境变量
以上步骤展示了如何在 Docker 配置过程中处理并注入环墨遁形成可执行操作流程,并确保最终用户能够无缝地与之交互而无须关心背后复杂性。
262 13
|
Linux Docker 容器
Docker操作 :容器命令
Docker操作 (四)
380 56