问题标签 [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.

0 投票
2 回答
966 浏览

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?

编辑评论请求添加完整的工作配置

0 投票
0 回答
351 浏览

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吗?
  • 也许我错过了什么?

欢迎任何帮助,谢谢。

0 投票
1 回答
2505 浏览

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

0 投票
2 回答
196 浏览

ubuntu - 无法在 Ubuntu 18.04 上使用 ingress-nginx 进行路由

我试图使用 Kubernetes 在本地设置服务。我正在使用 ingress-nginx 进行路由。我正在使用 Ubuntu 18.04。这是我的 ingress.yaml 文件:

另外,我在我的/etc/hosts/文件中映射了这个:

当我尝试从浏览器访问“ecommerce.dev”时,我无法访问它,因为它显示“无法访问站点”。有人可以帮我吗?

0 投票
0 回答
26 浏览

ingress-nginx - kubernetes ingress-nginx可以添加多少个路径定义?

我正在寻找参考来了解可以添加到 kubernetes ingress-nginx 的路径数量。

路径的数量是否有限制。它如何影响路由性能

0 投票
1 回答
52 浏览

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

  1. GOOD: Correct routing based on the path rules from the ingress definition (i.e. it ​goes to my api-service as expected)
  2. 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:

  1. BAD: 404, it doesn't respect my path rules, and goes to upstream-default-backend instead.
  2. GOOD: certificate all good, it’s the one for example.com that cert-manager configured.

I tried removing the host: example.com from the rules:, which gives me:

  1. GOOD: Correct routing based on the path rules from the ingress definition
  2. BAD: Certificate errors, it serves up the default ingress “Fake” certificate instead of the one for example.com, I guess since the host is missing from the rules, though not sure of the exact reason.

Can someone please help me get

  1. GOOD
  2. GOOD

I’m at a loss here.

0 投票
1 回答
49 浏览

ssl - 升级到 nginx 3.11.1 时获得“最大重定向”

我有一个在 AWS 中运行的 Kubernetes 集群,我正在升级各种组件。在内部,我们正在使用 NGINX,它目前在v1.1.1图表中nginx-ingress(从旧的 stable提供),具有以下配置:

我的服务的入口资源看起来像......

但是,当我升级到图表时,此配置工作得很好v3.11.1ingress-nginxk8s 博物馆提供)。

使用未修改的配置,卷曲到 HTTPS 方案会重定向回自身:

(我希望我已经捕获了更详细的输出......)

我尝试修改 NGINX 配置以附加以下内容:

接着...

这些似乎没有什么不同。那是在中午,所以在回滚之前我无法潜入太远。

我应该看什么,我应该如何调试它?

更新:

我希望我已经发布了更新配置的完整副本,因为我会注意到我没有正确地将更改应用到 add config.compute-full-forwarded-for: "true"。它需要在controller街区内,我把它放在了别处。

添加配置后compute-full-forwarded-for: "true",一切都立即开始工作。

0 投票
1 回答
76 浏览

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 集群需要位于多个区域中?

0 投票
1 回答
240 浏览

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

如果需要,我可以提供更多详细信息。提前致谢

0 投票
0 回答
148 浏览

kubernetes-ingress - 路径中具有命名捕获组的 Ingress-Nginx 正则表达式路由规则

我正在为 nginx 入口控制器创建 Kubernetes 入口资源。我将使用的路径有一个 ID,我需要将其提取到一个变量中,该变量可能位于路径中的不同位置。例如:

如果我在正则表达式中使用未命名的捕获组,那么第一个路径roomid将是$2,第二个路径将是$1. 理想情况下,我可以使用命名捕获组将其分配给我可以轻松使用的特定变量,但是使用命名捕获组创建具有以下路径的 Ingress 会导致错误

是否有支持使用命名捕获组的方法?

当前的配置并没有太多有趣的地方。以下是精简的配置。