【问题标题】:Kubernetes Helm Nginx-ingress is hitting "default backend - 404"Kubernetes Helm Nginx-ingress 正在点击“默认后端 - 404”
【发布时间】:2018-08-15 20:12:30
【问题描述】:

注意,我还在学习 Kubernetes 和 Helm。

在运行 Docker for Mac(edge) 和 Kubernetes 集群的本地主机上使用 Helm 安装 nginx-ingress。

以下内容:

helm install --name my-release stable/nginx-ingress

我收到curl localhost的以下回复

default backend - 404

这是个好消息,但从这里开始。我想打一个服务/集群 IP。 Normaly 在 Nginx 中我会把它放在一个 conf 文件中。在 Helm Chart 值中,我可以看到它指的是:

controller:
5     name: controller
6     image:
7       repository: k8s.gcr.io/nginx-ingress-controller
…   
183   enabled: true
184 
185   name: default-backend
186   image:
187     repository: k8s.gcr.io/defaultbackend
188     tag: "1.3"

你知道它是如何工作的吗?

【问题讨论】:

  • 我建议您阅读有关 ingress 以及如何创建指向服务的 ingress...This 看起来是一个很好的起点...

标签: nginx kubernetes-helm


【解决方案1】:

Ingress 概念将路由规则的配置外部化。不是将它们放在代理的 conf 文件中,而是将规则视为您在部署应用程序时部署的 Kubernetes 资源。使用@Omer Levi Hevroni 指向的example,您可以在其rules: 部分中拥有包含此规范的Ingress 资源:

  - host: api.sample.com
    http:
      paths:
      - path: /
        backend:
          serviceName: hello-world-svc
          servicePort: 8080

这是一个基于主机的规则,意味着任何使用请求 api.sample.com/ 到达入口控制器的流量(它假定 DNS 路由指向入口控制器)都应该发送到服务 @ 987654330@ - 更具体地说是http://hello-world-svc:8080/

可以添加进一步的Ingress resources 或将其扩展为根据不同的请求主机(例如另一个api.sample.com 之类的子域)或路径(例如api.sample.com/specialpath)路由到不同的服务。两者都可以与rules 规范一起使用,例如:

  - host: subdomain1.example.com
    http:
      paths:
      - path: /path1
        backend:
          serviceName: s1
          servicePort: 80
      - path: /path1
        backend:
          serviceName: s2
          servicePort: 80
  - host: subdomain2.example.com
    http:
      paths:
      - path: /path1
        backend:
          serviceName: s3
          servicePort: 80
      - path: /path2
        backend:
          serviceName: s4
          servicePort: 80

这会将 http://subdomain1.example.com/path1 定向到内部 url http://s1:80/path1 等。如果内部 url 的最后一部分(在这种情况下为 path1)是不可取的,那么 rewrite-target annotation 可以与 nginx 入口一起使用控制器提供的入口资源被注释为 nginx 类。

我怀疑你知道这一切,因为这个问题来自不久前,但我认为填写答案会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-14
    • 2018-11-25
    • 2021-01-18
    • 2019-05-30
    • 1970-01-01
    • 2021-12-27
    • 1970-01-01
    相关资源
    最近更新 更多