Kubernetes Externalname使用https

Kubernetes Externalname使用https,kubernetes,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。但是,连

我们正在尝试为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
curl-vhttp://firebase/activity.json
未找到

一个想法是https存在问题(因为目标服务在https上运行),但是我们可能不会得到404,而是其他一些错误。我不知道途中可能出现了什么问题。

您可能遇到了虚拟主机问题。firebase-project-123456.firebaseio.com是一个虚拟主机名,用于将请求路由到正确的后端。Kubernetes外部服务本质上是DNS CNAME,它强制对实际主机名进行第二次DNS查找

看看这是否适合您:

curl -v -H "Host: firebase-project-123456.firebaseio.com" http://firebase/activity.json

如果是这样,那就是你遇到的。您可能需要创建一个简单的服务,将您的请求代理到firebase的正确URL。

这也是我的想法,谢谢您的确认。您将如何实施此类服务?Nginx?还有更小的吗?我会在吊舱里旋转一个nginx代理。行业标准不能出问题。