问题标签 [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.
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 版本来限制那些(甚至可能是所有入口)?
提前致谢!
spring-boot - '无法推断基本 url' Swagger-ui:Kubernetes 使用 Traefik 入口控制器
当我在 kubernetes 环境中部署后尝试访问我的 swagger url 时,我遇到了这个错误消息。
当我在 localhost 上运行我的 Spring Boot 应用程序时,我能够看到招摇而没有任何错误。
我使用 Traefik 作为我的入口控制器。
traefik - Traefik V2 获取通配符证书
遵循本教程后,我运行了基本设置
但是努力从 Let's Encrypt 获得域的通配符证书。
traefik 配置:
和路由配置:
我能够获得证书,traefik.domain.ca
但需要获得整个域 ( *.domain.ca
) 的通配符证书。我找不到任何直接参考配置。
我在这里想念什么?
symfony - Symfony 应用程序没有在 Traefik 和 Nginx 代理后面获得 HTTPS 流量
我目前尝试在 Docker 设置中部署 Symfony 应用程序。当前设置是:
[ Traefik ] -> [ Nginx ] -> [ PHP-FPM ]
- Traefik 是入口点,处理 SSL 证书(使用
dnsChallenge
选项)。 - Nginx 处理静态文件(资产和那些东西)的服务,有一个
traefik.frontend.rule
aslabel
来分配域 - 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 分配给Nginx
并Nginx
在该端口上侦听而不是端口 80,我会得到相同的结果。
所以问题是,我该如何解决这个问题?我是否必须生成本地 SSL 证书,并Nginx
加载并告诉Traefik
使用它?还有其他方法吗?我是否需要转发其他任何内容Traefik
或Nginx
对于端口 443 的测试,我在nginx.prod.conf
第 2 行更改listen 80 default;
为listen 443 default;
并添加- traefik.port=443
到docker-compose.yml
之后- traefik.frontend.rule=Host:foo.example.tld
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 颁发证书,我可以观察我的服务。
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。我猜这是因为通配符主机,因为入口控制器路由请求基于主机名。我通过网络搜索,但可以找到任何关于此的内容。将不胜感激任何帮助。
lets-encrypt - Traefik 和自定义证书续订
我有一个由letsencrypt生成的特定证书。
在我的 traefik 配置中,我有:
事情是我的证书:
将在 10 天内结束。
我也有通配符的证书:*.company.com
traefik 会自动更新它还是我应该做些什么?
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 的更多资源,您可以访问此处
kubernetes - 主机名使用 traefik 跨越不同的命名空间?
我有以下情况,并问自己最好的解决方案是什么:
命名空间a使用 Traefik 入口服务“example.com”。
命名空间b应该只使用 Traefik 入口服务“example.com/mypath”。
到目前为止,在命名空间a中配置了一个外部服务,并创建了一个将 /mypath 上的流量代理到命名空间b的路由,但这感觉很hacky。
理想情况下,部署中不存在依赖性。
有没有办法独立部署两个命名空间,例如:只使用前面的 Traefik 入口解决它?
kubernetes - 使用 Kubernetes / Traefik 为我的本地应用程序提供本地域 rgpd.local
现在,我可以通过以下方式测试我的本地应用程序:http://localhost/rgpd/api/...
这是我的 rgpd-ingress.yaml
我想将其更改为:rgpd.local
所以我把它改成:
但是现在,如果我输入旧网址,我会得到404
并且我也无法连接新网址。
这是我的文件:
部署:
和服务:
为什么它不能工作?