使用 Traefik Ingress Controller 将流量路由到 Kubernetes 外部

Routing traffic to outside Kubernetes using Traefik Ingress Controller

我正在使用 Traefik 作为我的 Kubernetes 集群的入口控制器。 它工作正常,除了一个用例之外的所有用例都符合预期。

我有几个 services/applications,都在同一个 URL/Host 服务,但在不同的路径上。
到目前为止,所有应用程序都部署在 EC2-VM 上,在 ALB 后面,并且路由规则是在 ALB 中编写的。

现在我已经把一些应用迁移到Kubernetes上了,还有一些还是部署在ALB后面。我希望所有流量仅通过 traefik 提供服务,并且 traefik 应该根据路径规则路由到 Kubernetes 内部和 Kubernetes 外部的应用程序。

我想将我的 URL 指向 traefik 并制定类似的规则(这样我就可以将一个上游定义为 URL):

spec:
  rules:
  - host: my.url.com
    http:
      paths:
      - backend:
          serviceName: abc-service
          servicePort: tcp-80
        path: /abc
      - backend:
          serviceName: xyz-service
          servicePort: tcp-80
        path: /xyz
      - backend:
          serviceName: 12345-alb-url.ap-south-1.elb.amazonaws.com ##I am not sure what the key will be
          servicePort: tcp-80
        path: /123

traefik 可以吗?我尝试在 traefik 文档和 google 上搜索,但找不到任何相关的解决方案。

您可以为集群外部署的服务创建一个ExternalName类型的服务,并将流量转发到Ingress中的服务。请参阅 Type ExternalName .