CloudFoundry in 1 Box简介:Bosh-lite

Pivotal Web Service主管工程师 产品经理 吴疆

一提起云计算服务,大家头脑中一般都会想到在一个机器轰鸣的数据中心,一个个机架排列在一起,一台台服务器在紧张的工作着,似乎搭建云计算环境都需要许多台强大的服务器。但是事实上,无论是提供IaaS服务的OpenStack,还是提供PaaS服务的CloudFoundry,都可以安装在一台计算机上,甚至可以只安装在一台虚拟机上。

0. 为什么需要单机版的云平台

无论是IaaS还是PaaS,云平台的主要设计目标都是抽象化和虚拟化系统资源,以达到为多个客户提供按需分配的计算资源。因此,我们的印象中,云平台应该是一个强大的包含许多系统资源的平台。那么,我们为什么需要单机片的云平台?

第一,单机版的云平台安装部署简单,方便爱好者学习和研究。在学习和评估云平台的过程中,我们一般不需要一个集群版的Openstack或者Cloud Foundry。 我们都希望能够用最快的速度和最少的资源搭建一个云平台,然后马上开始测试盒验证功能。

第二,单机版云平台可以用来云应用的开发和测试。在开发云应用的过程中,如果每次修改都要把应用部署到远程的云平台,一是速度较慢,二是不方便调试。因此一个部署在本地的包含最小功能机的云平台非常适合在开发阶段开发调试云应用。

因此,作为开源的PaaS平台,Cloud Foundry提供了多个单机版部署方案,包括bosh-lite, lattice, micropcf.

本文描述的就是使用Bosh-lite项目搭建单机版的CloudFoundry学习环境

1. Bosh-lite简介

Bosh是由Cloud Foundry基金会开发的一款用来部署和升级Cloud Foundry和Cloud Foundry的云平台配置管理工具,详见http://bosh.io. 顾名思义,Bosh-lite是精简版的bosh,由CloudFoundry团队开发的一个可以在一个虚拟机上部署bosh+CloudFoundry的开源项目,主要目的是帮助开发人员搭建CloudFoundry的本地开发环境,也可以帮助CloudFoundry爱好者来学习CloudFundry。

Bosh-lite目前支持仅MAC OS X和Linux系统。Bosh-lite使用Vagrant管理虚拟机,所以目前只支持VirtualBox和VMWare Fusion (MAC OS X)虚拟机平台。

如下图所示,Bosh客户端CLI运行在宿主机(HOST OS)上,通过Bosh CLI,我们可以把Bosh和Cloud Foundry的各个component部署在VirtualBox的虚拟机上,Bosh和CloudFoundry的各个Component,例如UAA,Router等,都是运行在Garden容器(Garden Container)中。

2. 环境准备

笔者采用的事Cent OS 7.2作为宿主机的操作系统,VirtualBox为虚拟机平台

2.1 安装以来的软件包

# rpm -Uvh http://mirror.pnl.gov/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
# yum install -y vim git screen kernel* libX11 qt SDL SDL-devel libxml2-devel                libvpx libpng libXt libXmu libxslt libxslt-devel openssl \ 
               openssl-devel libXcursor libXinerama qt qt-devel wget gcc unzip ntpdate net-tools

2.2 安装Ruby环境

笔者使用rbenv来安装和管理ruby

# git clone git://github.com/sstephenson/rbenv.git $HOME/.rbenv# git clone https://github.com/sstephenson/ruby-build.git $HOME/.rbenv/plugins/ruby-build # echo ‘export PATH="$HOME/.rbenv/bin:$PATH"‘ >> ~/.bash_profile # echo ‘eval "$(rbenv init -)"‘ >> ~/.bash_profile # source ~/.bash_profile # rbenv install 2.3.0 # rbenv global 2.1.3# gem install bundle# gem install nokogiri — --use-system-libraries

2.3安装Vagrant

# wget https://releases.hashicorp.com/vagrant/1.8.1/vagrant_1.8.1_x86_64.rpm# rpm -Uvh vagrant_1.8.1_x86_64.rpm

验证vagrant

# vagrant --versionVagrant 1.8.1

2.4 安装VirtualBox

# wget http://download.virtualbox.org/virtualbox/5.0.16/VirtualBox-5.0-5.0.16_105871_el7-1.x86_64.rpm# #安装virtualbox时需要linux kernel的源代码,设置KERN_DIR环境变量指示kernel源代码路径# export KERN_DIR=/usr/src/kernels/<your kernel dir># rpm -Uvh VirtualBox-5.0-5.0.16_105871_el7-1.x86_64.rpm

验证virtualbox是否安装成功

# VBoxManage --version5.0.16r105871

3. 准备bosh-lite环境

3.1 安装Bosh CLI

# gem install bosh_cli

3.2 安装manifest merge工具

Spiff是Cloud Foundry基金会开发的一款涌来合并bosh部署文件的工具,详见https://github.com/cloudfoundry-incubator/spiff

