免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3646 | 回复: 2
打印 上一主题 下一主题

[IaaS与数据中心] CoreOS实践指南(二):架设CoreOS集群 [复制链接]

论坛徽章:
6
CU大牛徽章
日期:2013-03-14 14:14:08CU大牛徽章
日期:2013-03-14 14:14:26CU大牛徽章
日期:2013-03-14 14:14:29处女座
日期:2014-04-21 11:51:59辰龙
日期:2014-05-12 09:15:10NBA常规赛纪念章
日期:2015-05-04 22:32:03
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-01-07 12:56 |只看该作者 |倒序浏览
【编者按】作为一个操作系统,CoreOS 采用了高度精简的系统内核及外围定制,将许多原本需要复杂人工操作或者第三方软件支持的功能在操作系统级别进行了实现,同时剔除了其他对于服务器系统非核心的软件,比如GUI和包管理器。来自ThoughtWorks的软件工程师林帆将带来“漫步云端:CoreOS实践指南”系列文章,带大家了解CoreOS的精华和推荐的实践方法。本文为基础第二篇:架设CoreOS集群。

CoreOS 集群的架设比架设一个传统服务器集群更加容易。一方面因为 CoreOS 使用了 Cloud-init 自动化了集群信息的配置,另一方面则是受益于 etcd 分布式存储实现的消息分发和服务器自发现机制。这些便利性正是 CoreOS 系统设计充分为集群架构考虑带来的效率提升。

安装 CoreOSCoreOS 的安装方法和传统 Linux 系统有很大的不同。鉴于是基础教程,在这一篇中,我们会使用官方的Vagrant镜像一步一步的构建CoreOS的VirtualBox虚拟机集群。本文使用了Linux/Mac作为测试环境,Vagrant从1.6版已经支持Windows,但需要安装Putty作为登录工具,略有不同,具体使用方法见    链接。  
需要顺带说明一点,比较仔细的使用者可能已经发现官方提供的镜像中有一个是“    ISO镜像文件”,然而这个镜像实际上只是一个 Live CD,也就免安装的试用镜像,直接使用这个ISO启动的系统是不具备服务自发现和分布式消息分发的能力的。通过ISO镜像安装集群的方式我们会放到专题篇的内容里面详述。好,现在进入正题吧。
正如系列的第一篇所提到的,Cloud-init 通常依赖于具体平台的实现定制,将其直接在物理机上使用并不是主流的使用方法。对于这种安装方法,    官方有一篇文档提供了详细的步骤,这里不再进行详细讨论。
首先来看一下 CoreOS 原生支持的平台。截止到目前,最新版本的CoreOS v540已经支持的平台如下图。
       
可以看到除去安装到本地的 Bare Metal,其余基本是针对主流的云服务平台定制的版本。这里的定制主要是 Cloud-init 等启动服务的配置,那么如何知道    CoreOS 已经支持自动化的集群部署的平台有哪些呢?我们可以从 CoreOS 源代码的    coreos-base 目录里得到答案。
       
这些 oem 开头的目录就是平台定制的实现。其中每个目录中的 files/cloud-config.yml 文件,就是 Cloud-init    的配置文件。在每一种平台安装 CoreOS 的方式各有不同,可以从官方网站相应的页面找到相应步骤。这里我们选择其中的 Vagrant 作为演示的目标平台。
在 Vagrant 上部署 CoreOS 集群使用 Vagrant 建立 CoreOS 集群可以说是最简单且经济的方式了,使用本地虚拟机构建,特别适合快速验证 CoreOS 的功能。
预备需要准备的东西,包括一台连接到互联网的 Mac 或者桌面 Linux 电脑,安装好 Git、VirtualBox 和 Vagrant。
通过 Git 下载官方的 Vagrant 仓库:
git clone    https://github.com/coreos/coreos-vagrant.git
下载完成后,我们接下来配置 CoreOS 集群。
配置为了使用集群服务器的自发现功能,我们需要一个能用来唯一标识一个集群并提供集群信息的地址。CoreOS 官方提供了这个服务,当然我们也可以使用自己搭建的私有集群标识服务器。鉴于搭建私有标识服务器属于比较进阶的内容,我们会在这个系列的后续文章详述。
通过浏览器或命令行 curl 访问地址    https://discovery.etcd.io/new可以得到一个新的集群标识 URL(如果是在Windows下,可以直接使用浏览器访问这个URL地址),这个    URL 会在配置 user-data 时候使用到。
curl    https://discovery.etcd.io/new
进入 coreos-vagrant 目录,将 user-data.sample 和 config.rb.sample 两个文件各备份一份,并去掉    .sample 后缀。得到 user-data 和 config.rb 文件。
首先修改 user-data 文件,它将作为启动的配置文件提供给 CoreOS 操作系统。值得一提的是,在这个配置中,可以使用两个变量 $private_ipv4    和 $public_ipv4,它们会在实际运行的时候被自动替换为主机的真实外网 IP 和内网 IP 地址。
这里我们需要做的只是将其中 discovery所在行前面的注释符合“#”去掉,然后替换它的值为我们刚刚获得的集群标识 URL 地址。简单来说,所有使用了同一个标识    URL 的主机实例都会在 CoreOS 启动时自动加入到同一个集群中,这就实现了无需人工干预的集群服务器自发现。
#cloud-config
coreos:
  etcd:
    # generate a new token for each unique cluster from    https://discovery.etcd.io/new    # WARNING: replace each time you 'vagrant destroy'
    discovery: <集群标识URL地址>
    addr: $public_ipv4:4001
