kubernetes - Traefik 入口不适用于集群 IP
问题描述
我使用 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
解决方案
您已创建评估 http 请求的主机标头的入口路由。因此,当您实际连接到同一个 ip 时,它一次使用 host:streambridge.local,一次使用“192.168.99.100”,您没有在 traefik 中添加规则。因此,这完全按照配置工作。
推荐阅读
- rust - 在具有泛型的数据类型中未实现大小错误
- mariadb - java.sql.SQLException: Host 'xx.xx.xxx.xxx' is not allowed to connect to this MariaDB server
- azure - Azure Key Vault 证书未与 Web 应用自动同步
- vector - 在参考帧之间找不到连接路径
- javascript - 拖动图像时停止 Flash
- html - 对于定义的屏幕尺寸,媒体查询无法正常工作
- plc - 安装 Siemens TIA 软件时遇到问题
- java - 如何计算日期之间的天数
- php - 跟踪短信中的网址是否已被用户阅读
- c++ - 仅更改函数的特定默认参数