Traefik 是一个现代的 HTTP 反向代理和负载均衡器,使部署微服务变得容易。
Traefik 可以与现有的多种基础设施组件(Docker、Swarm 模式、Kubernetes、Marathon、Consul、Etcd、Rancher、Amazon ECS…)集成,并自动和动态地配置自己。
系列文章:
实践中, 往往会有这样的需求, 用户输入的url是https://ewhisper.cn/alert-manager/#/alerts
, 但是转发到后端要变成http://alertmanager:9093/#/alerts
, 如何基于 Traefik on K8S 实现?
答案是: 使用 StripPrefixRegex MiddleWare.
直接创建如下的一个 MiddleWare:
apiVersion: traefik.containo.us/v1alpha1 kind: Middleware metadata: name: strip-prefix-1 spec: stripPrefixRegex: regex: - /[^/]+/
以上实现的功能就是去掉一层/<xxx>/
前缀.
去掉两层前缀也很简单:
apiVersion: traefik.containo.us/v1alpha1 kind: Middleware metadata: name: strip-prefix-2 spec: stripPrefixRegex: regex: - /[^/]+/[^/]+/
直接这样使用:
apiVersion: traefik.containo.us/v1alpha1 kind: IngressRoute metadata: name: alertmanager spec: routes: - kind: Rule match: Host(`ewhisper.cn`) && PathPrefix(`/alertmanager/`) middlewares: - name: strip-prefix-1 services: - name: alertmanager port: 9093
🎉🎉🎉 完成!
EOF
三人行, 必有我师; 知识共享, 天下为公. 本文由东风微鸣技术博客 EWhisper.cn 编写.