前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用CoreOS,Docker和Nirmata部署微服务风格的应用程序

使用CoreOS,Docker和Nirmata部署微服务风格的应用程序

作者头像
亦非demo
发布2018-01-08 14:08:15
1.3K0
发布2018-01-08 14:08:15

[本文由Ritesh Patel撰写。]

随着应用容器的运用持续火热,设计用于运行容器的“最小”操作系统也悄然而生。CoreOS就是其中一个操作系统,它被设计用于运行现代原生云应用,并且支持Docker容器。

在这篇文章中,我将介绍如何使用Nirmata在CoreOS上部署和运行微服务应用程序,可以简单分为以下几个主要步骤:

  1. 创建一个主机组
  2. 搭建一个CoreOS VM
  3. 部署一个应用程序

下面我会详细介绍每一步。

创建一个主机组

对于Nirmata,主机组相当于一个相同的资源池。您可以为每个云提供商定义一个或多个主机组,然后将主机组映射到应用程序和服务级别策略。

Nirmata支持多个公共和私有云提供商。因为有这样的设定,我决定采用“不尽相同”的提供商,并将各个CoreOS实例直接连接到我的主机组。

第一步是用Nirmata为CoreOS虚拟机创建一个新的主机组。选择“Host Groups” - >“Other”,然后点击“Add Host Group ”按钮添加主机组。在创建向导中,说明主机组的名称,然后配置其资源选择策略。

创建主机组
创建主机组

在资源选择策略中,我选择“Sandbox”作为环境类型,“availableMemory”作为放置类型。此策略可确保每当在“沙箱”环境中部署应用时,会使用CoreOS集群并根据集群内的VM提供的内存来放置容器。

创建主机组策略
创建主机组策略

创建好主机组后,就能将CoreOS虚拟机添加到集群中,同时会给出用于设置虚拟机连接Nirmata并添加到主机组的CLI命令。

主机组创建
主机组创建

搭建一个CoreOS VM

为了搭建CoreOS虚拟机与Nirmata一起运作,可以使用SSH访问虚拟机并运行命令来将虚拟机连接到Nirmata并添加到我的主机组。在Host Groups页面已经给出了这条命令:

sudo curl -sSL http://www.nirmata.io/nirmata-host-agent/setup-nirmata-agent.sh | sudo sh -s other <host-group-id>

运行该命令会下载Host Agent容器映像,并将其作为systemd service运行。

安装Nirmata代理
安装Nirmata代理

你可以使用docker ps命令验证主机代理是否正在运行:

验证主机代理
验证主机代理

如果主机代理在运行,它就会连接到Nirmata并且主机将被添加到主机组

主机连接-1
主机连接-1

你可以重复此步骤将多个CoreOS VM添加到你的主机组。这里我添加了一个虚拟机到我的主机组,所以可以看到CoreOS集群里有2个虚拟机。

主机连接的修整
主机连接的修整

部署您的应用程序

完成后就可以准备部署应用程序了,这里我已经在Nirmata导入了一个包含6个服务的小型演示应用。

应用蓝图
应用蓝图

要创建部署此应用的环境,请选择“Environments”然后点击“Add Environment”来添加环境。在向导中,选择环境类型为“Sandbox”,应用程序为“shopme-demo”。

创建环境
创建环境

点击完成按钮即可开始环境部署,之后你会看到容器(服务)被部署。

部署环境
部署环境

等待几分钟,所有的服务部署完成后就会运行。

运行环境
运行环境

可以通过转到Host Groups页面查看主机来验证这一点,这里可以看到每个主机都部署了3个容器。

验证主机组
验证主机组

也可以通过检查我的虚拟机来验证我的容器是否被部署。

在CLI上验证
在CLI上验证
在CLI上验证
在CLI上验证

完成应用部署后,我就能通过Nirmata来监控和管理它。我可以轻松地将其他主机添加到我的主机组,以及放大或缩小容器。

正如你所看到的,在这短短几分钟内就创建好了一个虚拟机集群,以及用Nirmata部署了一个分布式应用,不仅如此,监控和管理应用也相当容易。何不试一试,分享你的想法!

可以参考我们的文档尝试将CoreOS集群部署在不同的云提供商上,。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 创建一个主机组
  • 搭建一个CoreOS VM
  • 部署您的应用程序
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档