我正在使用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
答案 0 :(得分:1)
您已经创建了入口路由,用于评估http请求的主机标头。因此,当您实际上连接到相同的ip时,一次是使用host:streambridge.local,一次是使用“ 192.168.99.100”,因此您没有在traefik中添加规则。因此,它完全按照配置工作。