# wget 
# unzip spiff_linux_amd64.zip -d /usr/bin

3.3 Checkout bosh-lite和cf-release

# #bosh-lite和cf-release这两个代码库必须放在同一级目录下
# mkdir ~/workspace
# git clone https://github.com/cloudfoundry/cf-release

3.4 启动VirtualBox虚拟机

# cd ~/workspace/bosh-lite
# vagrant up --provider=virtualbox
# #启动成功后可以运行下面的命令去查看虚拟机的状态
# vagrant global-status
id       name    provider   state   directory
------------------------------------------------------------------------
0e3f85a  default virtualbox running /root/workspace/bosh-lite

The above shows information about all known Vagrant environments
on this machine. This data is cached and may not be completely
up-to-date. To interact with any of the machines, you can go to
that directory and run Vagrant, or you can use the ID directly
with Vagrant commands from any directory. For example:
"vagrant destroy 1a2b3c4d"

启动后的bosh-lite虚拟机配置了两块网卡,一块用来连接CloudFoundry网络,使用10.244.0.0/19;一块用来和宿主机通信,使用IP 192.168.50.4, 因此在宿主机需要添加访问CloudFoundry网络的路由

# route add -net 10.244.0.0/19 gw 192.168.50.4
# #如果配置了HTTP或者HTTPS的代理,请先运行下面这条命令

至此,一个超微型的bosh环境-bosh-lite环境准备完毕。

4. 部署CloudFoundry

4.1 生成CloudFoundry部署描述文件

部署cloud Foundry首先需要选择一个域名,例如 xyz.com, 而且需要把*.xyz.com都解析为同一个IP地址, 为了方便大家使用bosh-lite, Cloud Foundry提供了一个默认的域名,bosh-lite.com, 并且统一解析为10.244.0.34

# ping 
PING  (10.244.0.34): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
^C
---  ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss

# ping xyz.bosh-lite.com
PING xyz.bosh-lite.com (10.244.0.34): 56 data bytes
Request timeout for icmp_seq 0
Request timeout for icmp_seq 1
^C
--- xyz.bosh-lite.com ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss

生成部署描述文件 (deployment manifest)

# cd ~/workspace/cf-release
# # 下载所有的子模块(submodule)
#  ./scripts/update
# # 生成部署描述文件
# ./scripts/generate-bosh-lite-dev-manifest

4.2 上传Stemcell

Stemcell是bosh中的一个独特的概念,类似于虚拟机镜像,部署Cloud Foundry之前需要使用bosh上传相应平台的stemcell。所有的stemcell都可以在http://bosh.io/stemcells找到

# wget bosh target 192.168.50.4 lite
# bosh upload stemcell

4.3 上传Cloud foundry Release

Release也是bosh中的一个重要概念,是所有的需要部署的文件(包括二进制和配置文件)的集合。Cloud Foundry的release 文件也可以从http://bosh.io/releases/github.com/cloudfoundry/cf-release?all=1下载

# wget 
# bosh upload release cf-release-234.tgz

4.4 部署Cloud Foundry

# bosh deploy

5. 验证Cloud Foundry部署

