`
7wolfs
  • 浏览: 182325 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

BOSH部署CloudFoundry的问题记录及解决方案

阅读更多
在部署、使用开源云平台CloudFoundry(版本为v1)的过程中,遇到了一些问题,通过分析CloudFoundry的实现机制和BOSH的结构,在google的帮助下,最终将问题解决,同时对linux也有了进一步的了解。
现在将一些问题和解决方案总结出来,与大家一起分享。


一、vCenter故障排除
问题:
新虚拟机IP与已有虚拟机IP(如NFS Server的IP)冲突后,造成已有虚拟机、BOSH、Cloudfoundry不能正常工作。

解决方案:
1, 使用ESXi主机上的“Restart Management Agent”;可以恢复虚拟机状态
2, 重启vCenter服务
3, 使用“主机—>配置存储适配器、存储器”上的“全部重新扫描”功能刷新存储。(可选)
4, 重启Micro BOSH虚拟机(Micro BOSH的模板虚拟机虽然未启动,但需要在第一步的操作使他恢复正常状态,否则即使重启了Micro BOSH虚拟机,也无法访问。)。
通过以下一组命令确认micro bosh已恢复正常。
$ bosh target  <micro  bosh 的ip>
$ bosh login
$ bosh deployments
$ bosh releases
$ bosh vms
如果以上命令能正常运行并返回预期的信息,则micro bosh恢复正常。
5, 在micro bosh恢复正常后,运行“bosh cck”检查多节点的bosh的运行状态。根据“bosh cck”的提示操作,先选择“reboot vm”进行恢复。如果无法恢复,则选择“bosh cck”命令提示中的“recreate vm 。。。”进行恢复。
6, 在多节点的bosh恢复正常后,运行“bosh cck”检查多节点的cloudfoundry的运行状态。根据“bosh cck”的提示操作,先选择“reboot vm”进行恢复。如果无法恢复,则选择“bosh cck”命令提示中的“recreate vm 。。。”进行恢复。
cloudfoundry恢复后,各节点中的原有数据和设置会随着节点的重建而恢复。


二、主机增加
往vCenter中增加一个新的vSphere主机后,需要在vCenter中为新的vSphere主机增加NFS 存储(NFS datastore)、网络(CF Network、Services Network),使得BOSH部署CloudFoundry时能够识别出网络中新增加的vSphere主机。


三、powerDNS节点
第一次部署多节点BOSH时,如果powerDNS在Job列表中最后一个时,最后一个执行该dns job,则DNS这个节点上的数据库会没有表。因为powerDNS节点上的表有director job来创建。因此最好将powerDNS这个节点放在director之前。或者多节点BOSH部署完后,再重新部署一下director这个job。


四、修改‘最大打开文件数’
1、 修改DEA节点上的agent.rb
agent.rb: /var/vcap/packages/dea/lib/dea/agent.rb
搜索 ‘fds’,在def process_dea_start方法中修改num_fds值为9000.
2、 使用root权限修改以下文件内容
/etc/security/limits.conf,增加以下内容,
* soft nproc 10240
* hard nproc 10240
vcap soft nofile 9000
vcap hard nofile 65000
root soft nofile 9000
root soft nofile 65000
* soft nofile 10240 # 控制进程的打开最大文件数
* hard nofile 10240 # 控制进程的打开最大文件数
/etc/pam.d/common-session,增加以下内容,
session required pam_limits.so
/etc/profile,增加以下内容,(该操作可选)
ulimit -HSn 10240

需要重启电脑,否则更改不会立即生效。 
检查:
   ulimit -a 这个是列出当前系统的所有内容限制
   ulimit -n 这个是列出当前系统能够打开最大的文件句柄数。

重启电脑之后,就可以使用root方式进行修改/etc/profile中的ulimit -HSn 后的数字,再执行source /etc/profile,就可以马上看到效果了。(该操作可选)

查看进程的limits
1、 ps -ea
查看进程信息。
2、 cat   /proc/进程id号/limits
查看指定进程下的操作限制内容。


五、修改cloud controller的nginx上传文件大小限制
当上传大文件到cloudfoundry时,文件大小超过256M,此时cloudfounry会返回413 的http 响应代码(上传文件大小超过nginx最大值)。
为了能够上传大文件,修改两个节点上的nginx.conf文件。
1、cloud controller节点上的nginx的“client_max_body_size 556M;”参数值。
文件:/var/vcap/data/jobs/cloud_controller/56.8-dev/config/nginx.conf,在http上下文中修改client_max_body_size。
http {
    ...
    client_max_body_size 556M;
}
2、router节点上的nginx的“client_max_body_size 556M;”参数值。
文件:/var/vcap/data/jobs/router/18.5-dev/config/nginx.conf,在http上下文中修改client_max_body_size。
http {
    ...
    client_max_body_size 556M;
}


六、修改DEA节点的系统时间
因为MemcacheD要求各个客户端的时间要保持一致,所以统一DEA节点上的时间。bios和系统时间都使用本地时间。
使用ROOT用户登录进行操作。
1, 设置时区为UTC:dpkg-reconfigure tzdata,第一步中选择‘Etc’,第二步中选择‘UTC’
2, 查看系统时间和bios时间:
date; hwclock --show
3, 设置硬件时间
sudo hwclock --set --date ‘07/10/13 12:12:00’
4, 将系统时间设成硬件时间
sudo hwclock --hctosys
5, 再次用 date; hwclock --show 查看当前系统时间和硬件时间
6, 修改 .profile;加入如下内容
hwclock --hctosys
TZ='Asia/Shanghai'
export TZ
7, 重启后,再用date查看系统日期,达到修改日期和时区的目的。
备注:
1, 修改 ROOT用户的.profile,增加如下内容
TZ=’Asia/Shanghai’
export TZ
2, 修改时间: sudo date -s ‘20130710 10:15:00’
以上的步骤可以重复使用,最终达到效果。


七、使用部署文件更新多节点BOSH
如果在执行‘bosh deploy’命令时,出现各种错误提示,可以使用重启Micro BOSH节点上的虚拟机,或者在vCenter中选择Micro BOSH、多节点BOSH所在的vSphere主机 并选择右键菜单中的‘重新引导’功能进行重启,使用这两种方法可以修复错误提示。


八、修改CloudFoundry用户的内存分配量
根据cloud controller的部署文件模板(文件路径如下),
tempest\cf-release\jobs\cloud_controller\templates\cloud_controller.yml.erb
修改cloud foundry部署文件中关于cc(cloudcontroller)中的default_account_capacity值。内容如下:
cc:
    srv_api_uri: http://api.cf.offline
    password: zbTuuLaap44jadlas2l312lk
    token: 267f4eaa8c1758f66d5cb7adcb24adb9d7
    use_nginx: true
    new_stager_percent: 100
    new_stager_email_regexp: '.*@vmware.com'
    staging_upload_user: zxsfhgjg
    staging_upload_password: ZNVfdase9
    allow_registration: true
    default_account_capacity:
      memory: 8048
    uaa:

参考:
tempest\cf-release\src\cloud_controller\cloud_controller\config\appconfig.rb
tempest\cf-release\src\cloud_controller\cloud_controller\config\cloud_controller.yml


九、修复hbase_master
问题:hbase_master节点处于‘failing’状态。
查看该节点上的日志文件 /var/vcap/sys/log/hbase_master/hbase_master_start.stdout.log,发现错误信息。

解决办法:修改hbase_master节点上配置文件中的hbase.rootdir。
被修改的文件位置:
/var/vcap/data/jobs/hbase_master/1.1-dev/config/hbase/hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.2.98:9000/hbase</value>
</property>
说明:192.168.2.98是hbase_master节点上的主机IP地址 。


十、修改cloudcontroller中stage操作时间
查看tempest\cf-release\jobs\cloud_controller\templates\cloud_controller.yml.erb,可以看到staging下的  max_staging_runtime参数控制cloud controller的stage时间,这个时间可以在cloudfoundry的部署文件中进行配置;或者修改cloud controller节点上的/var/vcap/data/jobs/cloud_controller/56.8-dev/config/cloud_controller.yml文件中的该参数值。
0
0
分享到:
评论

相关推荐

    CF-Help.rar_Help!_cloudfoundry_cloudfoundry Help

    7. **BOSH**:用于部署和管理CloudFoundry的工具,支持跨多个云环境的基础设施管理和更新。 8. **Diego**:CloudFoundry的最新容器管理技术,负责调度和运行Droplets,提供更高的性能和可靠性。 9. **Route ...

    kubo-deployment:包含用于部署Cloud Foundry容器运行时的清单

    "kubo-deployment" 特别是针对在 Kubernetes(通常缩写为 k8s)上部署 Cloud Foundry 的一个解决方案。 描述中提到的 "久保部署"(Kubo Deployment)是这个项目的简称,它包含了一系列文档和清单,这些是使用 BOSH ...

    Cloud Foundry架构及应用介绍.pptx

    1. **BOSH**: 是一个用于部署和管理分布式系统的工具,用于创建、更新和监控Cloud Foundry实例。 2. **API**: 提供RESTful接口,允许用户和系统与Cloud Foundry进行交互,包括应用程序的部署、更新和管理。 3. **...

    CloudFoundry中国研发团队技术分享.pptx

    Scrum的核心实践还包括每日站立会议,每天10:00准时进行,团队成员分享进度,提出问题,并讨论解决方案。此外,还有两周一次的Sprint计划会议,用于确定优先级,评估时间和解决问题。最后,回顾总结会...

    VMWare BOSH平台介绍.pdf

    2. **BOSH部署清单**:这是描述整个部署配置的文件,包含了所有要部署的组件、它们的依赖关系、网络设置以及资源分配等信息。 3. **BOSH网络**:BOSH管理的网络模型,可以灵活地配置虚拟机间的网络连接。 4. **...

    Ruby-CloudFoundryBOSH是一个开源的工具链用于发布工程部署生命周期管理分布式系统的监控

    Ruby-CloudFoundry BOSH(简称BOSH)是开源领域中的一个重要工具,它专注于云环境中的软件部署和生命周期管理。这个强大的平台使开发者和运维人员能够有效地发布、更新和监控分布式系统,特别是在Cloud Foundry这样...

    python-buildpack-release:适用于Python Buildpack的BOSH版本

    在"python-buildpack-release"项目中,BOSH被用来管理和部署Cloud Foundry的Python Buildpack。这包括: 1. **版本控制**:BOSH允许对Buildpack进行版本化,确保每次部署都是可重复且一致的。 2. **资源管理**:...

    staticfile-buildpack-release:适用于Staticfile Buildpack的BOSH版本

    总的来说,Staticfile Buildpack结合BOSH版本提供了一种高效且可扩展的解决方案,让开发人员能够专注于静态网站内容的创作,而不必关心底层基础设施的复杂性。通过利用Cloud Foundry的弹性和BOSH的自动化管理能力,...

    华为HCNP-Cloud云计算认证三套教程合集

    华为HCNP-Cloud云计算认证是华为推出的一项针对中级云计算专业人士的认证,旨在验证候选人在云计算领域的技术能力,包括但不限于云数据中心构建、云服务部署与应用、以及云计算解决方案的设计与优化。该认证涵盖了一...

    VMWare Enterprise部署Kubernetes服务白皮书.docx

    VMware Enterprise PKS和VMware Cloud PKS是VMware提供的两种Kubernetes解决方案,旨在帮助企业高效地部署和管理容器化应用程序。Kubernetes作为一个自动化容器编排系统,能够简化应用的部署、扩展和管理,促进企业...

    云原生术语解析.docx

    15. Cloud Foundry 容器运行时(Cloud Foundry Container Runtime):Cloud Foundry 容器运行时是一个基于云的容器运行时环境,提供了容器化应用程序的部署和管理功能。 16. Cloud Spanner:Cloud Spanner是一个...

    中国研发团队技术分享课件.pptx

    BOSH则是一个云操作工具,用于部署和管理Cloud Foundry这样的平台即服务(PaaS)。 5. **快速部署**: 快速部署涉及高可用性、开放性、安全性、自愈能力和灾备策略。在资源分配上,例如,一个典型的配置可能包括不同...

    dataworx:数据流处理架构

    建筑学 Dataworx是一种用于流分析的体系结构,具有一种灵活的方式来构建机器学习管道以及... Cloud Foundry BOSH用作发布 , , , 等发行版的主要部署自动化工具。 测试环境总共运行了15个实例,可以支持N + 100扩

    屏蔽:一个独立的系统,可以为各种可插拔数据系统执行备份和还原功能

    SHIELD是一种数据保护解决方案,旨在使操作更容易保护其关键基础设施数据。 它提供了用于计划对包括PostgreSQL,MySQL,Consul,Redis和MongoDB在内的关键系统进行自动备份的原语,以及在发生故障时恢复备份的方法...

Global site tag (gtag.js) - Google Analytics