无法卷曲/使用带有一些 slug 的 rest API 的原因可能是什么,例如 example.com/application/v2/xxxx。我使用的 docker 图像是来自 http://vespa.ai/ https:/的应用程序/github.com/vespa-engine/docker-image/blob/master/Dockerfile
我已经正确设置了节点端口和入口
我尝试了各种,例如主机上的默认后端:
- host: example.com
http:
paths:
- backend:
serviceName: myservice
servicePort: 19071
或显式使用通配符路由:
- host: example.com
http:
paths:
- path: /*
backend:
serviceName: myservice
servicePort: 19071
奇怪的是,在外部(集群外)做 curl: curl -s --head http://example.com/ApplicationStatus确实 返回 statusCode 200 OK
执行 curl -s --head http://example.com/application/v2/tenant/ 从应用程序返回 BAD_REQUEST。
“错误代码”:“BAD_REQUEST”,“消息”:“ http://example.com/application/v2/tenant/ ”
exec 进入容器并执行 curl -s --head http://localhost:19071/application/v2/tenant/ works..
因此,要么应用程序以某种方式匹配来自入口时不正确的主机名,要么存在一些其他问题,即完整的 uri 没有被代理。
该应用程序的源代码目前对我来说太大而无法理解,但查看源代码 https://github.com/vespa-engine/vespa/blob/f76406b88df47f6bdbf9d24feda4c9ff55c63e06/orchestrator/src/main/java/com/yahoo /vespa/orchestrator/resources/HostSuspensionResource.java 它可能解释了为什么它返回错误消息。
其他一切似乎都有效,配置服务器和应用程序。
是应用程序本身还是 kubernetes 可能是这里的问题?