如何在Kubernetes Ingress中为两个服务配置Path?

时间:2017-03-09 11:23:41

标签: kubernetes google-cloud-platform kubectl

我有以下入口配置,但是当我拨打www.domain.com/api时,它总是打开我的UI服务而不是API,如果我在 api 之后调用其他内容,就会发生同样的事情,例如www.domain.com/api/v1/projects

我该如何解决?

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

1 个答案:

答案 0 :(得分:2)

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

谢谢@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