我们有一个现有的网站,比方说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
按预期工作
我错过了什么?
关注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