问题标签 [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 回答
312 浏览

nginx - Traefik 实例负载均衡到 Kubernetes NodePort 服务

介绍:

在 AWS 上,负载均衡器很昂贵(每月 20 美元 + 使用),所以我正在寻找一种方法来实现 k8s 节点之间的灵活负载均衡,而无需支付这笔费用。负载并没有那么大,所以我很快就不需要 AWS 负载均衡器的可扩展性。我只需要服务即可。我可以以每月 3.5 美元的价格获得一个可以轻松处理当前流量的小型 EC2 实例,所以我现在正在寻找这个选项。

当前设置

目前,我已经设置了一个常规的独立 Nginx 实例(在 k8s 之外),它在集群中的节点之间进行负载平衡,所有服务都设置为通过 NodePorts 公开。这非常有效,但是每当我的集群拓扑在重启、添加、重启或删除节点期间发生变化时,我必须手动更新 Nginx 实例上的上游配置,这远非最佳,因为不能期望集群节点留在周围永远。

所以问题是:

是否可以在 Kubernetes 之外设置 Trækfik 以在 Kubernetes 节点之间进行简单的负载平衡,就像我的 Nginx 设置一样,但保持 traefik 配置的上游/后端服务器与 Kubernetes 节点列表同步,这样我的 Kubernetes 服务是当我更改节点设置时仍然 HA?我真正需要的只是让 Træfik 监听 Kubernetes API 并在集群发生变化时更改后端服务器。

听起来很简单,对吧?;-)

在查看 Træfik 文档时,它似乎想要一个入口资源将其流量发送到,而一个入口资源需要一个入口控制器,我猜这需要一个负载均衡器才能访问?这不会破坏目的,还是我缺少什么?

0 投票
1 回答
356 浏览

ssl - 使用 Traefik Ingress Controller 允许单个入口运行 HTTP 而无需强制 SSL

我通过1.5.4 版的helm 图表将 Traefik 设置为我的 Ingress 控制器。我启用了 LetsEncrypt 并将 SSL 设置为 Enforced,因此我所有公开的服务都根据需要强制使用 SSL。

我最近遇到了一种情况,我不需要单个入口上强制 SSL。我已经尝试了我能找到的所有注释,但我能做到的最多的是重定向循环(http -> https -> http),这让我相信 SSL 仍然被强制执行。

有没有人设法通过注释让它运行?是1.5的注释谢谢!

我当前部署的 Ingress:

0 投票
1 回答
869 浏览

kubernetes - Kubernetes 上的 Traefik 不会通过重定向保留路径

我在 Kubernetes 上有一个 Traefik,它充当入口和负载均衡器。我有这样的入口设置:

例如,当我点击“ http://IP/config-server ”时,因为我对该服务有基本身份验证,该服务会通过“ http://IP/login ”进行重定向,所以我得到一个 404 但我期待“ http://IP/config-server/login ”。我的配置有什么问题?我还在规则类型下尝试了“PathPrefix”和“Path”,但它不起作用。当我的服务执行重定向时,我需要保留我的基本路径。

0 投票
1 回答
1045 浏览

traefik - 公开在本地 kubernetes 集群中运行的 traefik 的正确方法?

我有一个本地 Kubernetes 集群。根据 traefik 给出的示例,我在集群中运行了 traefik。它绑定到一个节点,这将是我的负载均衡器。我可以通过使用路由点击节点端口来访问正在运行的服务(通过入口)。例如http://build.mydomain.com:NODEPORT会将我路由到我的 Jenkins。

但我希望能够通过简单地输入http://build.mydomain.com来访问我的 Jenkins

这是可能的还是我必须在集群运行 traefik ?

基本上我只希望负载均衡器上的所有内容都达到 80 以访问 traefik 入口控制器,该控制器应该根据入口来路由请求。

0 投票
0 回答
437 浏览

kubernetes - 如何需要为 traefik 注释入口以生成letsencrypt证书

我正在使用 traefik 作为入口控制器,并希望通过自动生成的 letencrypt 证书为其他入口提供服务并强制执行 SSL。

我用它的官方舵图设置了 traefik,如下所示:

helm install stable/traefik --name traefik --set dashboard.enabled=true,dashboard.domain=traefik.mycompany.com,rbac.enabled=true,externalIP=123.456.789.123,ssl.enabled=true,ssl.enforced= true,ssl.permanentRedirect=true,acme.enabled=true,acme.staging=false,acme.challengeType=http-01

我需要如何注释我需要公开的应用程序的入口以使用自动生成的letsencrypt证书?

