【发布时间】:2017-12-20 17:28:57
【问题描述】:
我们有一个现有的网站,比如说example.com,它是where.my.server.really.is.com 的CNAME。
我们现在正在使用 Kubernetes 开发新服务。我们的第一个服务/login 已准备好部署。使用模拟 HTML 服务器,我已经能够部署两个具有独立服务的 Pod,分别映射到 example.com 和 example.com/login。
我想做的是摆脱我的模拟 HTML 服务器,并在集群内部提供服务,该服务指向服务器外部的完整网站。然后我可以将example.com 的DNS 更改为指向我们的kubernetes 集群,人们仍然会从where.my.server.really.is.com 获取主站点。
我们正在使用 Traefik 进行入口,这些是我对网站配置所做的更改:
---
kind: Service
apiVersion: v1
metadata:
name: wordpress
spec:
type: ExternalName
externalName: where.my.server.really.is.com
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: wordpress
annotations:
kubernetes.io/ingress.class: traefik
spec:
backend:
serviceName: wordpress
servicePort: 80
rules:
- host: example.com
http:
paths:
- backend:
serviceName: wordpress
servicePort: 80
不幸的是,当我访问example.com 时,我得到的不是where.my.server.really.is.com,而是正文为“Service Unavailable”的 503。 example.com/login 按预期工作
我错过了什么?
【问题讨论】:
-
服务后面的 pod 运行正常吗?尝试执行 kubectl describe wordpress 以查看 endpoints 属性是否包含 pod ip。你用的是哪个版本的 traefik?
-
有任何消息@DanielM?
-
@fiunchinho 我目前的解决方案是使用 nginx 作为轻量级代理。您的解决方案更简洁,但我还没有尝试过。有机会我会回复你的(抱歉耽搁了)。
标签: kubernetes traefik