【问题标题】:Traefik ingress does not work with cluster IPTraefik 入口不适用于集群 IP
【发布时间】:2019-10-02 19:13:06
【问题描述】:

我正在使用 minikube 在 Kubernetes 上开发应用程序,并且我正在使用 Traefik 作为入口控制器。

当我使用在入口(“streambridge.local”)中定义的主机 url 并在 linux 主机(“/etc/hosts”)中设置时,我能够连接和使用我的应用程序服务.但是,当我使用与 dns 完全相同的 IP 地址时,我无法连接到任何服务,并且收到“未找到 404 页面”。我不得不提一下,我使用的是minikube 的IP 地址:$(minikube ip)。下面是我的入口配置和我用于 dns 的命令。

如何通过 IP 连接和使用我的应用程序服务?

入口配置:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: my-ingress
  annotations:
    kubernetes.io/ingress.class: "traefik"
    traefik.frontend.rule.type: PathPrefixStrip
    traefik.frontend.passHostHeader: "true"
    traefik.backend.loadbalancer.sticky: "true"
    traefik.wss.protocol: http
    traefik.wss.protocol: https
spec:
  rules:
  - host: streambridge.local
    http:
      paths:
      - path: /dashboard
        backend:
          serviceName: dashboard
          servicePort: 9009
      - path: /rdb
        backend:
          serviceName: rethinkdb
          servicePort: 8085

我的/etc/hosts

127.0.0.1   localhost

192.168.99.100 traefik-ui.minikube
192.168.99.100 streambridge.local

这可行:http://streambridge.local/rdb

但这不起作用:http://192.168.99.100/rdb 并返回 404 page not found

【问题讨论】:

    标签: kubernetes dns traefik minikube kubernetes-ingress


    【解决方案1】:

    您已创建评估 http 请求的主机标头的入口路由。因此,当您实际连接到同一个 ip 时,它一次使用 host:streambridge.local,一次使用“192.168.99.100”,您没有在 traefik 中添加规则。因此,这完全按照配置工作。

    【讨论】:

    • 这实际上是我首先尝试的,但kubectl 通常不接受 IP,当我想应用我的入口时,它返回了一个错误。这是我的规则:` - 主机:192.168.99.100` 这是它返回的错误:The Ingress is invalid: spec.rules[0].host: Invalid value: "192.168.99.100": must be a DNS name, not an IP address
    • 我不明白你为什么要通过ip访问它。但是您应该能够使用“*”作为主机名(通配符匹配)来实现这一点。
    • 我会尝试,但首先,让我告诉你为什么我想通过 IP 访问它,也许你有一个解决方案。我想运行性能测试,所以我需要从另一台机器访问我的应用程序,显然我的 minikube 集群 IP 与服务器的网络 IP 不同。一种方法是使用网络服务器将任何传入请求转发到 minikube 和 kubernetes,但这会影响我的性能测试。我想到的第二个解决方案是端口转发,但为此我需要一个 IP,这就是我试图让它工作的原因。任何其他解决方案将不胜感激:)
    • 有趣的设置,请为此打开一个新问题,因为它是一个不同的范围,其他人也可能会感兴趣。
    • 我尝试了不同配置的通配符,但都被 kubectl 拒绝为无效。我认为在入口中使用 IP 作为主机是不可能的。顺便说一句,我问了一个新问题:stackoverflow.com/q/56171237/5553963
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-05
    • 2017-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多