本地Bosh-Lite环境中cf create-service-broker连接被拒绝问题排查
解决
cf create-service-broker连接被拒绝问题 我之前在本地Bosh-Lite环境折腾CF自定义服务Broker的时候,也碰到过一模一样的连接被拒绝问题,给你几个实际好用的排查和解决方向:
1. 先确认Broker的访问URL没写错
你执行cf create-service-broker时填的Broker URL,必须和cf apps输出里的可访问地址完全一致。从你的cf apps结果看,Broker有两个urls,比如haash-broker.vbox.mojito和带IP的那个,你得选一个本地或CF内部能正常访问的。
- 先在终端用curl测一下这个URL能不能通,比如:
如果curl都连不上,那肯定是URL本身的问题,得先搞定Broker的网络访问。curl http://haash-broker.vbox.mojito/v2/catalog
2. 检查Broker的端口和CF网络策略
- 要确认haash-broker是用CF指定的端口运行的:CF会给应用分配
$PORT环境变量,别让应用硬编码其他端口,一定要读取这个变量来监听。 - Bosh-Lite环境里,CF的系统组件(比如cloud-controller)可能默认没权限访问你的Broker应用,试试运行这条命令开权限:
cf allow-access-from cloud-controller haash-broker
3. 核对Broker的认证信息
cf create-service-broker需要的用户名和密码,必须和haash-broker启动时配置的完全匹配。比如如果Broker启动时设置了BROKER_USERNAME和BROKER_PASSWORD这两个环境变量,你在create命令里填的参数得和它们一模一样,差一个字符都不行。
4. 看CF组件日志找细节
如果上面几步都没问题,那就去看cloud-controller的日志,里面会有更详细的失败原因:
- 先找到cloud-controller的应用信息:
cf curl /v2/apps | jq '.resources[] | select(.entity.name == "cloud-controller")' - 然后拉取它的最近日志:
日志里会告诉你是DNS解析失败、端口不通还是认证出错,能精准定位问题。cf logs cloud-controller --recent
5. 排查Bosh-Lite的网络配置
本地Bosh-Lite经常会有网络转发或DNS解析的小问题:
- 用
nslookup haash-broker.vbox.mojito测试一下本地能不能解析Broker的域名,如果解析失败,可能得调整本地hosts或者Bosh-Lite的DNS配置。 - 如果用IP访问,确认Bosh-Lite虚拟机和你的本地机器在同一个网络段,没有防火墙或者路由规则挡住连接。
内容的提问来源于stack exchange,提问作者Sergey Shcherbakov
相关产品推荐
相关产品推荐

