在部署、使用开源云平台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文件中的该参数值。
分享到:
相关推荐
7. **BOSH**:用于部署和管理CloudFoundry的工具,支持跨多个云环境的基础设施管理和更新。 8. **Diego**:CloudFoundry的最新容器管理技术,负责调度和运行Droplets,提供更高的性能和可靠性。 9. **Route ...
"kubo-deployment" 特别是针对在 Kubernetes(通常缩写为 k8s)上部署 Cloud Foundry 的一个解决方案。 描述中提到的 "久保部署"(Kubo Deployment)是这个项目的简称,它包含了一系列文档和清单,这些是使用 BOSH ...
1. **BOSH**: 是一个用于部署和管理分布式系统的工具,用于创建、更新和监控Cloud Foundry实例。 2. **API**: 提供RESTful接口,允许用户和系统与Cloud Foundry进行交互,包括应用程序的部署、更新和管理。 3. **...
Scrum的核心实践还包括每日站立会议,每天10:00准时进行,团队成员分享进度,提出问题,并讨论解决方案。此外,还有两周一次的Sprint计划会议,用于确定优先级,评估时间和解决问题。最后,回顾总结会...
2. **BOSH部署清单**:这是描述整个部署配置的文件,包含了所有要部署的组件、它们的依赖关系、网络设置以及资源分配等信息。 3. **BOSH网络**:BOSH管理的网络模型,可以灵活地配置虚拟机间的网络连接。 4. **...
Ruby-CloudFoundry BOSH(简称BOSH)是开源领域中的一个重要工具,它专注于云环境中的软件部署和生命周期管理。这个强大的平台使开发者和运维人员能够有效地发布、更新和监控分布式系统,特别是在Cloud Foundry这样...
在"python-buildpack-release"项目中,BOSH被用来管理和部署Cloud Foundry的Python Buildpack。这包括: 1. **版本控制**:BOSH允许对Buildpack进行版本化,确保每次部署都是可重复且一致的。 2. **资源管理**:...
华为HCNP-Cloud云计算认证是华为推出的一项针对中级云计算专业人士的认证,旨在验证候选人在云计算领域的技术能力,包括但不限于云数据中心构建、云服务部署与应用、以及云计算解决方案的设计与优化。该认证涵盖了一...
总的来说,Staticfile Buildpack结合BOSH版本提供了一种高效且可扩展的解决方案,让开发人员能够专注于静态网站内容的创作,而不必关心底层基础设施的复杂性。通过利用Cloud Foundry的弹性和BOSH的自动化管理能力,...
VMware Enterprise PKS和VMware Cloud PKS是VMware提供的两种Kubernetes解决方案,旨在帮助企业高效地部署和管理容器化应用程序。Kubernetes作为一个自动化容器编排系统,能够简化应用的部署、扩展和管理,促进企业...
15. Cloud Foundry 容器运行时(Cloud Foundry Container Runtime):Cloud Foundry 容器运行时是一个基于云的容器运行时环境,提供了容器化应用程序的部署和管理功能。 16. Cloud Spanner:Cloud Spanner是一个...
BOSH则是一个云操作工具,用于部署和管理Cloud Foundry这样的平台即服务(PaaS)。 5. **快速部署**: 快速部署涉及高可用性、开放性、安全性、自愈能力和灾备策略。在资源分配上,例如,一个典型的配置可能包括不同...
建筑学 Dataworx是一种用于流分析的体系结构,具有一种灵活的方式来构建机器学习管道以及... Cloud Foundry BOSH用作发布 , , , 等发行版的主要部署自动化工具。 测试环境总共运行了15个实例,可以支持N + 100扩
SHIELD是一种数据保护解决方案,旨在使操作更容易保护其关键基础设施数据。 它提供了用于计划对包括PostgreSQL,MySQL,Consul,Redis和MongoDB在内的关键系统进行自动备份的原语,以及在发生故障时恢复备份的方法...