问题标签 [traefik-ingress]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
6413 浏览

traefik - Kubernetes入口中基于Traefik路径的路由无法按预期工作

我正在尝试在 Kubernetes 中使用 Traefik 入口控制器提供的基于路径的路由机制,但我在 url 重写时遇到了一些问题。

我的 [更新] 配置如下

流量被路由到正确的服务,但是当我查看 db-manager (kubernetes) 服务的日志时,url 仍然以 /db 为前缀。我对 PathPrefixStrip 的期望是,流量将在没有 /db 前缀的情况下路由到运行 db-manager 微服务的容器,该容器正在监听 / ( http://db-manager:8081 ) 在后端边。

我错过了什么吗?traefik 支持还是只有 nginx 支持?预先感谢您的反馈。

[编辑]

更具体地说,我使用下面讨论的当前注释观察以下内容

  • traefik.ingress.kubernetes.io/rule-type: "PathPrefixStrip"
  • traefik.ingress.kubernetes.io/rewrite-target:“/”

网址:http://local-ubuntu/db [OK] -> 200

然后其他资源正在加载,但指向错误的基本 url

例子:

资源网址是:http://local-ubuntu/public/css/bootstrap.min.css

但这应该是:http://local-ubuntu/db/public/css/bootstrap.min.css (当我手动尝试时有效)

我不确定我在当前配置中缺少什么。

0 投票
1 回答
1327 浏览

grpc - Traefik 作为入口控制器 + 服务器 GRPC - 未知:未收到状态

我在 AKS 中使用 traefik 作为入口控制器,我有一个可以在本地正确运行的 grpc 服务,但是 traefik 背后有一些问题。

当GRPC服务器返回错误时,我正确接收,但是当它发送正常响应时,我没有收到:

对比

错误:

k8s 服务 yml:

编辑:更多信息

经过一些调试,我检查了收到的响应:

这里唯一的问题是状态,一旦反序列化读取内容正确的响应:{ response: 'PONG' }

我不知道为什么将状态设置为 2 (UNKNOWN) 而不是 0 (OK)。

0 投票
1 回答
200 浏览

kubernetes - Traefik 1.7 升级打破 kubernetes 1.7.12

我们已经 traefik 一年多了,它一直很棒。我们目前在 1.6.6 上,一切正常,一旦我们尝试升级到 1.7,我们所有的端点都会得到 502。知道为什么会发生这种情况吗?

我们正在尝试升级,因为 NS1 是作为 DNS 提供程序引入的,而且 HTTP 挑战似乎不再起作用。

这是我们当前的设置:

似乎我们得到了:

time="2019-02-08T00:40:58Z" level=debug msg="'502 Bad Gateway' 导致:EOF"

0 投票
1 回答
1135 浏览

docker-compose - Traefik:简单的 Letsencrypt HTTPS 重定向到 whoami 服务抛出“404 页面未找到”

我已经尝试启动并运行了两天,但一些简单的 HTTP -> HTTPs 重定向不起作用!:(

非常简单的用例:

whoami.my-example-domain.com:80 => 重定向到 whoami.my-example-domain.com:443 然后 traefik 在内部重定向到我的 whoami 服务 docker 容器的 :80。

这是 docker-compose.yml

当我现在调用http://whoami.some-example-domain.com(这只是一个演示域并且不起作用)=> 它重定向到 HTTPs ......这很酷,但随后它抛出了著名的“ 404 页面未找到” traefik 标准错误。

如果已经尝试为容器设置以下标签:

  • “traefik.port=80”
  • “traefik.frontend.entryPoints=http”

那也没有用。

任何帮助,将不胜感激!提前致谢!

问候,

萨沙

0 投票
1 回答
262 浏览

docker - Traefik 可以在 Docker 主机上为容器创建具有固定端口的路由吗?

假设有两个 MariaDB 容器在 Docker swarm 的同一主机上运行。每个容器都有其内部端口 3306,该端口动态暴露给例如 30004 和 30056。

我想要一个外部容器(未在堆栈中定义)通过主机名和固定端口访问一个堆栈的数据库,例如mariadb_s1:3306(重定向到端口 30004 上堆栈 1 的 MariaDB),如下图所示。

我们还在 Docker 主机上运行了一个 Traefik 实例。Traefik 有能力创建这些路线吗?

原理图概览

0 投票
0 回答
283 浏览

kubernetes - 如何使用 traefik 捕获传出的 404

我正在使用 traefik 作为 kubernetes 的入口。如果我的任何服务返回 404 或没有服务来回答该请求,我需要做一些特殊的事情,因此再次返回 404。

目前,我有一个默认后端,当不满足入口规则时,它能够捕获 404,但是当服务本身返回 404 时,它会呈现自己的页面,这不是我想要的。

我尝试通过注释来实现这一点:

但这并不理想,因为我必须将此注释放在集群中的每个入口规则上。

我怎样才能从我的集群中捕获所有传出的 404 并将它们发送到我的一个特殊服务,该服务对那些 404 有一些魔力?

[编辑]
为了更好地理解我想要做的事情:

使用默认后端有点好,因为是的,如果它不在入口规则中,那么它就像一个魅力,但如果请求如下:

我们有/timeline入口规则,然后请求将被传递给坐在该规则上的服务,但/asd在该服务中不存在,因此,服务返回它自己的 404 页面,我无法捕获我可能需要的这个请求重定向。

0 投票
0 回答
2440 浏览

kubernetes - 使用 entryPoints.http.forwardedHeaders 的带有 X-Forwarded-For 标头的 Traefik 白名单不起作用

我正在尝试使用 traefik 1.7.6 将入口资源放在白名单后面,但它一直返回 403 状态代码。

请注意,Traefik 位于负载均衡器后面,它将 X-Forwarded-For 标头放入请求 ( https://docs.cloud.oracle.com/iaas/Content/Balance/Reference/httpheaders.htm )。

这是traefik配置

这里有应该列入白名单的入口资源

如果我发出请求,使用列入白名单的 ip 之一,我可以看到 Traefik 没有使用 X-forwarder-header 来解析我的真实 ip。

添加服务文件.yml

更新:Trefik 调试日志

0 投票
0 回答
497 浏览

traefik - Traefik 没有路由到 docker 后端中的静态资源

Traefik 无法将请求静态资源的客户端脚本路由到正确的后端。因此,JS、CSS、图像等静态资源无法加载。

简而言之,我试图将 traefik 设置为使用 PathPrefixStrip 访问单个主机上的多个应用程序的内部(局域网内)反向代理,例如

http://{IP-ADDR}/AppA http://{IP-ADDR}/AppB

可悲的是,要让它始终如一地工作是一场艰苦的斗争。

在以下情况下一切正常: - 为 PathPrefix 设置 Traefik 仪表板/whoami - 配置前端规则以允许在站点根目录访问(例如 http://{IA-ADDR}/ )

以下屏幕截图提供了降级配置:

直接访问 Calibre-web - http://{IP-ADDR}:8083

通过 traefik 访问 - http://{IP-ADDR}/books

Traefik 访问日志 - 高亮显示后端找不到

用于 Calibre-web 的 Docker 撰写文件

Traefik 配置

我错过了什么?

提前致谢!米

0 投票
0 回答
707 浏览

kubernetes - Traefik 入口粘性会话哈希值

我有带有 Traefik 的 Kubernetes 集群。我有一个 Kubernetes 部署,其中包含多个副本和一个关联的 Kubernetes 服务。我为 Kubernetes 服务添加了会话亲和性:

会话关联工作正常,我可以看到 Traefik 创建 cookie REPLICA。但是该 cookie 的值是副本 pod 的内部 ip,例如http://10.244.2.28:8080. 是否可以将 Traefik 配置为使用某种哈希,而不是 Pod 的内部 IP 地址?

0 投票
3 回答
4177 浏览

kubernetes - 如何在 Traefik Ingress Controller 后面为微服务添加缓存?

一段时间以来,我一直在使用基于 Docker 的设置和 nginx 反向代理转发到 Dockerized 微服务。现在我正在评估切换到基于 Kubernetes 的方法和Traefik Ingress Controller。

Ingress Controller 提供了所有需要的功能,除了一个:它不支持缓存

微服务在为静态资源提供服务时性能不是很好,我更愿意减少负载,以便它们可以专注于其实际目的,处理动态 REST 请求。

有没有办法为基于 Traefik 的 Ingress 添加缓存支持?由于有许多小型服务,如果可能的话,我不希望为每个微服务启动一个专用的 Pod。此外,如果可能的话,将不胜感激基于配置的方法(也许使用自定义Operator?)。