无法连接Service Fabric集群问题求助(含sfctl连接报错信息)
问题:无法通过sfctl连接Service Fabric集群
我尝试通过PowerShell和ARM模板创建了一个Service Fabric集群,执行命令sfctl cluster select --endpoint http://z.z.z.z:19000时遇到了连接错误,报错信息如下:
C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise>sfctl cluster select --endpoint http://z.z.z.z:19000
Error occurred in request., ConnectionError: HTTPConnectionPool(host='z.z.z.z', port=19000): Max retries exceeded with url: / (Caused by New...
排查与解决方法
先别急,咱们一步步拆解可能导致连接失败的原因,逐个验证:
先确认网络能不能通
首先试试在本地ping一下集群节点的IPz.z.z.z,如果ping不通,那大概率是网络层面的问题:- 检查防火墙/安全组:Service Fabric的19000端口得对你的本地IP开放才行。如果是Azure上的集群,去看看对应的网络安全组(NSG)有没有允许这个端口的入站流量;本地防火墙也得确认没拦截这个端口的出站请求。
- 企业内网的话,可能有代理挡了请求,这时候得给sfctl配置代理:
sfctl config set --proxy http://你的代理地址:端口
检查端点和协议是不是错了
- 要是你的集群是安全模式部署的,默认用的是HTTPS协议(端口19080),而不是HTTP的19000端口——HTTP端口一般只在测试集群或者特意开启非安全访问时才可用。试试换成
https://z.z.z.z:19080再执行命令。 - 回头看看你用的ARM模板,确认有没有启用HTTP端点。如果模板里配置了安全集群,可能已经把19000端口禁用了,这时候必须用HTTPS,还得带上证书参数(测试环境可以临时用
--no-verify跳过证书验证,但生产环境千万别这么干)。
- 要是你的集群是安全模式部署的,默认用的是HTTPS协议(端口19080),而不是HTTP的19000端口——HTTP端口一般只在测试集群或者特意开启非安全访问时才可用。试试换成
确认集群本身是不是正常运行
- 如果是Azure上的集群,登录Azure门户看看集群的健康状态,是不是已经部署完成且处于正常状态。要是集群还在部署中或者本身不健康,肯定连不上。
- 试试用Service Fabric Explorer访问:
http://z.z.z.z:19080/Explorer(HTTPS的话是https://z.z.z.z:19080/Explorer),如果这个也打不开,那问题就出在集群端点本身了。
检查sfctl的版本和运行环境
- sfctl版本和集群版本不兼容也会出问题,先看看你的sfctl版本:
sfctl --version,要是版本旧了,用pip install -U sfctl更到最新版。 - 你是在Visual Studio的命令提示符里运行的,不如换个普通的PowerShell窗口试试,说不定是环境变量或者权限的问题导致命令执行异常。
- sfctl版本和集群版本不兼容也会出问题,先看看你的sfctl版本:
内容的提问来源于stack exchange,提问作者ossentoo
相关产品推荐
相关产品推荐

