我引用了链接https://docs.vespa.ai/documentation/docker-containers-in-production.html来控制两个不同码头容器中的配置服务器和服务。
我有一台机器,试图运行分别用于configserver(一个容器)和服务(一个容器)的容器。
但是,我无法理解服务容器的用途,因为我仍然能够在只运行配置服务器容器的情况下工作。
我正在运行的Docker命令:
码头运行--主机名vespa-cfg --特权-e vespa_CONFIGSERVERS=vespa -p 19071:19071 -p 7070:8080 -d vespaengine/vespa:6.330.51 configserver
码头运行--主机名vespa-ssrv - -e VESPA_CONFIGSERVERS=vespa-cfg -p 7080:8080 -d vespaengine/vespa:6.330.51服务
我在我的hosts.xml中添加了以下内容
<hosts>
<host name="vespa-cfg">
<alias>server01</alias>
</host>
<host name="vespa-ssrv">
<alias>service01</alias>
</host>
</hosts>在services.xml
<services version="1.0">
<admin version="1.0">
<adminserver hostalias="server01"/>
<configservers>
<configserver hostalias="server01"/>
</configservers>
</admin>
<container id="default-container" version="1.0">
...
<nodes>
<node hostalias="service01" />
</nodes>
...
</container>
<content id="default-content" version="1.0">
...
<nodes>
<node hostalias="service01" distribution-key="0" />
</nodes>
...
</content>
</services>我还尝试将两个容器上的数据保存在单独的卷点上,但所有数据仍然保存在configserver卷点目录中。
查询API还使用端口7070的configserver,而不是服务的7080。
拜托救救我。
发布于 2019-06-27 20:05:55
简而言之,configserver配置服务节点。处理和存储用于服务的数据的是服务节点。在大型系统中,您有1或3个configserver和10‘s/100的服务节点。
参考文献https://docs.vespa.ai/documentation/overview.html
我在其他地方看到,有些人在configserver节点上遇到slobrok (服务位置代理)的问题--通过在configserver容器中运行vespa- start -services (只登录容器并运行start命令,然后检查7080) - https://docs.vespa.ai/documentation/reference/files-processes-and-ports.html进行了更正。
当系统正常工作时,您应该在上面的配置中获得对http://localhost:7080的响应。
vespa-logfmt应该给出一些关于问题所在的想法。
我还建议您使用最新版本,而不是6.330.51-Vespa 7是当前的主要版本。
发布于 2019-08-05 12:17:30
为了能够像您想要的那样使用多个容器,您需要使用内部Docker,以便Vespa能够查找所有容器和配置服务器的名称。这可以通过创建一个单独的网络并遵循关于主机名和容器名称的约定来实现。如果您以这种方式启动容器,那么上面的示例将起作用:
docker network create --driver bridge vespa-net
docker run --network=vespa-net --hostname vespa-cfg.vespa-net --name vespa-cfg --privileged -e VESPA_CONFIGSERVERS=vespa-cfg.vespa-net -p 19071:19071 -p 7070:8080 -d vespaengine/vespa:6.330.51 configserver
docker run --network=vespa-net --hostname vespa-ssrv.vespa-net --name vespa-ssrv --privileged -e VESPA_CONFIGSERVERS=vespa-cfg.vespa-net -p 7080:8080 -d vespaengine/vespa:6.330.51 services记得更新你的hosts.xml
<hosts>
<host name="vespa-cfg.vespa-net">
<alias>server01</alias>
</host>
<host name="vespa-ssrv.vespa-net">
<alias>service01</alias>
</host>
</hosts>我还建议使用来自这里的Vespa映像的最新版本
https://stackoverflow.com/questions/56793859
复制相似问题