Hice referencia al enlace https://docs.vespa.ai/documentation/docker-containers-in-production.html para controlar el servidor de configuración y los servicios en dos contenedores docker diferentes.
Tengo una sola máquina en la que intento ejecutar contenedores separados para configserver (un contenedor) y servicios (un contenedor)
Pero no puedo entender cuál es el uso del contenedor de servicios, ya que todavía puedo trabajar con solo el contenedor del servidor de configuración en ejecución.
Comandos de Docker que estoy ejecutando:
docker run --hostname vespa-cfg --name vcfg --privileged -e VESPA_CONFIGSERVERS=vespa-cfg -p 19071:19071 -p 7070:8080 -d vespaengine/vespa:6.330.51 configserver
docker run --hostname vespa-ssrv --name vsrv --privileged -e VESPA_CONFIGSERVERS=vespa-cfg -p 7080:8080 -d vespaengine/vespa:6.330.51 servicios
He agregado lo siguiente en mi hosts.xml
<hosts> <host name="vespa-cfg"> <alias>server01</alias> </host> <host name="vespa-ssrv"> <alias>service01</alias> </host> </hosts>Y en servicios.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>También intenté conservar los datos en ambos contenedores en puntos de volumen separados, pero todos los datos aún se conservan en el directorio de puntos de volumen del servidor de configuración.
Las API de consulta también funcionan con el servidor de configuración en el puerto 7070 y no en el 7080 de los servicios.
Por favor ayuda.
En resumen, los servidores de configuración configuran los nodos de servicios. Son los nodos de servicios los que procesan y almacenan datos para servir. en sistemas grandes, tiene 1 o 3 servidores de configuración y 10/100 de nodos de servicios
Referencia https://docs.vespa.ai/documentation/overview.html
He visto en otra parte que algunos tenían problemas con slobrok (corredor de ubicación de servicios) en los nodos del servidor de configuración; eso se corrigió ejecutando vespa-start-services en el contenedor del servidor de configuración (simplemente inicie sesión en el contenedor y ejecute el comando de inicio y luego verifique en 7080 ) - https://docs.vespa.ai/documentation/reference/files-processes-and-ports.html
cuando el sistema funciona correctamente, debe obtener una respuesta en http://localhost:7080 en su configuración anterior
vespa-logfmt debería dar algunas ideas de cuál es el problema
También te recomiendo que uses la última versión, no la 6.330.51 - Vespa 7 es la versión principal actual
Para poder utilizar varios contenedores como desee, debe utilizar el DNS interno de Docker para que Vespa pueda buscar los nombres de todos los contenedores y servidores de configuración. Esto se puede hacer creando una red separada y siguiendo las convenciones sobre nombres de host y nombres de contenedores. Su ejemplo anterior funcionará si inicia los contenedores de esta manera:
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 servicesRecuerde actualizar su hosts.xml :
<hosts> <host name="vespa-cfg.vespa-net"> <alias>server01</alias> </host> <host name="vespa-ssrv.vespa-net"> <alias>service01</alias> </host> </hosts>También recomiendo usar la versión más reciente de la imagen Vespa Docker desde aquí