问题标签 [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.
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 文档时,它似乎想要一个入口资源将其流量发送到,而一个入口资源需要一个入口控制器,我猜这需要一个负载均衡器才能访问?这不会破坏目的,还是我缺少什么?
ssl - 使用 Traefik Ingress Controller 允许单个入口运行 HTTP 而无需强制 SSL
我通过1.5.4 版的helm 图表将 Traefik 设置为我的 Ingress 控制器。我启用了 LetsEncrypt 并将 SSL 设置为 Enforced,因此我所有公开的服务都根据需要强制使用 SSL。
我最近遇到了一种情况,我不需要在单个入口上强制 SSL。我已经尝试了我能找到的所有注释,但我能做到的最多的是重定向循环(http -> https -> http),这让我相信 SSL 仍然被强制执行。
有没有人设法通过注释让它运行?这是1.5的注释谢谢!
我当前部署的 Ingress:
kubernetes - Kubernetes 上的 Traefik 不会通过重定向保留路径
我在 Kubernetes 上有一个 Traefik,它充当入口和负载均衡器。我有这样的入口设置:
例如,当我点击“ http://IP/config-server ”时,因为我对该服务有基本身份验证,该服务会通过“ http://IP/login ”进行重定向,所以我得到一个 404 但我期待“ http://IP/config-server/login ”。我的配置有什么问题?我还在规则类型下尝试了“PathPrefix”和“Path”,但它不起作用。当我的服务执行重定向时,我需要保留我的基本路径。
traefik - 公开在本地 kubernetes 集群中运行的 traefik 的正确方法?
我有一个本地 Kubernetes 集群。根据 traefik 给出的示例,我在集群中运行了 traefik。它绑定到一个节点,这将是我的负载均衡器。我可以通过使用路由点击节点端口来访问正在运行的服务(通过入口)。例如http://build.mydomain.com:NODEPORT会将我路由到我的 Jenkins。
但我希望能够通过简单地输入http://build.mydomain.com来访问我的 Jenkins
这是可能的还是我必须在集群外运行 traefik ?
基本上我只希望负载均衡器上的所有内容都达到 80 以访问 traefik 入口控制器,该控制器应该根据入口来路由请求。
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/),但只能找出我需要如何设置入口。
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 处理这个问题的最佳方法是什么,拜托!
kubernetes - 如何将服务和 traefik 入口添加到 EKS 集群?
笔记
我正在尝试将演示服务的服务和入口(从“Kubernetes in Action”)部署到traefik
已安装 Helm 的 AWS EKS 集群。
traefik.example.com
在手动将 AWS ELB 的 IP 地址添加traefik
到本地/etc/hosts
文件中的该主机名后,我可以从主机名访问 traefik 仪表板。
如果我描述的服务和入口traefik-dashboard
:
服务和入口控制器似乎正在使用命名空间中正在运行的traefik-575cc584fb-v4mfn
pod kube-system
。
鉴于此信息并查看 traefik 文档,我尝试使用以下 YAML 通过其入口公开演示服务:
应用此功能后,在手动将 AWS ELB 的 IP 地址添加到本地文件中的该主机名后,我无法kubia
从该主机名访问该服务。相反,我得到了回应。描述创建的资源会显示一些不同的信息。kubia.int
traefik
/etc/hosts
Service Unavailable
我还注意到演示kubia
服务没有端点,并且相应的入口显示没有可用的后端。
我注意到的另一件事是演示kubia
服务和入口在default
命名空间中,而traefik-dashboard
服务和入口在kube-system
命名空间中。
有什么东西会跳出来吗?关于诊断它的最佳方法的任何建议?
提前谢谢了!
kubernetes - Traefik:仅为特定文件添加自定义标题
更新: ATM 这不可能通过 traefik。我有一个问题:https ://github.com/containous/traefik/issues/4228
我想将cache-control
标题添加到具有Content/Type
application/json
和的文件中image/png
。
ATM 前进的方式是使用自定义响应标头。
下面是路径配置:
我只希望在请求 .js 或 .png 等静态文件时应用自定义标头。
关于如何前进的任何指示?这可以通过 traefik 实现吗?
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 页面
我阅读了大量的答案和教程,但总是遗漏一些东西。非常感谢任何帮助。
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 仪表板,证书安装在主机浏览器上。