# bosh vms  
Deployment `cf-warden‘  
  
Director task 9  
  
Task 9 done  
  
+------------------------------------+---------+---------------+--------------+  
| Job/index                          | State   | Resource Pool | IPs          |  
+------------------------------------+---------+---------------+--------------+  
| api_z1/0                           | running | large_z1      | 10.244.0.134 |  
| etcd_z1/0                          | running | medium_z1     | 10.244.0.42  |  
| ha_proxy_z1/0                      | running | router_z1     | 10.244.0.34  |  
| hm9000_z1/0                        | running | medium_z1     | 10.244.0.138 |  
| loggregator_trafficcontroller_z1/0 | running | small_z1      | 10.244.0.146 |  
| loggregator_z1/0                   | running | medium_z1     | 10.244.0.142 |  
| nats_z1/0                          | running | medium_z1     | 10.244.0.6   |  
| postgres_z1/0                      | running | medium_z1     | 10.244.0.30  |  
| router_z1/0                        | running | router_z1     | 10.244.0.22  |  
| runner_z1/0                        | running | runner_z1     | 10.244.0.26  |  
| uaa_z1/0                           | running | medium_z1     | 10.244.0.130 |  
+------------------------------------+---------+---------------+--------------+  
  
VMs total: 11
时间: 2024-10-26 09:34:53

CloudFoundry in 1 Box简介:Bosh-lite的相关文章

CloudFoundry in 1 Box简介:PCF-Dev篇

在<CloudFoundry in 1 Box简介:Bosh-lite篇>我们介绍了Bosh-lite的架构和部署.在本篇中,我们将详细描述另一个CloudFoundry in 1 Box解决方案PCF-Dev. 1PCF-dev简介 PCF是Pivotal发行的Cloud Foundry商业版,PCF-Dev原名MicroPCF,是Pivotal为PCF的应用开发人员准备的一款App单虚拟机版的CloudFoundry.但是,麻雀虽小,五脏俱全.PCF-Dev虽然可以在仅仅一台虚拟式上即可运

CloudFoundry in 1 Box简介:Lattice篇

Pivotal Web Service主管工程师 产品经理 吴疆 本篇是<CloudFoundry in 1 Box简介>系列最后一篇,在前面两篇中,我们介绍了Bosh-lite和pcf-dev的架构和部署.在本篇中,我们将详细描述另一个CloudFoundry in 1 Box解决方案Lattice. 1. Lattice简介 Lattice是一个很有意思的项目,设计目标是为Cloud Foundry的开发人员提供一个最小的App运行时环境,所以它只选择了Cloud Foundry中与App

开源的PaaS方案:在OpenStack上部署CloudFoundry (三)部署BOSH

BOSH是CloudFoundry提供的用来安装部署和升级CloudFoundry的自动化工具,可是说是CloudFoundry的一部分.总体来说,BOSH是Client/Server结构, BOSH客户端称作BOSH CLI,BOSH服务器端由BOSH Director,NATS,HealthMonitor等组件组成, 详见http://docs.cloudfoundry.org/bosh/ 完整的BOSH是一个分布式的环境,本文为了简化BOSH的安装,将BOSH所有的组件安装在一个虚拟机上,

开源的PaaS方案:在OpenStack上部署CloudFoundry (一)简介

目录(?)[-] OpenStack简介 OpenStack是一个美国国家航空航天局和Rackspace合作研发的以Apache许可证授权并且是一个自由软件和开放源代码项目 OpenStack是一个云平台管理的项目它不是一个软件这个项目由几个主要的组件组合起来完成一些具体的工作 CloudFoundry简介 PaaS(Platform as a Service)是业界一个比较热门的话题.本文以简洁的方式介绍一种完全使用开源软件迅速部署一个PaaS平台的技术方案:基于OpenStack平台部署Cl

在centos7 ubuntu15.04 上通过bosh-lite 搭建单机环境cloudfoundry

Bosh-lite简介 参考文献  http://tqcto.com/article/system/261.html bosh-lite 是一个单机部署cloudfoundry的实验性工具,用于开发人员做poc 验证.Bosh-lite目前支持仅MAC OS X和Linux系统.Bosh-lite使用Vagrant管理虚拟机,所以目前只支持VirtualBox和VMWare Fusion (MAC OS X)虚拟机平台. 如下图所示,Bosh客户端CLI运行在宿主机(HOST OS)上,通过Bo

开源PaaS工具CloudFoundry落地阿里云

原文:https://yq.aliyun.com/articles/292815?utm_content=m_37457 云计算技术的不断成熟和完善,尤其是IaaS平台的不断发展,使得越来越多的企业和用户青睐于将自己的业务和应用不断的从传统IT设施迁移到云上,在灵活.高效管理应用,快速扩展业务的同时不断地降低基础设施的运维和管理成本.然而,随着业务的不断发展和壮大,对IaaS资源管理成本也会不断增加,可否将基础设施的管理成本进一步降低呢?Cloud Foudry就是其中一个非常完美的解决方案,作

开源的PaaS方案:在OpenStack上部署CloudFoundry (五)常见问题

部署CloudFoundry可能遇到的问题 1. Bosh 报告 OpenStack API Request Entity Too Large error 解决办法,修改/etc/nova/api-paste.conf文件,添加limits属性 [python] view plaincopy [filter:ratelimit] paste.filter_factory = nova.api.openstack.compute.limits:RateLimitingMiddleware.fact

WEB黑客工具箱之FireBug介绍

Firefox扩展Firebug是一个全功能的Web 应用程序调试器,可以协助Web黑客洞悉复杂的Web 应用程序的内部工作机制.它有两种版本:一种可以跨浏览器使用的组件Firebug Lite,另一种是专用于专用于火狐浏览器的扩展Firebug.本文将着重向读者介绍前者的用法. 一.简介 浏览器扩展Firebug提供了一个集成环境,我们能够在其中对感兴趣的Web 应用程序进行的全面的分析(参见图1).它提供了许多功能,可以探索DOM结构.动态地修改HTML 代码.跟踪和调试JavaScript

开源的PaaS方案:在OpenStack上部署CloudFoundry (四)使用Micro Bosh部署CloudFoundry

使用bosh部署应用是需要两部分,一个是创建虚拟机使用的模板stemcell,另外一个是应该的Release.所以,部署CloudFoundry之前需要上传stencil和release 4.1 使用bosh上传Stemcell [python] view plaincopy # bosh upload stemcell ~/stemcell/bosh-stemcell-2652-openstack-kvm-ubuntu-lucid-go_agent.tgz # bosh stemcells +