peer-addr: $public_ipv4:7001
... ...
然后修改 config.rb 文件,这里包含了 Vagrant 虚拟机的配置。通过这个文件实际上可以覆写任何 Vagrantfile 里的参数,但是目前我们只需要关注    $num_instances 和 $update_channel 这两个参数的值。
  • $num_instances 表示将启动的 CoreOS 集群中需要包含主机实例的数量;
  • $update_channel 表示启动的 CoreOS 实例使用的升级通道,可以是 ‘stable’,’beta’ 或 ‘alpha’。
$num_instances=3   
$update_channel='stable'
CoreOS 没有跨越式的版本发布,而是使用与 Arch Linux 类似的平滑的滚动升级,确保用户任何时候下载到的版本都是最新发布的系统镜像,并且从根本上解决了服务器系统在运行几年后,由于无法平滑升级而被迫重新安装的情况。此外    CoreOS 提供了 Stable、Beta 和 Alpha 三种升级通道,用于满足不同用户对系统新特性和稳定性的平衡。关于升级通道的切换,可参考官方的文档。
启动启动集群,执行:
vagrant up
查看集群运行状态,所有的集群实例都已经启动。
vagrant up   
Current machine states:   
core-01                      running (virtualbox)   
core-02                      running (virtualbox)   
core-03                      running (virtualbox)
此时,在 CoreOS 集群的内部正发生着许多故事,集群的实例之间通过自发现服务,相互认识了对方并建立了联系。它们具备了在集群中任意一个实例节点控制整个集群的能力。是的,一个功能完备的    CoreOS 服务器集群已经完全运行起来了。
探索 CoreOS在下一部分,我们将会进入启动完成的 CoreOS 实例中,继续探索其中的奥秘。

论坛徽章:
26
CU十二周年纪念徽章
日期:2013-10-24 15:41:34技术图书徽章
日期:2014-07-11 16:27:52辰龙
日期:2014-09-04 13:40:43白羊座
日期:2014-09-09 12:51:55双子座
日期:2014-09-26 11:00:042014年中国系统架构师大会
日期:2014-10-14 15:59:00子鼠
日期:2014-10-23 16:48:23巨蟹座
日期:2014-10-27 08:21:10申猴
日期:2014-12-08 10:16:282015年辞旧岁徽章
日期:2015-03-03 16:54:15NBA常规赛纪念章
日期:2015-05-04 22:32:03IT运维版块每日发帖之星
日期:2016-01-29 06:20:00
2 [报告]
发表于 2015-01-07 14:30 |只看该作者
这个最近很火,还没用过,学习一下,期待更新

论坛徽章:
6
CU大牛徽章
日期:2013-03-14 14:14:08CU大牛徽章
日期:2013-03-14 14:14:26CU大牛徽章
日期:2013-03-14 14:14:29处女座
日期:2014-04-21 11:51:59辰龙
日期:2014-05-12 09:15:10NBA常规赛纪念章
日期:2015-05-04 22:32:03
3 [报告]
发表于 2015-01-07 15:04 |只看该作者
cryboy2001 发表于 2015-01-07 14:30
这个最近很火,还没用过,学习一下,期待更新


转过来的,csdn云计算还是有不少原创内容的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP