Cloud Foundry 深入学习二 集群部署

单结点的部署由于vmware提供的安装脚本,使用简单不再陈述,大家参照一下官网即可,在此主要谈谈多结点集群部署的要点。 (关于Cloud Foundry 的整体介绍,大家可参阅 深入 Cloud Foundry(上)​及 深入Cloud Foundry(下)​先 )

2011年7月时,搭建Cloud Foundry 集群时,一篇国外的博文给了两个建议:一种是在每个结点上分别安装各个组件;一种是在每个结点上安装全部组件,然后在每个结点仅启动部分组件,组件间通过配置相连,实践证明这是最方便的方法。如果是在AWS-EC2部署集群,可以将一个结点安装好后,做成AMI,然后用AMI瞬间launch一个集群,再配置一个各个组件的配置文件,一会功夫就可以建立起一个集群。

下面说一个组件互联的配置。

Cloud Foundry整体架构的核心是基于消息机制的组件互联(未必得当),所有组件的互联通讯依靠nats-server, 这是一个用ruby实现A lightweight publish-subscribe and distributed queueing messaging system. 使用极其简单,大家参考下https://github.com/derekcollison/nats。了解了nats,就抓住了Cloud Foundry的总线,然后大家再逐个熟悉各个组件的功能,当然构建一个多结点的Cloud Foundry也就简单的多了。nats的单结点安装,只要安装好ruby运行环境后,执行gem install nats安装,再执行nats-server启动,默认监听4222。

所有组件的config目录下都有“组件名.yml”文件,将其中的"mbus: nats://10.134.226.8:4222/ "中的IP地址调整成启动nats-server的主机地址,如果是部署一个只有一个cloud_controller+health_manager结点,任意多个dea/router结点的集群的话,集群就配置完成了。

如果想启动多个cloud_controller和health_manager结点,还有两个工作要做:

创建文件存储共享和可跨主机访问的数据库。

数据库存储可使用rails框架支持的任何数据库,笔者推荐使用mysql,运行在两个主机上并配置Replication功能,将cloud_controller和health_manager的数据库配置均指向mysql-master;

文件存储共享,可选用NFS,但当云中主机数量很多的时候,NFS可能 效率不是最优,建议其它支持FUSE的分布式存储解决方案,比如moosefs;多个cloud_controler需要共享 droplets: /var/vcap/shared/droplets和

resources: /var/vcap/shared/resources。以使用NFS为例,每个cloud_controller需要将nfs-server上的存储,mount到本机。PaaS系统真正运行起来,这两个目录增长会很快,因为存储着整个集群的应用程序副本和droplet副本,所以存储一定要大些。另外,整个集群,我们可以任意毁掉任何一台主机(当然大多数时候不是故意的),再重新启动一个新的主机替代。但只要共享的文件存储和数据库数据不丢,整个集群就没有任何变化。所以,相信同学们一定会重视这两部分数据,定期备份到AWS-S3上,会HA啥的都不为过噢。

集群中多个router启动后,负载均衡是必不可少的,笔者使用过两个方案,一个是用Nginx,考虑到一个nginx并发功能支撑能力有限,可部署多个nginx;另外一种方案,可使用AWS的ELB,不过ELB给我们可配置的东西太少,好在AWS很专业,不妨一试,不过最好给几个留几个nginx混着用免得AWS再停电了,整个系统都挂了。大家有别的方案欢迎推荐哈。

另外一个需要特别关注的配置是本机IP,Cloud Foundry各个组件再向router注册时是根据配置提取本机IP,默认是127.0.0.1,必须改成实际IP,相关配置有:

cloud_controller.yml:local_route: 10.134.226.8

dea/config/dea.yml:local_route: 127.0.0.1

health_manager/config/health_manager.yml:local_route: 10.134.226.8

最新的代码最近未来得及看,但考虑到代码不断更新,但本文无法时时更新,建议大家以此类推。

对于配置文件的其它项,不影响集群的建立,在此不再多说,如果有问题可以与我联系。

预告:下一篇,初步打算逐步介绍一下Cloud Foundry代码学习经验,再下一篇,讲一下各个组件的代码分析。。。。使用,运维经验。。。。等等

(责任编辑:徐红云)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值