在多个 docker 容器上设置 vespa 时出现问题

Issues while setting up vespa on multiple docker containers

我有两个码头工人坐在两台不同的机器上,都是 运行 vespa。当我提交一个有两个节点的应用程序时——vespa1 和 vespa2(在 /etc/hosts 中解决)。我收到以下错误。

Uploading application '/vespa-eval/src/main/application/' using http://localhost:19071/application/v2/tenant/default/session?name=application
Session 6 for tenant 'default' created.
Preparing session 6 using
http://localhost:19071/application/v2/tenant/default/session/6/prepared
Request failed. HTTP status code: 400
Invalid application package: default.default: Error loading model:
Could not find host in the application's host system: 'vespa-container'. Hostsystem=host 'vespa1',host 'vespa2'

我只使用 localhost 时没有问题。

hosts.xml

<?xml version="1.0" encoding="utf-8" ?>
<hosts>
    <host name="vespa1">
    <alias>node0</alias>
</host>
    <host name="vespa2">
    <alias>node1</alias>
</host>
</hosts>

services.xml

<?xml version="1.0" encoding="utf-8" ?>
<services version="1.0">

  <admin version="2.0">
    <adminserver hostalias="node0"/>
    <configservers>
      <configserver hostalias="node0"/>
    </configservers>
  </admin>

  <container id="container" version="1.0">
    <document-api />
    <search />
    <nodes>
      <node hostalias="node0" />
      <node hostalias="node1" />
    </nodes>
  </container>

  <content id="product" version="1.0">
    <redundancy>1</redundancy>
    <documents>
      <document type="product" mode="index" />
    </documents>
    <nodes>
      <node hostalias="node0" distribution-key="0" />
      <node hostalias="node1" distribution-key="1" />
    </nodes>
  </content>

</services>

看起来名为 vespa-container 的主机已经部署但不在新的应用程序包中。要调试,请尝试

vespa-model-inspect hosts

在配置服务器上查看它是否列出主机。从头开始尝试也许是个好主意,我没有发现随附的文件有任何问题。要清理配置服务器,请搜索

vespa-configserver-remove-state

在文档中

我遇到了同样的问题,并通过将 'vespa-container'(命令下方)替换为物理框的主机名来修复错误。但是,这会导致 rpc 连接中的其他几个错误。你解决问题了吗? @aman.gupta

 docker run --detach --name vespa --hostname vespa-container --privileged \
  --volume $VESPA_SAMPLE_APPS:/vespa-sample-apps --publish 8080:8080 vespaengine/vespa