如何使用 ingress 控制两个实例之间的路由?

时间:2021-05-30 21:12:17

标签: nginx kubernetes kubectl kubernetes-ingress nginx-ingress

我在 Kubernetes 上部署了一项服务,它的网址为 app.io(使用 ingress)。

如果我需要用户每次访问 app.io 并且:

  • 如果它运行正常且没有错误,它会重定向到 app.io(在 k8s 上)

  • 如果运行不佳或出现错误,它将重定向到 Heroku 上的备份服务,例如使用 url backup.io

我该怎么做?

提前致谢

3 个答案:

答案 0 :(得分:1)

您描述的回退路由不是 Ingress 标准的一部分。它仅根据传入的 Host 标头和请求路径进行路由。某些特定的 Ingress Controller 可能支持将此作为自定义扩展,但我不知道有任何支持。

答案 1 :(得分:0)

我认为您可能需要在前面放置一个像 HAproxy 这样的 L7 负载均衡器。在后端池中配置您的备份位置,剩下的交给 HAProxy。

答案 2 :(得分:0)

您可能希望将入口 befault-backend 配置为某种后备服务。在大多数情况下,人们倾向于将其用于某些自定义 404,但您可能只是将其定向到其他服务,例如 backup-io

kind: Ingress
metadata:
  name: my-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/rewrite-target: "/"
    nginx.ingress.kubernetes.io/default-backend: backup-io

这当然是假设您使用的是 nginx 控制器。 Kong 也有后备服务 instructions