问题标签 [nginx-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 投票
2 回答
2016 浏览

nginx - Nginx 入口资源 - 从 www 重定向(SSL 不起作用)

用例

我使用这个舵图在我的 Kubernetes 集群中部署了 nginx 入口控制器:

https://github.com/helm/charts/tree/master/stable/nginx-ingress

我为我的前端服务网络服务器创建了一个入口资源,它应该从非 www 重定向到 www 版本。我也在使用 SSL。

问题

当我访问我网站的 www 版本时,一切都很好,nginx 使用我的 Lets Encrypt SSL 证书(在正确的命名空间中作为秘密存在)为页面提供服务。但是,当我访问该网站的非 www 版本时,我在浏览器 (NET::ERR_CERT_AUTHORITY_INVALID) 中看到失败的 SSL 证书页面,并且可以看到该页面是使用 Kubernetes 入口假证书提供的。我认为这也是重定向到 www 版本根本不起作用的原因。

这是我的入口资源(实际主机名已被编辑):

问题

为什么 nginx 不在非 www 版本上使用提供的证书?

0 投票
2 回答
649 浏览

kubernetes - 尽管 externalTrafficPolicy 设置为 Local,但 Kubernetes 提供了一个内部源 IP

我们的 Kubernetes 集群包括一个 nginx 负载均衡器,它将请求转发到其他 pod。

但是,nginx 看到本地源 IP,因此无法设置正确的 X-Real-IP 标头。我尝试将 nginx 的 externalTrafficPolicy 值设置为“Local”,但 IP 没有改变。

nginx服务配置部分:

结果:

我们使用带有 metallb 的裸机集群。

0 投票
1 回答
710 浏览

kubernetes - 以后的入口子路径可以覆盖早期的入口父路径吗?

我有一个 Kubernetes 入口,我想成为一组主机上所有路径的默认值,前提是没有更具体的匹配:

第二个入口为特定路径定义了一个自定义服务:

我希望添加/删除入口的顺序无关紧要,或者至少我可以有某种方式表明path: /indefault-ing总是最后排序。

当我尝试上述方法时,只要我special-ing之前添加路由就可以了default-ing(或者,添加default-ing,然后是special-ing,然后删除default-ing并重新添加它)。当我将它们添加为时default-ingspecial-ing请求/special are路由到my-default-service而不是special-service.

我希望添加/删除的顺序独立于 nginx-ingress-controller 生成的路由,以便我的 kubectl 操作更加健壮,并且如果重新创建其中一个入口,则不会中断。

我在用着nginx-ingress-controller:0.19.0

谢谢你尽你所能的帮助!

0 投票
2 回答
26720 浏览

nginx - Nginx 入口控制器 websocket 支持

最近我一直在使用 Kubernetes 开发一个玩具应用程序。该应用程序的一部分是需要支持 WebSockets 的 Web 服务器。目前,我正在使用端口转发来访问 Web 服务器,一切正常。

我想改用 Ingress 和 IngressController 来避免使用端口转发。

这是我的Ingress配置:

现在通过$(minikube ip)/app工作正常访问应用程序,但 WebSocket 请求都失败,因为 nginx 返回 200 而不是 101。

我试过添加nginx.org/websocket-services注释,但这似乎也不起作用。

有没有人遇到过类似的情况?

干杯

0 投票
2 回答
568 浏览

docker - 在我的 Kubernetes 基础架构中的 Ingress 之前是否需要有负载均衡器

我正在尝试在我的每个部署上实现 ClusterIP-Service。仅供参考,我正在办公室自己的服务器上设置 kubernetes(由于某种原因不使用云)。以前这里是我能想到的网络/基础设施:

我不确定为什么我的 Ingress 不能按预期工作。我使用https://github.com/kubernetes/ingress-nginx作为我的入口控制器。我还应用了来自https://kubernetes.github.io/ingress-nginx/deploy/的裸机服务配置

下面是我的简单 Ingress 和 ClusterIP,例如:

我尝试访问http://<server-internal-ip>:80,但连接被拒绝,而不是被路由到特定服务内的我的应用程序。我上面做的任何事情都可能出错吗?

我需要LoadBalancer像下面这样在 Ingress 之前拥有吗?(哪一个是理想的)

或者可能

提前致谢。

0 投票
3 回答
5513 浏览

kubernetes - Kubernetes入口nginx不匹配子路径

我正在尝试在谷歌云上制作一个简单的 ingress-nginx 示例,但它与子路径不匹配:

当我打电话时,http://server/one有效,但是当我调用 http://server/one/path时,我得到一个 404。我尝试了几件事,比如使用正则表达式,但根本不起作用

后端只是总是在任何路径上回复的回显服务器。

0 投票
1 回答
4374 浏览

nginx - K8s Helm - Jenkins 与 Nginx Ingress

我正在尝试通过 Helm 部署以 nginx-ingress 为前端的 Jenkins。目标是在 nginx 上通过 SSL 终止来保护 Jenkins 的安全。我目前正在使用自签名证书,但最终将使用 cert-manager 和 LetsEncrypt。Jenkins 和 Nginx-Ingress 部署在默认命名空间中。

下面是我的部署脚本:

下面是我的 values.yaml 文件:

部署(默认命名空间)

服务(默认命名空间)

入口(默认命名空间)

入口 .yaml(由 helm 生成)

当点击入口 IP ( https://104.198.179.176 ) 时,我点击了默认的 nginx 后端服务,出现“默认后端 - 404”错误。我怀疑入口配置可能有问题。根据入口设置,入口 IP (35.193.17.244) 不正确,而 nginx-ingress-controller IP 为 104.198.179.176。

0 投票
1 回答
1114 浏览

kubernetes - kubernetes (GKE) 上的 keycloak 部署:入口类 -- nginx VS gce

我正在尝试在 google kubernetes 引擎上部署 keycloak 并使用 ingress.class 类型的nginx使其工作,如下所示

kubernetes.io/ingress.class:nginx

完整清单可以在这里找到 https://github.com/vsomasvr/keycloak-gke/blob/master/keycloak-gke-ingress/ingress.yaml

但是,我的意图是使用 ingress.class 类型“gce 。为此,我从以下更改了入口注释

到以下

在上述更改之后,我一直收到一条消息,指出入口的后端不健康(0/3)。我想知道当“ nginx ”可以毫无问题地运行时“ gce ”需要哪些其他更改。

我确保它不是防火墙问题,因为所有应用程序使用的端口都允许使用,我还设置了livenessProbereadinessProbe设置。

这个配置还有什么遗漏的吗?

我将所有清单文件放在这里 https://github.com/vsomasvr/keycloak-gke/tree/master/keycloak-gke-ingress

任何帮助表示赞赏

编辑

我已经添加了注释

nginx入口,经过测试并确保它不会引起任何冲突。该应用程序运行没有问题。

另一方面,即使我删除了上述注释, gce入口也具有相同的行为

0 投票
1 回答
4643 浏览

ssl - nginx ssl3_get_record 版本号错误 502 Bad Gateway

我正在我的 K8S 集群上部署一个 Ingress。我所有的配置看起来都不错。

我的入口是这样定义的:

部署的 Ingress 如下所示:

因为我在 GCP 中部署它,所以我也有一个 LB。

如您所见,入口应该将流量路由到jenkins-master端口8090

此服务存在于同一命名空间中。

如果我这样做,从集群内部curl http://100.71.2.206:8090,我可以成功地看到我的应用程序的主页,这意味着设置是好的。

现在,当我尝试从浏览器访问 Ingress 时,我看到的就是这些。

在此处输入图像描述

当我查看 Ingress 控制器 pod 的日志时,它们有以下错误:

不确定这个错误是什么。有任何想法吗 ?我使用了错误的注释吗?

0 投票
0 回答
115 浏览

jenkins - 如何在私有云上访问 Kubernetes 上的 Jenkins Dashboard?

詹金斯服务文件

背景: 我想访问 Kubernetes 上的仪表板,该服务在 Kubernetes 集群上运行,我找不到更多关于如何访问 jenkins 仪表板的文档。- 我需要在服务文件中进行更多配置吗?- 有没有其他选择或方法可以做到这一点?