问题标签 [ingress-nginx]
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.
amazon-ec2 - EKS ingress-nginx 和 NLB 与 https 重定向
我最近遇到了 nlb 的问题,在 lb 上使用带有 https 终止的 nlb 与重定向 http=>https 和 EKS 上的 ingress-nginx 一起工作是一次冒险。
现在,我想将 X-Forwarded 标头传递给 pod,但这会破坏 http=>https 重定向,我在 http 请求上得到 400。
在服务上,我尝试将服务与 http 或 tcp 协议,同样的事情。
将service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
标头添加到服务中,在所有目标上激活代理协议 v2,并use-proxy-protocol: 'true'
在 nginx 的 configmap 中激活会通过 308 重定向破坏 http-snippet:
有没有人有办法让它可以使用带有所有好的标题和重定向工作的nlb?
编辑评论请求添加完整的工作配置
regex - nginx.ingress.kubernetes.io/rewrite-target 无法正则表达式捕获 url 参数
最近我设置了一个 EKS 集群来通过 ingress-nginx 运行应用程序。我正在尝试使用正则表达式捕获并nginx.ingress.kubernetes.io/rewrite-target
更改我的 url 参数,但它的行为不像我期望的那样。这是我的配置
如果我做:
重写日志显示
这里发生了一些奇怪的事情,因为如果我更改配置path: /(.*)bla1(.*)
并再次执行相同的 curl 请求,则正则表达式匹配并且重定向正确发生(就像这个例子一样愚蠢)。
- 我想知道
?
角色没有正确匹配吗? - 不能使用 url 参数来操作
nginx.ingress.kubernetes.io/rewrite-target
吗? - 也许我错过了什么?
欢迎任何帮助,谢谢。
kubernetes - 裸机 k8s 入口与 nginx-ingress
我无法应用入口配置。
我需要通过它的 DNS 访问 jupyter-lab 服务
它部署到 3 节点裸机 k8s 集群
- node1.local(主)
- node2.local(工人)
- node3.local(工人)
Flannel 安装为网络控制器
我已经为这样的裸机安装了 nginx 入口
kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.44.0/deploy/static/provider/baremetal/deploy.yaml
部署时,jupyter-lab pod 位于 node2 上,并且NodePort服务从http://node2.local:30004正确响应(见下文)
我期待 ingress-nginx 控制器将通过其 DNS 名称公开ClusterIP服务......这就是我所需要的,这是错误的吗?
这是 CIP 服务,用对称端口定义8888
尽可能简单(有错吗?)
DNS 名称
jupyter-lab.local
解析为集群的 IP 地址范围,但超时且无响应。Failed to connect to jupyter-lab.local port 80: No route to host
firewall-cmd --list-all
显示每个节点上都打开了 80 端口
这是 http 进入集群(任何节点)端口 80 的入口定义。(错了吗?)
这是部署
我可以通过其 NodePort http://node2:30004 使用以下定义成功访问 jupyter-lab:
我怎样才能在http://jupyter-lab.local进入我的 jupyter-lab ???
- 命令
kubectl get endpoints -n ingress-nginx ingress-nginx-controller-admission
返回:
ingress-nginx-controller-admission 10.244.2.4:8443 15m
我是否错误配置了端口?
我的“选择器:应用程序名称”定义错误吗?
我错过了一部分吗
我怎样才能调试发生了什么?
其他详情
应用入口时出现此错误
kubectl apply -f default-ingress.yml
此命令
kubectl delete validatingwebhookconfigurations --all-namespaces
删除了验证 webhook ...这样做有错吗?我已经在集群中的每个节点上打开了端口 8443
ubuntu - 无法在 Ubuntu 18.04 上使用 ingress-nginx 进行路由
我试图使用 Kubernetes 在本地设置服务。我正在使用 ingress-nginx 进行路由。我正在使用 Ubuntu 18.04。这是我的 ingress.yaml 文件:
另外,我在我的/etc/hosts/
文件中映射了这个:
当我尝试从浏览器访问“ecommerce.dev”时,我无法访问它,因为它显示“无法访问站点”。有人可以帮我吗?
ingress-nginx - kubernetes ingress-nginx可以添加多少个路径定义?
我正在寻找参考来了解可以添加到 kubernetes ingress-nginx 的路径数量。
路径的数量是否有限制。它如何影响路由性能
kubernetes - k8s nginx ingress TLS rules: cert vs. paths
I am struggling to get my nginx ingress (on AWS EKS) working with path rules and TLS.
The ingress is from here
A snippet from the Ingress looks like:
#xA;This ingress creates the AWS network load balancer, with a URL like
https://xyz.elb.us-west-1.amazonaws.com/
I am updating the
ingress-tls
secret with a certificate using
cert-manager
.
When I access the ingress using the NLB URL
https://xyz.elb.us-west-1.amazonaws.com/api
, I get
- GOOD: Correct routing based on the path rules from the ingress definition (i.e. it goes to my
api-service
as expected) - BAD: Certificate errors since I'm not accessing the ingress with the domain that the certificate is for.
When I access the ingress using the correct domain e.g.
https://example.com/api
which is what I want to do, I get:
- BAD:
404
, it doesn't respect my path rules, and goes toupstream-default-backend
instead. - GOOD: certificate all good, it’s the one for
example.com
thatcert-manager
configured.
I tried removing the
host: example.com
from the
rules:
, which gives me:
- GOOD: Correct routing based on the path rules from the ingress definition
- BAD: Certificate errors, it serves up the default ingress “Fake” certificate instead of the one for
example.com
, I guess since thehost
is missing from the rules, though not sure of the exact reason.
Can someone please help me get
- GOOD
- GOOD
I’m at a loss here.
ssl - 升级到 nginx 3.11.1 时获得“最大重定向”
我有一个在 AWS 中运行的 Kubernetes 集群,我正在升级各种组件。在内部,我们正在使用 NGINX,它目前在v1.1.1
图表中nginx-ingress
(从旧的 stable提供),具有以下配置:
我的服务的入口资源看起来像......
但是,当我升级到图表时,此配置工作得很好v3.11.1
(ingress-nginx
从k8s 博物馆提供)。
使用未修改的配置,卷曲到 HTTPS 方案会重定向回自身:
(我希望我已经捕获了更详细的输出......)
我尝试修改 NGINX 配置以附加以下内容:
接着...
这些似乎没有什么不同。那是在中午,所以在回滚之前我无法潜入太远。
我应该看什么,我应该如何调试它?
更新:
我希望我已经发布了更新配置的完整副本,因为我会注意到我没有正确地将更改应用到 add config.compute-full-forwarded-for: "true"
。它需要在controller
街区内,我把它放在了别处。
添加配置后compute-full-forwarded-for: "true"
,一切都立即开始工作。
nginx - 无法为 Ingress-Nginx Helm Chart 分配全局 LB IP
我正在尝试将 GCP 中的静态全局 LB IP 分配给 GKE 中的入口控制器(Ingress-Nginx),但每当我这样做时,我都会收到一条错误消息
如果我尝试将该 LB IP 值设置为与我的集群位于同一区域的静态区域 IP,则它可以工作。如果我不传入同样有效的 LB IP 值并且分配给我的 IP。
我正在使用命令
helm install ingress-nginx --set controller.service.loadBalancerIP="<IP_ADDRESS>" ingress-nginx/ingress-nginx
是否有set
我未使用的其他标志,或者我的 GKE 集群需要位于多个区域中?
nginx - GKE 上的 Ingress-nginx-controller 在安装 Eclipse che 后返回状态 302 ERR_TOO_MANY_REDIRECTS
在 helm 在生成的 URL 上请求 che-dashboard 时,我收到 302 ERR_TOO_MANY_REDIRECTS。
我已经使用以下链接安装了 Eclipse che:
https://www.eclipse.org/che/docs/che-7/installation-guide/installing-che-on-google-cloud-platform/
这将安装多个服务,如 che-dashboard、keycloak、plugin-registry 等。 在这些唯一的 che 仪表板中返回 302 ERR_TOO_MANY_REDIRECTS,其余 URL 工作正常。
che-dashboard 服务返回 200 Ok 但 ingress-nginx-controller 返回 302 重定向。PFB 日志和 yaml 文件。
che-dashboard 服务日志:
che-dashboard YAML:
ingress-nginx-controller 日志:
入口-nginx-控制器 YAML
如果需要,我可以提供更多详细信息。提前致谢
kubernetes-ingress - 路径中具有命名捕获组的 Ingress-Nginx 正则表达式路由规则
我正在为 nginx 入口控制器创建 Kubernetes 入口资源。我将使用的路径有一个 ID,我需要将其提取到一个变量中,该变量可能位于路径中的不同位置。例如:
如果我在正则表达式中使用未命名的捕获组,那么第一个路径roomid
将是$2
,第二个路径将是$1
. 理想情况下,我可以使用命名捕获组将其分配给我可以轻松使用的特定变量,但是使用命名捕获组创建具有以下路径的 Ingress 会导致错误
是否有支持使用命名捕获组的方法?
当前的配置并没有太多有趣的地方。以下是精简的配置。