2017-03-09 92 views
2

我有以下入口配置,但当我打电话给www.domain.com/api时,它总是打开我的UI服务而不是API,如果我在api例如www.domain.com/api/v1/projects之后调用别的东西,也会发生同样的情况。如何在Kubernetes Ingress中配置两种服务的路径?

我该如何解决这个问题?

apiVersion: extensions/v1beta1 
kind: Ingress 
metadata: 
    name: ingress 
spec: 
    tls: 
    - secretName: tls 
    backend: 
    serviceName: ui 
    servicePort: 5003 
    rules: 
    - host: www.domain.com 
    http: 
     paths: 
     - path:/
     backend: 
      serviceName: ui 
      servicePort: 5003 
     - path: /api 
     backend: 
      serviceName: api 
      servicePort: 5000 
+0

如何删除默认的后台 '后台: 服务名:UI SERVICEPORT:5003'。 https://kubernetes.io/docs/user-guide/ingress/#single-service-ingress。我想你会需要简单的扇出设置https://kubernetes.io/docs/user-guide/ingress/#simple-fanout – Aleksandar

回答

1

这是我解决这个问题的方法。我希望这可以帮助别人。

谢谢@aleks!

apiVersion: extensions/v1beta1 
kind: Ingress 
metadata: 
    name: kronus 
spec: 
    tls: 
    - secretName: tls 
    backend: 
    serviceName: ui 
    servicePort: 5003 
    rules: 
    - host: domain.com 
    http: 
     paths: 
     - path: /api 
     backend: 
      serviceName: api 
      servicePort: 5000 
     - path: /api/* 
     backend: 
      serviceName: api 
      servicePort: 5000 
    - host: www.domain.com 
    http: 
     paths: 
     - path: /api 
     backend: 
      serviceName: api 
      servicePort: 5000 
     - path: /api/* 
     backend: 
      serviceName: api 
      servicePort: 5000 
+0

请问您可以点击答案上的勾号来“接受”它,人们会知道问题解决了吗? – Ivan

+0

我需要等11小时,才能接受我的答案以关闭它。 –

+0

哦,很酷,谢谢 – Ivan