2017-03-09 90 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