Cloudfoundry 实践进阶

来源:互联网 发布:python可以写界面么 编辑:程序博客网 时间:2024/06/09 17:24

1 保证容器不被销毁---定位app打包、运行失败等问题

$ vim /var/vcap/packages/warden/warden/root/linux/destroy.sh #修改warden脚本# 在"if [-f $target/destroy.sh]"前加"exit 0"

此方法不用重启warden、dea进程

2 确保容器健康检查成功 ---app启动超时、失败等问题

$ cd /var/vcap/data/warden/depot  #cd到容器目录下$ ls -At | head -n1      #第一个为对应容器handle$ cat ./snapshot.json | grep ports #查找容器内部监听的端口$ ./bin/wsh       #登陆到容器内部$ python -m SimpleHTTPServer $(本应监听的端口)  #确保检查通过,得快速

3 容器内手动打包应用droplet---定位app打包失败

$ vi /var/vcap/packages/dea_next/lib/dea/staging/staging_task_workspace.rb#在"File.open(plugin_config_path,'w'){|f|YAML.dump(plugin_config,f)}"后添加`FileUtils.cp(plugin_config_path,"/var/vcap/data/dea_next/admin_buildpackes/plugin_config")`$ monit restart dea #重启dea进程$ #注释掉销毁容器代码$ #登陆到容器,执行$ /usr/bin/ruby /var/vcap/packages/dea_next/buildpacks/bin/run/ /var/vcap/data/dea_next/admin_buildpacks/plugin_config

4 监听NATS消息---定位消息流程的必备方法

$ #选择一台安装过nats gem包的环境比如dea、uaa所在的机器;$ #dea$ cd /var/vcap/packages/dea_next/vendor/bundle/ruby/1.9.1/gems/nats-0.5.0.beta.16/$ /var/vcap/packages/ruby/bin/bundle exec ./bin/nats-sub 'router.register' -s nats://nats:c1oudc0w@$(NATS_IP):$(NATS_PORT) #监听"router.register"消息内容

5 快速定位打包应用所在的dea

$ #监听“staing.*.start“消息主题,方法如上

6 查询dea上容器个数

$ curl router:c1oudc0w@$(ROUTER_IP):$(ROUTER_STATUS_PORT)/routes | python -mjson.tool | grep $(DEA_IP) | wc -l # 要减一个1
0 0
原创粉丝点击