【问题标题】:Kubernetes fanout ingress but with the root domain serving the clientKubernetes 扇出入口,但根域为客户端提供服务
【发布时间】:2019-12-12 08:04:15
【问题描述】:

我无法让我的客户端容器与 API 容器通信,我希望这样使用扇出入口:

foo.bar.com/api - routes to API container
foo.bar.com - routes to client container

我的设置确实使客户端没有问题,但是对 API 的所有调用都会导致 404 - 所以它显然不起作用。我认为 404 行为是一个红鲱鱼,它可能正在寻找与 /api 匹配的 Angular 路由并且找不到任何路由,我认为路由甚至没有发生。我的 Ingress yaml 在下面,如果需要,我可以共享配置的任何其他部分。任何指针都非常感谢!

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  namespace: foo-bar
  name: foo-bar-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    certmanager.k8s.io/cluster-issuer: letsencrypt-prod
    nginx.ingress.kubernetes.io/from-to-www-redirect: "true"
spec:
  tls:
  - hosts:
    - foo.bar.com
    secretName: tls-secret-prod
  rules:
  - host: foo-bar.com
    http:
      paths:
      - backend:
          serviceName: server
          servicePort: 3000
        path: /api
      - backend:
          serviceName: client
          servicePort: 80
        path: / 

【问题讨论】:

  • 简单的测试方法 - 以角度创建 /api 路由,响应类似于“ok”。这会让你知道发生了什么。不过,我认为这个入口规则没有任何问题
  • 您的 api 服务器上是否存在 /api 路径?
  • 感谢 cmets,我检查了 angular 和 api 服务器,发现它是缺少 /api 的节点路由。

标签: kubernetes kubernetes-ingress azure-aks


【解决方案1】:

正如 @HelloWorld 在 cmets 中所建议的,检查 api 服务器路由发现问题是服务器中的路由配置错误而不是入口规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-22
    • 2019-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 2017-08-15
    相关资源
    最近更新 更多