kubernetes - Traefik信息中心-自定义API路径

标签 kubernetes traefik kubernetes-ingress traefik-ingress

我可以将Traefik仪表板的默认api路径从/api更改为其他内容吗?不幸的是,我发现this link不再起作用。

在我的场景中,Traefik充当Kubernetes入口 Controller ,并且我正在使用基于路径的路由。现在的问题是,我无法将/api用于自己的微服务,因为仪表板已经使用了该路径(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 

微服务之一的入口配置:
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的对应文档here

关于kubernetes - Traefik信息中心-自定义API路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59575542/

相关文章:

kubernetes - 如何获取特定 Pod 或容器的状态 : kubectl get pods using jsonpath

docker - 如何在docker中使用traefik代理后端

kubernetes - GCP K8的 native 入口保留客户端IP

ibm-cloud - 使用 Traefikv2.3 出现 `Failed to list *v1beta1.IngressClass: ingressclasses.networking.k8s.io` 错误

kubernetes - 带有Kubernetes入口的502错误网关

kubernetes - helm install istio 返回禁止错误

docker - 无法从 Mac 上的主机使用 NodePort 访问 minikube 服务

ssl - 创建 TLS 配置时出错 (v1.3.7)

docker - Ansible:如何使用动态键名设置 docker 容器标签?

http - HTTP Web Server 和 Ingress 的区别?