转载

Mesosphere入门指南--第一部分

【编者的话】本文为Mesosphere官方博客中发布的系列文章的第一部分,Mesosphere在本篇系列文章中分享了DC/OS的入门指南,并且做了演示。

在Mesosphere,大家都爱用Mesos。显而易见地,这是一个被数以百计的公司成功证明可以运行容器在生产环境中的技术。但是作为我们通常所说的“可扩展”技术,Mesos并不是用于部署的最简单的系统。

假设你想要使用Mesos去用于你的新的微服务架构的宿主系统。在之前老版本的Mesos里,你应该去配置Mesos和Marathon(不简单的任务),并且这时候认为你已经准备部署你的服务了。直到你发现仍然需要去弄明白如何去做服务发现,负载均衡,监控-以及更多。

这些就是Mesosphere于这周早些时候开源的 DC/OS moniker 用于去解决我们数据中心运营系统技术。我们协助配置一些技术用于简化Mesos集群的部署:安装,监控,服务发现,DNS管理,负载均衡,甚至软件包的管理系统,使得用了基于Mesos的应用得以简单的部署。DC/OS 已经准备好运行在任何从笔记本到云端的平台中,除此之外,Mesos核心包含了以下几个主要要素:

- 安装简单:在config.yaml文件中显示你的所有节点IP和一些配置,然后DC/OS将会自动引导,安装并根据DC/OS的要素去验证一个完整的Mesos安装。

- 群集范围的DNS:DC/OS使你的所有框架,应用,服务以及容器可以被发现并且通过DNS服务被寻址,这样你就可以花费较少的时候去做服务发现从而有较多的时间用在搭建更好的软件上。

- 容器编排平台:DC/OS使用Marathon去启动,监控并且维护你的应用,使得机器的故障并不会导致你的正常运行中断。

- DC/OS的软件包平台:曾经是否有过一键安装并且部署和伸缩Cassandra,Kafka,Spark或者HAproxy边缘路由的想法?在DC/OS软件包系统中这些已经全部可用并且开源了。

在这篇博文中,我们将去检视一遍安装DC/OS的流程并且启动一个简单的名为Ghost的Docker应用。它将有高可用,故障切换特性,这样我们可以不会由于一些主机丢失这样的意外而造成任何服务中断。同时当我们需要扩展到更多的机器时可以通过一键收缩我们的应用,同时所有的东西都可以经由HAProxy做负载均衡,这样就可以处理我们客户的任何负载于我们的系统上。

我们开始吧!(在我们做之前,需要知道DC/OS目前还没完成-这其中还有一些我们想要加入的功能,并且难免会有一些漏洞。所以如果你想试着弄明白如何通过DC/OS做一些事情并且它看起来不能正常工作的话,请不要烦恼:发邮件给我们社区 help@dcos.io 或者访问我们的 社区主页 ,同时,可以看看那些 贡献页面 的信息,这样可以知道如何去做技术贡献)

选择一个安装方式

DC/OS有三种安装方式-GUI,CLI和高级安装-这一次我们会使用CLI来做例子。GUI模式是真的挺棒的-某一天,它将是大多数安装进行的方式-由于现在的GUI模式还不能提供,因此我们还是需要做一些配置 。高级模式其实并不是所谓的那么高级,但它需要你在代理上运行命令而不是自动地通过SSH去为你的所有集群做安装。

我需要什么机器

在这次的例子中,我们将使用AWS上的CentOS7镜像。其中很多人用Mesos遇到的挑战是当我们为Mesos配置主机的时候需要安装Docker,配置cgroups,恰到好处的获取systemd单元,配置SELinux以及更多。DC/OS安装会自动的配置所有的软件包,并且为你的节点做配置,这样你就可以花费较少时间去部署从而有更多的时间去使用它们。

我们将使用3台Master主机去运行DC/OS(用于HA),3台代理(可以简单的扩容)。这些代理的其中一台将会暴露于互联网智商;它是用于提供HAProxy负载均衡以及边界路由。你将可以看到当你添加一些主机用于伸缩扩容的时候这是多么的简便,即使在我们只设置了一台负载均衡代理的情况下。

最终,我们会需要一台额外的主机作为我们的引导节点。我们将会从该节点去为我们的DC/OS的集群环境进行启动安装和管理变更以及升级。

