首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Traefik v2中间件未被检测到

Traefik v2中间件未被检测到
EN

Stack Overflow用户
提问于 2019-11-01 03:56:11
回答 1查看 2.6K关注 0票数 1

中间件没有被检测到,因此路径没有被剥离,从而导致后端api中的404 s。

中间件存在于k8s应用程序名称空间

代码语言:javascript
复制
$ kubectl get -n apps middlewares
NAME                                                AGE
traefik-middlewares-backend-users-service           1d

中间件的配置与入口路由

代码语言:javascript
复制
---
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

静态配置

代码语言:javascript
复制
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 404页。路由在example.com/ Route /health

/users并没有被剥夺。这对我在traefik v1的工作非常好。

注意:在示例中,实际域已被example.comdomain.com所取代。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-11-04 20:21:08

为了让这件事起作用,我不得不:

  1. 添加具有名称空间的Kubernetes CRD提供程序,其中traefik v2的自定义k8s CRD存在
  2. 为traefik添加TLSOption资源

集群角色,以具有列出和查看新的v2资源

  1. 的权限,确保所有具有新资源的命名空间都配置了

Traefik静态配置文件

代码语言:javascript
复制
providers:
  providersThrottleDuration: 2s
  kubernetesCRD:
    namespaces:
      - apps
      - traefik

TLSOption CRD

代码语言:javascript
复制
---
apiVersion: apiextensions.k8s.io/v1beta1
kind: CustomResourceDefinition
metadata:
  name: tlsoptions.traefik.containo.us
spec:
  group: traefik.containo.us
  version: v1alpha1
  names:
    kind: TLSOption
    plural: tlsoptions
    singular: tlsoption
  scope: Namespaced

更新的Traefik静态配置

代码语言:javascript
复制
global:
  checkNewVersion: true
  sendAnonymousUsage: true
entryPoints:
  http:
    address: :80
  traefik:
    address: :8080
providers:
  providersThrottleDuration: 2s
  kubernetesCRD:
    namespaces:
      - apps
      - traefik
api:
  # TODO: make this secure later
  insecure: true
ping:
  entryPoint: http
log: {}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58653929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档