三 部署 cloudfoundry

准备

部署计划参考

作业 实例数 IP 内存 CPU 磁盘 (GB) 是否为必需的?
debian_nfs_server 1 xx.xx.xx.xx 2 GB 2 16 必需
nats 1 xx.xx.xx.xx 1 GB 1 8 必需
ccdb_postgres 1 xx.xx.xx.xx 1 GB 1 8 必需
uaadb 1 xx.xx.xx.xx 1 GB 1 8 必需
vcap_redis 1 xx.xx.xx.xx 1 GB 1 8 必需
uaa 1 xx.xx.xx.xx 1 GB 1 8 必需
acmdb 1 xx.xx.xx.xx 1 GB 1 8 必需
acm 1 xx.xx.xx.xx 1 GB 1 8 必需
cloud_controller 1 xx.xx.xx.xx 2 GB 2 16 必需
stager 1 xx.xx.xx.xx 1 GB 1 8 必需
router 2 xx.xx.xx.xx 512 MB 1 8 必需
health_manager 1 xx.xx.xx.xx 1 GB 1 8 必需
dea 2 xx.xx.xx.xx 2 GB 2 16 必需
mysql_node 1 xx.xx.xx.xx 1 GB 1 8 可选
mysql_gateway 1 xx.xx.xx.xx 1 GB 1 8 可选
mongodb_node 1 xx.xx.xx.xx 1 GB 1 8 可选
mongodb_gateway 1 xx.xx.xx.xx 1 GB 1 8 可选
redis_node 1 xx.xx.xx.xx 1 GB 1 8 可选
redis_gateway 1 xx.xx.xx.xx 1 GB 1 8 可选
rabbit_node 1 xx.xx.xx.xx 1 GB 1 8 可选
rabbit_gateway 1 xx.xx.xx.xx 1 GB 1 8 可选
postgresql_node 1 xx.xx.xx.xx 1 GB 1 8 可选
postgresql_gateway 1 xx.xx.xx.xx 1 GB 1 8 可选
vblob_node 1 xx.xx.xx.xx 1 GB 1 8 可选
vblob_gateway 1 xx.xx.xx.xx 1 GB 1 8 可选
backup_manager 1 xx.xx.xx.xx 1 GB 1 8 可选
service_utilities 1 xx.xx.xx.xx 1 GB 1 8 可选
serialization_data_server 1 xx.xx.xx.xx 1 GB 1 8 可选
services_nfs 1 xx.xx.xx.xx 1 GB 1 8 可选
syslog_aggregator 1 xx.xx.xx.xx 1 GB 1 8 可选
services_redis 1 xx.xx.xx.xx 1 GB 1 8 可选
opentsdb 1 xx.xx.xx.xx 1 GB 1 8 可选
collector 1 xx.xx.xx.xx 1 GB 1 8 可选
dashboard 1 xx.xx.xx.xx 1 GB 1 8 可选
service_broker 1 xx.xx.xx.xx 1 GB 1 8 可选
hbase_master 1 xx.xx.xx.xx 1 GB 1 8 可选
hbase_slave 1 xx.xx.xx.xx 1 GB 1 8 可选
collector 1 xx.xx.xx.xx 1 GB 1 8 可选
login 1 xx.xx.xx.xx 1 GB 1 8 可选
合计: 41 42 GB 42 384

资源模板

池名称 规模 配置 作业
small 30 RAM:1 GB;CPU:1 个;磁盘:8 GB nats、ccdb_postgres、uaadb、vcap_redis、uaa、acmdb、acm、stager、health_manager、mysql_node、service_broker、hbase_master、hbase_slave、login、mysql_gateway、mongodb_node、mongodb_gateway、redis_node、redis_gateway、postgresql_node、postgresql_gateway、vblob_node、vblob_gateway、backup_manager、service_utilities、serialization_data_server、services_nfs、syslog_aggregator、services_redis、opentsdb、collector、dashboard
medium 4 RAM:2 GB;CPU:2 个;磁盘:16 GB debian_nfs_server、cloud_controller、dea
router 2 RAM:512 M;CPU:1 个;磁盘:8 GB router

根据以上,指定你需要的内容以及需要使用的Openstack资源模板(后面写yml需要使用)

bosh target http://1.2.3.4 (bosh director ip)
Target set to `microbosh-openstack (http://1.2.3.4:25555) Ver: 0.6 (release:ce0274ec bosh:0d9ac4d4)'
Your username: admin
Enter password: *****
Logged in as `admin'
target 到 bosh director

查看对应openstack最新的 stemcells

bosh public stemcells --all

下载 stemcells (比较漫长,看到国外网络状况)

bosh download public stemcell bosh-stemcell-openstack-0.6.7.tgz

上传到本地

bosh upload stemcell bosh-stemcell-openstack-0.6.7.tgz

建立部署目录,下载 cf-release 源码

mkdir /root/.bosh_deployments
git clone https://github.com/cloudfoundry/cf-release

检查更新,下载所有依赖包,并把整个 cloudfoundry 打包成一个tar包 这步时间更长,需要耐心,首先会从一个 Blob 服务器下载二进制文件。然后它会构建包并生成清单文件

cd bosh/release
git submodule update --init
bosh create release --with-tarball --force

将创建好的Release tar包上传到 BOSH 的director

bosh upload release dev_releases/bosh-x-y-dev.tgz

确认 releases & stemcell 无误

bosh releases
bosh deployments

部署清单可参照:
https://github.com/leftleghu/cloudfoundry/blob/master/cfos.yml

利用示例部署完成后,一共 29 个VM

bosh deployment bosh-release.yml
bosh deploy

问题:

  1. dns 问题, 可能配置问题,dns会去取Openstack nova 的设置,但 vm dns 需要设置为 micro-bosh 地址,才可正常解析,保证agent服务正常
  2. 服务监听地址问题,很几个服务配置模板取的是vip地址监听,会导致错误,需要修改成0.0.0.0,应该是个Bug. 如果自己修改的话,需要先修改 vm .erb 模板的变量,再修改配置,最后别忘记重启 monit restart all
  3. 部署并发进程问题,这也应该是个Bug,初次部署,会一次性部署所有的VM,比如29个VM,openstack需要时间,但部署超时90S,超时后会报错误。 所以,需要手工修改并发的数量: https://github.com/cloudfoundry/bosh/blob/master/director/lib/director/jobs/update_deployment.rb#L85 ps:貌似bug已经修复,可以通过(director/templates/director.yml.erb)这个模板调配。

参考资源
http://cndocs.cloudfoundry.com/
http://blog.csdn.net/alan90121/article/details/8181962
http://cloudfoundry.github.com/
https://groups.google.com/a/cloudfoundry.org/forum/?fromgroups=#!forum/bosh-users
https://groups.google.com/a/cloudfoundry.org/forum/?fromgroups=#!forum/vcap-dev



blog comments powered by Disqus