我们的例子将是建立在AWS的VPC。如果你还是在用AWS的EC2,可以照着该 链接 去学习如何在你的账号上开启一个VPC。它可以很简单的进行添加并且不会丢失任何AWS功能。如果你有兴趣想看看我是怎么配置自己的VPC的,可以参考如下我启动它之前的截图。

Mesosphere入门指南--第一部分

如果不用AWS呢?

DC/OS伴随着AWS CloudFormation和微软的Azure资源管理模板一起出现,这是一个在AWS和Azure上可以完全自动部署和维护DC/OS的Cluster环境的模板。但是我们不准备使用它。我们将使用自己的方法,因为这些相同的方法同样也会很好的工作在裸机上,私有云或者是你最喜欢的云服务提供商。

如果不用CentOS7呢?

别急,我一样也不用它。一周前(原文发布一周前),我从来没有碰过任何基于RPM的Linux发行版-我从第一天起就用的Debian的衍生版。我会确信指出不同发行版之间的任何区别,但是自从DC/OS和容器技术已经抽象掉了你的OS那么多的具体细节来看,你仅仅只需要知道以下几件事:

- 替代 apt-get ,你可以用 yum .

我敢打赌,你不觉得这是一件容易的事。DC/OS同样支持多种 Linux发行版 (包括RHEL,CoreOS和Ubuntu),这取决于你的平台。

然而,如果你依然在用CentOS或者RHEL6的版本,或者遭遇Ubuntu的Xenial版本,你还是应该使用一个较近的OS版本。DC/OS需要最新的systemd和Linux容器功能来兑现它的简单,可靠可伸缩的那些承诺。

部署我们的主机

首先,让我们获得一些虚拟主机。但是这里有162个可以选的,我们究竟该选哪个?

Mesosphere入门指南--第一部分

我决定使用一个官方支持的CentOS7的镜像。你可以通过AMI字段 ami-6d1c2007 去查找。

Mesosphere入门指南--第一部分

我推荐为DC/OS使用m3.xlarge主机(或者性能更好的)。如果你用一台仅仅只有几核或者几个GB的内存的主机去运行Mesos,那么将会让他困难的放置所有的容器,因为空间太小而不方便去调整容器(特别是如果你想要做零宕机时间的滚动更新)

Mesosphere入门指南--第一部分

接下来我们移动到Configure Instance标签。我们在这里做的唯一的变化是需要启动七个实例而不是之前的一个。如果你之前有用过EC2服务,那么也许需要改变到你VPC的Network配置。你可以忽略关于自动扩充的组的告警。然而,在你开始于DC/OS上部署生产服务之前,你会想要打开自动扩展组(或者你的平台相关)去确保主机的无痛点恢复。

Mesosphere入门指南--第一部分

在这个时候,我们需要设置security group。我们将用一个新的security group,并且在Souce的单元格my IP列打开 ALL TCP 选项。我建议将该security group命名简单用于方便记忆,就像“First DC/OS Cluster”一样。一会功夫,事情就会变得简单了,我们将让所有的节点相互之间自由连接。

Mesosphere入门指南--第一部分

现在,你可以到最后一步:页面滚轮到底然后点击去启动即将成为的DC/OS集群了!

打开 intra-security-group连通性

在我们继续之前,先确定所有的节点可以相互通信。通过点击立方体左上角的菜单启动。让我们转到compute菜单下的EC2。

Mesosphere入门指南--第一部分

接下来,选择Security Group选项。

Mesosphere入门指南--第一部分

现在我们可以添加一些规则到我们的“First DC/OS Cluster”security group中。点击security group,在inbound Rules标签里点击Edit按钮。

Mesosphere入门指南--第一部分

现在,你可以添加三个额外的规则:从“First DC/OS Cluster”的security group中允许所有的TCP,UDP和ICMP流量。如下方所见,AWS控制台显示给我们关于security group的ID而不是我们之前的命名。幸运地是,当我们输入它的名字(“First DC/OS Cluster”)时还是会自动完成填写的。

Mesosphere入门指南--第一部分

接下来:该是安装的时候了

随着主机和网络都已部署到位,就到了运行安装的时候了。想知道该如何安装,请看该章节第二部分。

原文  http://dockone.io/article/1274
正文到此结束
Loading...