Kubernetes 入口 API 路由

Kubenetes Ingress API Routing

我有一个在默认路径上侦听的 React Web 应用程序,我希望在相同的 URL.

上包含我的 API 后端

下面是我的入口片段:

    http:
      paths:
      - backend:
          serviceName: atsweb
          servicePort: 80
        path: /(.*)
      - backend:
          serviceName: atsapi
          servicePort: 80
        path: /api(/|$)(.*)

我的 API 有一堆功能在 /api/ 之后路由,我在 mydomain.io/api/values 有一个测试页面,我无法访问。我的前端服务工作正常。

只是路径不正确吗?

我部署了一个独立的 API 只是为了检查容器 port/service 端口是否正确。

您似乎复制了 中的示例。你的入口注释是什么?检查重写,因为它看起来像是在进行重定向。尽管如此,适用的入口看起来像这样:

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: your-ingress
  namespace: default
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/ssl-redirect: "false"
spec:
  rules:
  - http:
      paths:
      - path: /
        backend:
          serviceName: atsweb
          servicePort: 80
      - path: /api/
        backend:
          serviceName: atsapi
          servicePort: 80

检查没有重写注释。这会使您的 uri 完全附加到下一个代理。因此,使 mydomain.io/api/values 转到 atsapi:80/api/values