问题标签 [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.
kubernetes - 使用多个入口控制器 - 是否可以有一个“默认”控制器?
在我的集群上,我traefik
用作入口控制器,但现在还想提供一个nginx
控制器。
我不希望我的开发人员考虑他们的应用程序究竟是如何公开的。因此,我想让 traefik 成为“默认”控制器,并且仅在开发人员通过设置正确的ingress.class
.
不幸的是,看起来没有设置类会导致两个控制器都在争夺那个入口。:( 有没有办法告诉控制器只处理入口对象,如果有正确的ingress.class
?
如果这是不可能的,我正在考虑编写一个 MutatingAdmissionWebhook 它将插入 traefik 类,以防没有设置类。- 这有意义吗,还是有更好的方法?
kubernetes - 具有持久卷的 Traefik HA
目前有什么方法可以利用 kubernetes 持久卷而不是 KV 存储来存储 Let's encrypt 证书?
从文档中可以看出,在 json 文件中存储 let's encrypt 信息不能用于跨 traefik pod 共享信息。但我想知道其他解决方案,也许是共享卷上的 boltdb?
docker - Traefik v2 [如何路由到特定端口]
我正在尝试开始更改后端以与 traefik v2.0 兼容。
我为完成一项简单的任务而头疼。旧的配置是:
我认为,网络不再需要,它会改变新的 traefik:
但是我如何设置,这应该转发到我的后端端口 8500?而不是在 Traefik 到达入口点的 80?
编辑
我的目标是尝试完成这样的事情: https ://docs.traefik.io/user-guide/cluster-docker-consul/#migrate-configuration-to-consul
还有可能吗?我看到了,在 v2.0 中没有 --consul 或 storeconfig 命令
感谢您的问候,
kubernetes - Traefik Ingress Kubernetes - 条件 CORS 访问控制允许来源
我有两个访问同一个 API 网关的前端应用程序:
example.com
和
admin.example.com
我使用 Traefik 作为我的入口控制器。我目前在我的 k8s 入口配置中有以下注释:
ingress.kubernetes.io/custom-response-headers: Access-Control-Allow-Origin:https://example.com || Access-Control-Allow-Methods:POST, GET, HEAD, OPTIONS, PUT, DELETE
我也想https://admin.example.com
在同一块内处理。有没有一种方法可以根据流量来源的原始 URL 在此处设置条件表达式?Access-Control-Allow-Origin: *
我的用例不可接受(浏览器抱怨)。
kubernetes - 如何在同一 traefik 入口中匹配确切路径和路径前缀
我有一项服务需要接收任何请求
/
(完全符合)/aaa
(路径前缀)
其他路径将被发送到不同的服务。
使用traefik.frontend.rule.type: PathPrefix
仅适用于第二条规则和traefik.frontend.rule.type: Path
第一个规则。
实现这一目标的推荐方法是什么?两个不同的入口?
kubernetes - HTTPS 请求重定向到 HTTP
我在 traefik 入口后面运行 Gunicorn。HTTP 被 traefik 重定向到 HTTPS,但由于某种原因,gunicorn 回复了一个指向 HTTP 的 301。我已经尝试了几乎所有我知道的选项,但没有找到任何解决方案。我认为它可能与https://stackoverflow.com/a/41488430/3719845之类的东西有关。
以下是我在入口处使用的注释:
我不确定x-forwarded
标题是由 traefik 自动设置的,所以我对它们进行了硬编码。
在 gunicorn 方面,我使用:
同样的事情我一直在玩这些选项,但似乎没有任何改变。
tls1.2 - Traefik 没有找到 TLS 秘密
site.dev
我有一个带有 CN=site.dev 和 ext3 DNS 域的自签名证书,包括site.dev
,作为default
ns 中 k8s 中的秘密,带有type: kubernetes.io/tls
和 密钥:tls.crt
和tls.key
. 由于它是自签名的,它不包含中间证书(它不能)。
Traefik 使用 args 运行:
当入口开始时,Traefik 会记录:
{"level":"error","msg":"Error configuring TLS for ingress default/site-dev: secret default/site-dev-tls does not exist","time":"2019-04-20T21:09:02Z"}
入口有
这是 curl 的输出:
我不确定我做错了什么......任何帮助表示赞赏。
kubernetes - Traefik Ingress 不适用于我的 /etc/hosts 中的 dns
我使用 DaemonSet 通过 traefik 文档创建控制器入口
https://docs.traefik.io/user-guide/kubernetes/
当我尝试在浏览器中访问http://traefik-ui.minikube/
kubernetes - Traefik 2.0: How to assign global static IP with IngressRoute (CRD)?
Following the tutorial for Kubernetes (in my case on GKE) https://docs.traefik.io/v2.0/user-guides/crd-acme/ I am stuck on how to assign the global static IP (GKE wants a forwarding rule). Am I missing something (e.g. adding another ingress)? I understand that annotations are not possible in the IngressRoute. So how would I assign the global reserved IP?
The answer to question 3 on this Q&A online meetup (https://gist.github.com/dduportal/13874113cf5fa1d0901655e3367c31e5) mentions that "classic ingress" is also possible with version 2.x. Does this mean I can set up traefik as in 1.x (like this: https://docs.traefik.io/user-guide/kubernetes/) use 2.x configuration and no need for CRD?
kubernetes - Traefik Ingress 未打开端口
我正在为我们销售的应用程序设置开发环境。
由于我们使用此环境进行主动开发,因此有必要或多或少地像客户给定的环境一样构建它。客户使用 Kubernetes 和 traefik。所以我们也在开发中这样做。
幸运的是,我们获得了用于客户环境的原始 YAML 文件,因此我们只需稍加修改即可使用它们。
在我们设置好 Ingress 和 Traefik Ingress Controller 之后,我假设 kubernetes 将打开系统上的给定端口,因此可以从外部访问应用程序。但事实并非如此,端口 443 和 80 上没有任何监听。
我仔细检查了配置(因为我们可以访问客户集群,所以我可以比较他们的环境和我们的环境)——但一切看起来都完全一样,尽管有 IP 地址和命名空间的名称。
在 traefik 控制器 pod 的日志中,我在这里看不到任何问题。只有我看到一些 TLS 证书错误。有时在我的测试中,我在打开端口 80 时看到“绑定”权限被拒绝,但目前没有。
我(和客户)将 traefik toml 文件定义为配置映射,并将其作为卷添加到 /opt/conf/traefik.toml 到 pod。该路径作为参数提供给 pod,根据日志,它使用该文件。
运行 kubernetes 的服务器是 Windows Server 2016 主机上的 Ubuntu Server 18.04 Hyper-V 机器。Kubernetes 是使用 apt-get(不是 snap)部署的,集群是使用 kubeadm 设置的。
这是集群配置:
这是节点配置:
部署有 4 个 Pod,它们都在正常运行(另外,我可以直接从 Pod 本地卷曲网站)。
我在这里放置了一些重要的 yaml 文件:https ://gitlab.com/group15/my-awesome-project
告诉我您是否需要更多(服务帐户、角色(绑定)等...)
主要目标是一个正在运行的开发环境,它可以通过 192.168.6.0 网络中的 HTTP(s) 访问。我还没有让它运行。请帮助我,我做错了什么吗?