Traefik 仪表板 - 自定义 API 路径 [英] Traefik Dashboard - custom API path

查看:50
本文介绍了Traefik 仪表板 - 自定义 API 路径的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我可以将仪表板的 Traefik 默认 api 路径从 /api 更改为其他路径吗?不幸的是,我发现 此链接 已失效.

Can I change Traefik's default api path for the dashboard from /api to something else? I found this link which is not working anymore, unfortunately.

Traefik 在我的场景中充当 Kubernetes 入口控制器,我使用的是基于路径的路由.现在的问题是我不能将 /api 用于我自己的微服务,因为仪表板已经使用了这个路径 (这些端点).

Traefik is acting as Kubernetes ingress controller in my scenario and I'm using path-based routing. The problem is now that I cannot use /api for my own microservices because the dashboard uses this path already (these endpoints).

仪表板的入口配置:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: traefik-web-ui
  annotations:
    kubernetes.io/ingress.class: traefik 
    traefik.ingress.kubernetes.io/priority: "2"
spec:
  rules:
  - http:
      paths:
      - path: /dashboard
        backend:
          serviceName: traefik-web-ui
          servicePort: http
      - path: /api <-- needed to make dashboard's api available
        backend:
          serviceName: traefik-web-ui
          servicePort: http 

其中一项微服务的入口配置:

Ingress configuration for one of the microservices:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: backend
  annotations:
    kubernetes.io/ingress.class: traefik 
    traefik.ingress.kubernetes.io/priority: "999"
spec:
  rules:
  - http:
      paths:
      - path: /apis/ <-- i'd rather use /api here
        backend:
          serviceName: {{ include "my-backend.fullname" . }}
          servicePort: http 

推荐答案

您可以自定义如下

defaultEntryPoints = ["http"]

[entryPoints]
  [entryPoints.http]
  address = ":80"

  [entryPoints.foo]
  address = ":8080"

  [entryPoints.bar]
  address = ":8081"

# Activate API and Dashboard
[api]
entryPoint = "bar"
dashboard = true

[file]
  [backends]
    [backends.backend1]
      [backends.backend1.servers.server1]
      url = "http://127.0.0.1:8081"

  [frontends]
    [frontends.frontend1]
    entryPoints = ["foo"]
    backend = "backend1"
      [frontends.frontend1.routes.test_1]
      rule = "PathPrefixStrip:/yourprefix;PathPrefix:/yourprefix"

来自 Traefik 的相应文档这里

Corresponding docs from Traefik here

这篇关于Traefik 仪表板 - 自定义 API 路径的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