通过此设置,traefik.mycompany.com 通过 SSL 交付,并带有默认主机的通配符证书*.example.com

在此处输入图像描述

我浏览了整个 traefik 文档(https://docs.traefik.io/),但只能找出我需要如何设置入口。

0 投票
1 回答
668 浏览

https - 让 HTTPS 与 Traefik 和 GCE Ingress 一起工作

我追求一个非常简单的要求——但在外部负载均衡器后面时,似乎不可能让 Traefik 将流量从 HTTP 重定向到 HTTPS。

这是我的 GCE 入口

它接收来自 HTTP(S) 的流量,然后转发到 Traefik 到端口 80。

我最初尝试使用 Traefik 重定向与此配置匹配模式的方式:

但显然会进入无限重定向循环,因为负载均衡器总是将流量代理到 Traefik 端口 80。

完成这项工作的简单解决方案正是 GCE 建议的 https://github.com/kubernetes/ingress-gce#ingress-cannot-redirect-http-to-https

能够检查http_x_forwarded_proto标题并基于此重定向。

Nginx 等效

有人可以建议用 Traefik 处理这个问题的最佳方法是什么,拜托!

0 投票
1 回答
1530 浏览

kubernetes - 如何将服务和 traefik 入口添加到 EKS 集群?

笔记

我正在尝试将演示服务的服务和入口(从“Kubernetes in Action”)部署到traefik已安装 Helm 的 AWS EKS 集群。

traefik.example.com在手动将 AWS ELB 的 IP 地址添加traefik到本地/etc/hosts文件中的该主机名后,我可以从主机名访问 traefik 仪表板。

如果我描述的服务和入口traefik-dashboard

服务和入口控制器似乎正在使用命名空间中正在运行的traefik-575cc584fb-v4mfnpod kube-system

鉴于此信息并查看 traefik 文档,我尝试使用以下 YAML 通过其入口公开演示服务:

应用此功能后,在手动将 AWS ELB 的 IP 地址添加到本地文件中的该主机名后,我无法kubia从该主机名访问该服务。相反,我得到了回应。描述创建的资源会显示一些不同的信息。kubia.inttraefik/etc/hostsService Unavailable

我还注意到演示kubia服务没有端点,并且相应的入口显示没有可用的后端。

我注意到的另一件事是演示kubia服务和入口在default命名空间中,而traefik-dashboard服务和入口在kube-system命名空间中。

有什么东西会跳出来吗?关于诊断它的最佳方法的任何建议?

提前谢谢了!

0 投票
0 回答
795 浏览

kubernetes - Traefik:仅为特定文件添加自定义标题

更新: ATM 这不可能通过 traefik。我有一个问题:https ://github.com/containous/traefik/issues/4228

我想将cache-control标题添加到具有Content/Type application/json和的文件中image/png

ATM 前进的方式是使用自定义响应标头。

下面是路径配置:

我只希望在请求 .js 或 .png 等静态文件时应用自定义标头。

关于如何前进的任何指示?这可以通过 traefik 实现吗?

0 投票
2 回答
2831 浏览

kubernetes - 通过 helm 在 Digitalocean 单节点集群上安装 Traefik 仪表板/Web UI 404

我正在尝试将 Traefik 设置为单节点集群(Digital Ocean)上的入口控制器和负载均衡器。按照官方的 Traefik 设置指南,我使用 helm 安装了 Traefik:

然后我创建了暴露 Web UI 的服务 kubectl apply -f https://raw.githubusercontent.com/containous/traefik/master/examples/k8s/ui.yaml

然后我可以清楚地看到我的 traefik pod 正在运行并分配了一个外部 IP:

然后打开http://external-ip/dashboard/导致找不到 404 页面

我阅读了大量的答案和教程,但总是遗漏一些东西。非常感谢任何帮助。

0 投票
1 回答
1117 浏览

kubernetes - 使用 Kubernetes 为 Vagrant 下的主机公开 Traefik Web UI

我尝试安装 Traefik Web UI,但在 Vagrant 下,没有 Minikube。这是一个多节点设置。在主机上,我尝试在localhost:8081(Vagrantfile 中暴露给主机的访客 8080 端口)和https://localhost:6443/api/v1/namespaces/kube-system/services/https:traefik-web-ui:/proxy/没有运气的情况下访问 UI。你能推荐一个工作环境吗?在最后一个 URL 上,我收到此错误:

通过 SSH 连接到主机,Web UI 正在工作:

当前ui.yml

安装:

我如何才能访问主机上的 Web UI,最好仅通过安装的证书使其可用于主机浏览器?

我同样使用 Kubernetes 仪表板,证书安装在主机浏览器上。