Traefik 和 URL 重定向,如何做到(K3S 环境)?

问题描述 投票:0回答:1

我有一个非常简单的场景: Ingress --> Service --> Pod 以及一些 Web 服务

需要什么:
somedomain.com/prefix1 --> 服务1
somedomain.com/prefix2 --> 服务2
somedomain.com/prefix3 --> Service3

仅适用于静态页面 如果 Web 服务重定向到任何其他路径,它确实知道这一点

/prefixN
,我可以看到浏览器正在尝试访问
/news
,但 Traefik 不知道有关此路径的任何信息,因此会失败。

---
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: stripprefix
spec:
  stripPrefix:
    prefixes:
      - /speed
      - /nginx
      - /jenkins
...

---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: services-ingress
  annotations:
    traefik.ingress.kubernetes.io/router.middlewares: default-stripprefix@kubernetescrd
spec:
  rules:
    - http:
        paths:
          - path: /speed
            pathType: Prefix
            backend:
              service:
                name: openspeedtest-service
                port:
                  number: 80
          - path: /nginx
            pathType: Prefix
            backend:
              service:
                name: nginx-service
                port:
                  number: 80
          - path: /jenkins
            pathType: Prefix
            backend:
              service:
                name: jenkins-service

Jenkins 的解决方法:我可以使用 Jenkins 的选项

--prefix=/jenkins
,但这并不是所有 Web 资源的通用解决方案。

例如,我们以 openspeedtest Pod/容器为例。我可以通过 /speed 路径看到 openspeedtest 页面,但是一旦按下“开始”按钮,Openspeedtest 就会让用户转到
/
,但 Ingress 现在知道任何有关它的信息,并且无法正确路由流量。

我相信这个任务应该有一个简单而强大的解决方案,请提出建议。

kubernetes kubernetes-ingress traefik traefik-ingress
1个回答
0
投票

问题的答案是使用主机分离,而不是路径分离: 如何使用 ingress 在 kubernetes 中显示速度测试器

© www.soinside.com 2019 - 2024. All rights reserved.