我们正在尝试为Kubernetes创建一个ExternalName服务,以隐藏链接到Firebase的URL:
kind: Service
apiVersion: v1
metadata:
name: firebase
namespace: devel
spec:
type: ExternalName
externalName: firebase-project-123456.firebaseio.com
该服务已正确创建,我们可以ping http://firebase
。但是,连接到Firebase端点无效:
curl -v http://firebase/activity.json
< HTTP/1.1 404 Not Found
< Content-Type: text/html; charset=UTF-8
< Referrer-Policy: no-referrer
一个想法是https出现问题(因为目标服务在https上运行),但是我们可能不会收到404错误,但会出现其他错误。我不知道路上怎么了。
答案 0 :(得分:2)
您可能会遇到虚拟主机问题。 firebase-project-123456.firebaseio.com是一个虚拟主机名,用于将您的请求路由到正确的后端。 Kubernetes外部服务本质上是一个DNS CNAME,它会强制对实际主机名进行第二次DNS查找。
看看这是否对您有用:
curl -v -H "Host: firebase-project-123456.firebaseio.com" http://firebase/activity.json
如果确实如此,那就是您遇到的问题。您可能必须提供一个非常简单的服务,该服务将您的请求代理到firebase上的正确URL。