【发布时间】:2020-02-27 10:30:46
【问题描述】:
未检测到中间件,因此未剥离路径,导致后端 api 出现 404。
中间件存在于 k8s 应用命名空间中
$ kubectl get -n apps middlewares
NAME AGE
traefik-middlewares-backend-users-service 1d
中间件和入口路由的配置
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
annotations:
kubernetes.io/ingress.class: traefik
name: apps-services
namespace: apps
spec:
entryPoints:
- web
routes:
- kind: Rule
match: Host(`example.com`) && PathPrefix(`/users/`)
middlewares:
- name: traefik-middlewares-backend-users-service
priority: 0
services:
- name: backend-users-service
port: 8080
---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
name: traefik-middlewares-backend-users-service
namespace: apps
spec:
stripPrefix:
prefixes:
- /users
静态配置
global:
checkNewVersion: true
sendAnonymousUsage: true
entryPoints:
http:
address: :80
traefik:
address: :8080
providers:
providersThrottleDuration: 2s
kubernetesIngress: {}
api:
# TODO: make this secure later
insecure: true
ping:
entryPoint: http
log: {}
Traefik 仪表板没有中间件
Spring Boot 404 页面。路线在 example.com/actuator/health
/users 未被剥离。这在 traefik v1 中非常适合我。
注意:示例中的实际域已替换为example.com 和domain.com。
【问题讨论】: