Kubernetes服务指向外部资源

时间:2017-12-20 17:28:57

标签: kubernetes traefik

我们有一个现有的网站,比方说example.com,这是where.my.server.really.is.com的CNAME。

我们现在正在使用Kubernetes开发新服务。我们的第一个服务/login已准备好部署。使用模拟HTML服务器,我已经能够部署两个具有映射到example.comexample.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按预期工作

我错过了什么?

1 个答案:

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

您可以看到a full example in the docs

相关问题