无法在应用程序的主机系统中找到主机:'vespa-container'

时间:2018-04-01 03:47:26

标签: vespa

我在两个节点上部署了vespa docker镜像,在运行'/ opt / vespa / bin / vespa-deploy prepare'时遇到以下错误,配置如下。如果我用'localhost'替换'yyy.com',它看起来很好。有谁知道这是什么问题?

创建了租户'默认'的会话21。 使用http://localhost:19071/application/v2/tenant/default/session/21/prepared准备会话21 请求失败。 HTTP状态代码:400 无效的应用程序包:default.default:加载模型时出错:无法在应用程序的主机系统中找到主机:'vespa-container'。 Hostsystem =主机'yyy.com',主机'xxx.com'

---- hosts.xml -----

<hosts>
   <host name="yyy.com">
     <alias>admin0</alias>
   </host>
   <host name="xxx.com">
     <alias>node2</alias>
   </host>

 </hosts>

--- services.xml ---

  3 <services version="1.0">
  4   <admin version="2.0">
  5     <adminserver hostalias="admin0"/>
  6     <configservers>
  7       <configserver hostalias="admin0"/>
  8     </configservers>
  9   </admin>
 10   <container id="container" version="1.0">
 11     <document-api />
 12     <search />
 13     <nodes>
 14       <node hostalias="admin0" />
 15       <node hostalias="node2" />
 16     </nodes>
 17   </container>
 18 
 19   <content id="music" version="1.0">
 20     <redundancy>1</redundancy>
 21     <documents>
 22       <document type="music" mode="index" />
 23     </documents>
 24     <nodes>
 25       <node hostalias="admin0" distribution-key="0" />
 26       <node hostalias="node2" distribution-key="1" />
 27     </nodes>
 28   </content>
 29 
 30 </services>


//inside docker container, /etc/hosts
172.17.0.2      vespa-container

2 个答案:

答案 0 :(得分:3)

你的问题是&#39; localhost&#39;容器内部是&#39; vespa-container&#39;,但它必须是其他节点可以访问的FQDN,例如xxx.com/yyy.com。

如果您对详细信息感兴趣,解析名称vespa-container但必须解析为FQDN的确切代码是https://github.com/vespa-engine/vespa/blob/master/vespajlib/src/main/java/com/yahoo/net/HostName.java中的getPreferredHostname

答案 1 :(得分:0)

我想这是因为你的容器可能无法解决&#34; yyy.com&#34;和&#34; xxx.com&#34;。

你可以从容器里面ping yyy.com和xxx.com吗?您节点上的2个容器的主机名是什么?

您应该将您的节点IP和主机名放在/ etc / hosts中,以便它们可以相互通信。