我们有一个现有的网站,比方说example.com
,这是where.my.server.really.is.com
的CNAME。
我们现在正在使用Kubernetes开发新服务。我们的第一个服务/login
已准备好部署。使用模拟HTML服务器,我已经能够部署两个具有映射到example.com
和example.com/login
的单独服务的pod。
我想要做的是摆脱我的模拟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
,我得到了一个503,身体“服务不可用”。 example.com/login
按预期工作
我错过了什么?
答案 0 :(得分:0)
关注traefik documentation on using ExternalName
当指定ExternalName时,Træfik会相应地将请求转发给给定主机,并在服务端口匹配443时使用HTTPS。
这仍然需要在服务上从Ingress端口到(外部)服务端口设置正确的端口映射。
我相信您错过了服务的ports
配置。像
apiVersion: v1
kind: Service
metadata:
name: wordpress
spec:
ports:
- name: http
port: 80
type: ExternalName
externalName: where.my.server.really.is.com