您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 资本运营 > cloudfoundry大规模部署(bosh)及平台运营完整中文手册
封面CloudFoundry大规模部署及平台运营完全手册作者VMWare中国研发中心HenryZhang、VictorChen、WeiChen说明/阅读指南内容涵盖阅读目的适合读者今后更新Devsetup的做法还支持其他的IaaS线上资源目录主题一使用BOSH工具在vSphere平台上部署CloudFoundry快速导读第一部分概述第二部分vSphere环境准备并安装BOSHCLI第三部分安装MicroBOSH和BOSH第四部分安装CloudFoundry主题二使用BOSH工具在OpenStack平台上部署CloudFoundry主题三使用BOSH工具在AmazonAWS平台上部署CloudFoundry主题四为CloudFoundry平台添加新的服务主题五CloudFoundry平台的监控、运维和日常管理使用BOSH工具在vSphere平台上部署CloudFoundry快速导读目的和结果环境准备预备知识第一部分概述CloudFoundry是业界首款开源PaaS。它支持多种框架、多项服务和多家云提供商。BOSH原本是在CloudFoundry项目的背景下产生的。不过,它已成为一个通用的工具链,用于对大规模的分布式服务进行部署和生命周期管理。本文由四个部分组成,将一步步地向您介绍使用BOSH在vSphere虚拟化平台上安装CloudFoundry的过程。CloudFoundry包含多个组件。其中最重要的组件是CloudController、NATS、Router、HealthMonitor和DEA。可通过下面的链接可找到对这些组件的介绍:《开源PaaSCloudFoundry深度解析》=46和《新版CloudFoundry揭秘》=31。这些组件的设计可以使系统能水平的扩展。也就是说,一个CloudFoundry实例可以包含每个组件的一份或多份副本,以满足云所需的负载。这些组件可以分散地部署在多个节点上。BOSH是一款供我们用来将CloudFoundry组件部署到分布式节点上的工具。(在虚拟化环境中,“节点”一词可以与“虚拟机”或VM互换使用)。在开始详细阐述真实部署前,我们先来简要介绍一下BOSH自动化部署系统的工作原理。我们建议您阅读下面的BOSH官方文档。是BoshOutterSHell(Bosh外壳)的递归缩写词。相对于“外壳”(OutterShell),由BOSH部署和管理的系统则称作“内壳”(InnerShell)。下图显示了一个简化的BOSH模型。可以将BOSH视作一台负责协调分布式系统部署过程的服务器或机器人。有个Ruby工具可以与BOSH命令行界面(CLI)进行交互。BOSH需要以下三个必备项才能开始部署系统:一个stemcell、一个Release(要安装的软件)和一个部署清单(DeploymentManifest)。我们来更详细地了解一下这三项内容。内壳...BOSHCLIBOSHIaaS虚拟机代理虚拟机代理虚拟机代理虚拟机代理StemcellReleaseDeployment操作人员CPI创建虚拟机Stemcell:在云平台中,虚拟机通常是从模板克隆而来的。一个stemcell就是一个包含标准UbuntuLinux的虚拟机模板。该模板中还嵌入了一个BOSH代理,以便BOSH可以控制从该stemcell克隆出来的虚拟机。“stemcell”这个名字源自于“stemcell”(干细胞)这个生物学术语,该术语指的是能够生成各种细胞的未分化细胞。同样,一个BOSHstemcell所创建的各个虚拟机起初也是完全相同的。初始化后,这些虚拟机便配置了不同的CPU、内存、存储和网络参数,并装有不同的软件包。因此,基于同一个stemcell模板构建的虚拟机会表现出不同的行为。Release:Release包含若干组将要安装到目标系统上的软件代码和配置。每个虚拟机上都要部署一组软件,这组软件称作一个作业(job)。配置通常是包含诸如IP地址、端口号、用户名、密码、域名等参数的模板。这些参数在部署时将被部署清单文件中定义的属性所替代。部署:部署就是使静态的Release变成虚拟机上可运行的软件的过程。部署清单定义了部署所需的实际参数值。在部署过程中,BOSH会替换掉Release中的参数,从而使软件按照我们规划的配置来运行。当上述3项内容都准备好后,BOSHCLI工具会将它们上传到BOSH。接着,用BOSH来安装分布式系统包括以下主要步骤:1)如果Release中的某些包需要编译,BOSH首先会创建几个临时虚拟机(worker,工作者虚拟机)来编译它们。编译完后,BOSH便会销毁这些工作者虚拟机,将所产生的二进制代码存储在其内部blobstore中。2)BOSH创建一个虚拟机池,池中的虚拟机将成为该Release要部署到的节点。这些虚拟机是从装有BOSH代理的stemcell克隆而来的。BOSH使用CPI接口调用vSphere的虚拟机创建操作API,来自动化的完成虚拟机的创建和配置工作。CPI接口同样适合于OpenStack、AWS等其他IaaS管理平台。3)对于该Release的每个作业,BOSH会从该池中选取一个虚拟机,然后根据部署清单更新该虚拟机的配置。具体的配置可以包括IP地址、持久磁盘的大小等。4)重新配置完该虚拟机后,BOSH会向每个虚拟机内的代理发送命令。这些命令通知该代理安装软件包。在安装期间,该代理可能会从BOSH下载包并安装它们。安装完毕后,该代理会运行启动脚本来启动该虚拟机的作业。5)BOSH重复执行第3步至第4步,直至所有作业都部署完毕并启动为止。这些作业可以同时部署,也可以按顺序部署。清单文件中的“max_in_flight”值用于控制并行部署的作业数。当该值为1时,表示这些作业逐一按顺序部署。对于较慢的系统,该值有助于避免因资源拥塞而造成的超时。该值大于1时,表示这些作业可以并行部署。我们将在后文中对上述步骤进行详细解释。开始安装前,我们先讨论一下硬件和软件方面的前提条件。软件:1)64位Ubuntu10.04LTS,最好是ISO格式。2)vSphereV4.1或V5.x(本文采用vSphere作为hypervisor)3)vSphereClient4)vCenter(安装在Windows2008R264位或Windows2003服务器上,物理机或虚拟机皆可)上述软件的60天或90天评估使用版本,均可以在对应公司的官方网站下载获得。硬件:假设所有节点都是虚拟机,下表显示了所需的虚拟机数目:节点数目操作系统可否是物理机BOSHCLI1Ubuntu可以vCenter+vSphereClient1Win2008可以安装在一起,也可划分成两个节点MicroBOSH1Ubuntu不可以BOSH6Ubuntu不可以CloudFoundry34Ubuntu不可以,见下文合计:43注意:上表中CloudFoundry的节点数目是所需的最少节点数目。此数目可能会因实际的CloudFoundry部署规模而异。选择硬件配置时通常要考虑两个原则:1)vCPU总数不应超过物理核心总数的两倍。在生产系统中,两者之比应该接近于1。2)所有虚拟机的总内存应小于所有Hypervisor的物理内存。下面例子是假设每个虚拟机有4GB内存和1个vCPU时的硬件配置:6台服务器,每台服务器有8核CPU和32GBRAM。就实验系统而言,我们曾在一台配置如下的服务器上成功部署(假定每个虚拟机有256MB内存):1台物理服务器:8核CPU,16GBRAM对于生产环境,我们建议选择CPU核数和内存容量都比较大的机型,这样在同一台物理机,可以运行更多的虚拟机。同时需要考虑有比较高吞吐量的网卡和存储设备。除了服务器之外,存储也是云平台中的一个关键要素。存储最好应有200GB或更大的可用空间,以便保存所有虚拟机的映像。在生产系统中,建议采用快速的共享存储。NFS是用来在Hypervisor间共享存储的最常用协议。在试验环境中,可以使用基于Linux的NFS服务器来代替专用存储。尽管Hypervisor中的本地磁盘在测试环境中可以使用,但通常不建议将本地磁盘用于生产系统中。我们最后应规划的是网络。在实验室环境中,我们可以直接将所有节点都放在同一网络中。不过,在生产系统中,出于安全和管理需要,应将CloudFoundry的各个组件正确分配到VLAN中。在本文中,我们不讨论网络连接方面的细节。作为例子,我们在部署期间将采用四个VLAN:VLAN节点ManagementVLANHypervisor和NFS存储CFVLANBOSH虚拟机以及CloudFoundry的虚拟机ServiceVLANLB,双宿(Dual-Homed)routerPublicVLANLB,外网请求CloudFoundry实例的安装过程分为以下四个部分:1)在Ubuntu10.04操作系统中安装BOSHCLI工具。此操作系统的主机可以是物理机,也可以是虚拟机。2)安装MicroBOSH。MicroBOSH是一个包含BOSH所有组件的虚拟机。它所具备标准BOSH的所有功能。不过,它用来存储多个Release的磁盘空间十分有限。部署MicroBOSH的目的是为了安装BOSH,因为BOSH本身就是一个分布式系统。3)通过MicroBOSH来安装BOSH。BOSH通常包含6个结点,每个节点部署一个组件。其中一个称作blobstore的节点具有较大的磁盘,可以保存较大的Release。4)通过BOSH安装CloudFoundry实例。第二部分vSphere环境准备并安装BOSHCLI重要前提条件:在BOSH和CloudFoundry的整个安装过程中,都需要直接的Internet连接。这一点非常重要,因为部分软件代码是直接从Internet下载的,例如RubyGem以及一些开源软件。在虚拟机与Internet之间设置Web代理服务器将导致安装失败。注:NAT是允许的。另一项前提条件是要有稳定的Internet连接。如果您的网络在从Internet下载文件时速度缓慢或者不可靠,安装可能会因出现超时或连接错误而失败。我们遇到过很多因为Internet连接问题而安装失败的情况。强烈建议您先咨询网络管理员,再开始安装BOSH。在vCenter中创建一个群集假定所有节点都是虚拟机,那么我们首先在所有裸机服务器上安装vSphere(在本篇文章中我们采用V5.x)。各vSphere服务器通过ManagementVLAN相连。安装完毕后,我们需在其中一个Hypervisor上创建一个虚拟机以安装64位Windows2008R2。随后,我们需在此Windows2008虚拟机上安装vCenter。下一步是使用vSphereClient连接到vCenter,以便我们可以管理这些服务器。有关vSphere,vCenter和vSphereClient的安装使用细节,请参考VMware官方网站中的文档介绍我们可以在任意Windows机器(甚至是虚拟机)上安装vSphereClient。之后,我们便可以通过vSphereClient以远程方式连接到vCenter。首先,我们来在vCenter中创建一个数据中心。为此,请右键单击左窗格中的vCenter节点,然后选择“新建数据中心”(NewDatacenter)以添加一个新的数据中心。接下来,请右键单击新创建的数据中心节点,然后选择“新建群集...”(NewCluster...)。在“新建群集向导”(NewClusterWizard)执行期间,如果您启用了vSphereDRS功能,系统将要求您
本文标题:cloudfoundry大规模部署(bosh)及平台运营完整中文手册
链接地址:https://www.777doc.com/doc-742799 .html