问题标签 [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 投票
1 回答
1481 浏览

http - 在 Traefik 路由上限制允许的方法

我目前在我的 K8s 集群中使用 traefik 1.6.x 作为入口控制器。我想更新到 1.7.x(然后再更新到 2.x),但更新后我的入口不再工作。

问题似乎是,我通过将方法添加到traefik.frontend.rule.type注释中来对我的入口进行 http 方法限制,如下所示:

我不知道这是否曾经打算以这种方式完成,但显然它奏效了。我在其他一些 StackOverflow 帖子 iirc 中发现了这一点。

删除 Method 部分(或整个注释,因为PathPrefix是默认设置)使路由恢复生机。但是TRACE,例如,这当然允许再次使用该方法。

是否有另一种方法可以使用 1.7.x 的 traefik 版本来限制那些(甚至可能是所有入口)?

提前致谢!

0 投票
1 回答
699 浏览

spring-boot - '无法推断基本 url' Swagger-ui:Kubernetes 使用 Traefik 入口控制器

当我在 kubernetes 环境中部署后尝试访问我的 swagger url 时,我遇到了这个错误消息。

当我在 localhost 上运行我的 Spring Boot 应用程序时,我能够看到招摇而没有任何错误。

我使用 Traefik 作为我的入口控制器。

0 投票
1 回答
2259 浏览

traefik - Traefik V2 获取通配符证书

遵循本教程后,我运行了基本设置

但是努力从 Let's Encrypt 获得域的通配符证书。

traefik 配置:

和路由配置:

我能够获得证书,traefik.domain.ca但需要获得整个域 ( *.domain.ca) 的通配符证书。我找不到任何直接参考配置。

我在这里想念什么?

0 投票
1 回答
1246 浏览

symfony - Symfony 应用程序没有在 Traefik 和 Nginx 代理后面获得 HTTPS 流量

我目前尝试在 Docker 设置中部署 Symfony 应用程序。当前设置是:

[ Traefik ] -> [ Nginx ] -> [ PHP-FPM ]

  • Traefik 是入口点,处理 SSL 证书(使用dnsChallenge选项)。
  • Nginx 处理静态文件(资产和那些东西)的服务,有一个traefik.frontend.ruleaslabel来分配域
  • PHP-FPM 运行 PHP 代码

通过Traefik作品生成证书没有任何问题,例如。Traefik Dashboard 和 Portainer 工作没有任何问题。但是,当我通过浏览器访问 Symfony 应用程序时,Symfony 认为它不在 HTTPS 连接上。浏览器中的 url 字段在https://foo.example.tld其中,但 Symfony 控制的内容回退到http,例如。使用绝对路径生成的图像资产或 url。

var_dump($request->getScheme(), $request->getSchemeAndHttpHost()); // 'http' and 'http://example.tld'

我想这是有道理的,因为和之间的连接Traefik正在Nginx使用端口 80。如果我将端口 443 分配给NginxNginx在该端口上侦听而不是端口 80,我会得到相同的结果。

所以问题是,我该如何解决这个问题?我是否必须生成本地 SSL 证书,并Nginx加载并告诉Traefik使用它?还有其他方法吗?我是否需要转发其他任何内容TraefikNginx

对于端口 443 的测试,我在nginx.prod.conf第 2 行更改listen 80 default;listen 443 default;并添加- traefik.port=443docker-compose.yml之后- traefik.frontend.rule=Host:foo.example.tld

0 投票
1 回答
1785 浏览

kubernetes - 带有证书管理器和 Traefik 入口的 404 挑战响应

美好的一天,我是 kubernetes 的新手,并尝试设置我的第一个环境。我想遵循方案:

  • 我的组织有公共 IP (xxxx)
  • 192.168.0.10此 IP使用 win 服务器 + IIS路由到专用 LAN(即)中的服务器。在 IIS 上,我有 URL 重写模块,它充当反向代理
  • 我有 Kubernetes 集群
  • 我有一些服务部署到 k8s
  • 我想使用 SSL 从 Internet 访问此服务,从 let's encrypt 获得

我已经设置了 k8s 集群,部署了 traefik ( v1.7) 入口并配置它们以进行加密(设置http->https重定向,设置 acme 挑战)。这工作正常 - 我可以从 LAN 或 WAN 观察它,并且没有关于证书的警告 - 我看到绿色锁。现在我部署服务(在我的例子中是 graylog)。再次 - 我可以从 LAN 和 WAN 观察它,但在这种情况下,我看到有关证书的警告(它是由 颁发的TRAEFIK_DEFAULT_CERT)。看到这个后,我尝试搜索更多信息,发现我需要 cert-manager。我部署了 cert-manager,创建了让我们加密颁发者(具有 ClusterIssuer 角色),但随后我尝试颁发证书我收到以下错误(在挑战描述中找到):

我的 traefik 配置图:

我也尝试在那里使用通配符:

我的集群发行者:

还有我的测试证书:

我有通配符域的 DNS 条目并且可以 ping 它

我的证书卡在状态OrderCreated

订单卡在状态Created

最后,通过挑战:

我看到有 404 响应,但我不明白它的原因。在我的 IIS 上,我有以下重写规则:让我们加密绕过 - 所有匹配的 url 都.well-known/*重写到 kubernetes 主机。http 到 https - 所有不匹配的 url 让我们加密重定向到 https 子域重定向 - 所有子域请求都重写到 kubernetes。

在我的局域网中,我有自己的 DNS 服务器,所有域my-public-domain.com都有映射到内部地址,所以我可以将公共主机名重定向logger.my-public-domain.com (x.x.x.x)到 internal logger.my-public-domain.com (192.168.0.y)

在挑战活动期间,我在 traefik 仪表板中看到了新的后端和前端。

也许我误解了它应该如何工作,但我希望 cert-manager 使用 let's encrypt 颁发证书,我可以观察我的服务。

0 投票
1 回答
762 浏览

kubernetes - Kubernetes Ingress 描述未显示主机名

我已经使用 EC2(不使用 EKS)在 AWS 中配置了 2 个节点 Kubernetes 集群。我已经使用 Traefik 1.7 版配置了一个 Ingress 控制器。我尝试使用主机在入口控制器中设置规则。但是当我在 Ingress 上进行描述时,我的主机总是设置为通配符。

下面是入口 YAML

这里 www.random.com 是一个垃圾主机名。

下面是描述命令

我可以从 EC2 的外部 IP 访问此应用程序的网页,但 Ingress 控制器没有根据主机进行任何过滤。因此,通过在标题中指定主机来使用 curl 访问此页面无效,即:curl -H "Host: www.random.com" http://<external_ip>。此外,我无法从外部 IP 访问 Traefik GUI。我猜这是因为通配符主机,因为入口控制器路由请求基于主机名。我通过网络搜索,但可以找到任何关于此的内容。将不胜感激任何帮助。

0 投票
1 回答
1468 浏览

lets-encrypt - Traefik 和自定义证书续订

我有一个由letsencrypt生成的特定证书。

在我的 traefik 配置中,我有:

事情是我的证书:

将在 10 天内结束。

我也有通配符的证书:*.company.com

traefik 会自动更新它还是我应该做些什么?

0 投票
1 回答
1083 浏览

kubernetes - Traefik 2.0 IPWhitelist for TCP - Kubernetes CRD

我们正在使用 Kubernetes 和 Traefik 2.0。我们使用 Kubernetes CRD (IngressRoute) 作为 Traefik 的提供者。

从 Traefik Documentaion 看来,中间件似乎不能用于 TCP 路由器。

我们想将IP 白名单中间件 与 TCP 路由器一起使用,但到目前为止它只与 Http 路由器一起使用。

这是我们的 ipWhitelist 定义:

这是 Traefik 服务定义:

IngressRoutes 定义:

有没有办法用 traefik TCP 路由器限制 IP?

有关使用 Kubernetes CRD 的 traefik 的更多资源,您可以访问此处

0 投票
0 回答
151 浏览

kubernetes - 主机名使用 traefik 跨越不同的命名空间?

我有以下情况,并问自己最好的解决方案是什么:

命名空间a使用 Traefik 入口服务“example.com”。

命名空间b应该只使用 Traefik 入口服务“example.com/mypath”。

到目前为止,在命名空间a中配置了一个外部服务,并创建了一个将 /mypath 上的流量代理到命名空间b的路由,但这感觉很hacky。

理想情况下,部署中不存在依赖性。

有没有办法独立部署两个命名空间,例如:只使用前面的 Traefik 入口解决它?

0 投票
2 回答
61 浏览

kubernetes - 使用 Kubernetes / Traefik 为我的本地应用程序提供本地域 rgpd.local

现在,我可以通过以下方式测试我的本地应用程序:http://localhost/rgpd/api/...

这是我的 rgpd-ingress.yaml

我想将其更改为:rgpd.local

所以我把它改成:

但是现在,如果我输入旧网址,我会得到404并且我也无法连接新网址。

这是我的文件:

部署:

和服务:

为什么它不能工作?