Traefik入口不适用于群集IP

时间:2019-05-15 15:20:22

标签: kubernetes dns traefik minikube kubernetes-ingress

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

当我使用在入口中定义的主机的URL(“ streambridge.local”)并在linux主机(“ / etc / hosts”)中设置时,我能够连接并使用我的应用程序服务。但是,当我使用与dns完全相同的IP地址时,我无法连接到任何服务,并且收到“找不到404页”。我必须提到,我使用的是minikube所提供的$(minikube ip)的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

1 个答案:

答案 0 :(得分:1)

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