【问题标题】:Only the '/' works with NGINX ingress controller and ALB in AWS EKS只有“/”适用于 AWS EKS 中的 NGINX 入口控制器和 ALB
【发布时间】:2020-01-06 15:15:32
【问题描述】:

我创建了一个 EKS 集群并部署了一个带有应用程序负载平衡器的 NGINX 入口控制器。我部署了一个示例应用程序并将其绑定到我的域名。 这是入口文件 -

kind: Ingress
metadata:
  name: "2048-ingress"
  annotations:
    kubernetes.io/ingress.class: alb
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
  labels:
    app: 2048-ingress
spec:
  rules:
    - host: test.abc.xyz
    - http:
        paths:
          - path: /game
            backend:
              serviceName: "service-2048"
              servicePort: 80

当我在浏览器中打开 test.abc.xyz/game 时,它​​返回 404,但 test.abc.xyz 有效。我在这里错过了什么吗?我希望 test.abc.xyz/game 正常工作,并且 test.abc.xyz 返回 404。

更新 - 我正在按照本教程部署应用程序 - https://aws.amazon.com/blogs/opensource/kubernetes-ingress-aws-alb-ingress-controller/ 我希望将此应用重定向到 /game 而不是 /

【问题讨论】:

  • 你能分享一下 kubectl describe ing 2048-ingress 的输出吗
  • 分享你定义的alb规则。另外,请检查您的服务是否响应 /game 之后您可能会有一些东西。
  • 描述入口返回错误。来自服务器的错误 (NotFound):服务器找不到请求的资源。我只能做一个奇怪的获取或编辑。这是 ALB 规则。 IF Path 是 /game THEN 转发到目标组
  • 这个aws tutorial 会很有帮助
  • 我试过了。基本配置有效,但不适用于我想要实现的目标。

标签: amazon-web-services kubernetes nginx-ingress amazon-eks


【解决方案1】:

您必须在路径部分定义通配符,如下所示:

spec:
  rules:
    - host: test.abc.xyz
    - http:
        paths:
          - path: /*
            backend:
              serviceName: "service-2048"
              servicePort: 80
   - path: /game/*
            backend:
              serviceName: "service-2048"
              servicePort: 80

不幸的是,文档中写得不好。

【讨论】:

    猜你喜欢
    • 2021-07-18
    • 1970-01-01
    • 2021-09-21
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 2021-09-14
    • 2020-09-27
    相关资源
    最近更新 更多