Kubernetes Externalname使用https

时间:2018-07-30 18:58:33

标签: kubernetes

我们正在尝试为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错误,但会出现其他错误。我不知道路上怎么了。

1 个答案:

答案 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。