kubernetes - 通过 NGINX 入口控制器的 Minio 的 ERR_TOO_MANY_REDIRECTS
问题描述
我有一个在 Kubernetes 集群中运行的Minio ClusterIP 服务。最重要的是,我有一个NGINX Ingress Controller。NGINX Ingress 需要将 Minio 流量转发到 Minio 服务,并将其他流量转发到其对应的服务。
我的 Ingress 配置如下所示:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- http:
paths:
- path: /app/?(.*)
backend:
serviceName: app-service
servicePort: 3000
- path: /minio/?(.*)
backend:
serviceName: minio-service
servicePort: 9000
部署后,该应用程序运行良好。但是,Minio 页面有问题,抱怨:
This page isn’t working
example.mysite.com redirected you too many times.
Try clearing your cookies.
ERR_TOO_MANY_REDIRECTS
事实上,请求一直在重定向。这是来自 Chrome DevTools 的网络控制台的屏幕截图。
有任何想法吗?
解决方案
由于 Minio 总是重定向到 /minio/,因此您需要保留/minio
路径并将其传递给 Minio 服务。
当我将其路径规则更改为 时- path: /(minio/.*)
,它可以工作。现在 Ingress 配置如下所示:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-service
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$1
spec:
rules:
- http:
paths:
- path: /app/?(.*)
backend:
serviceName: app-service
servicePort: 3000
- path: /(minio/.*)
backend:
serviceName: minio-service
servicePort: 9000
我让 Minio 服务在浏览器中运行:
希望它是有帮助的。
推荐阅读
- jquery - 当用户单击单选按钮时,隐藏所有其他选项并使标签放大和动画?
- xml - 来自示例 XML 的 XSD
- quanteda - dfm(Quanteda)中“remove_twitter”的新方法是什么?
- javascript - 未捕获的 TypeError:无法将 undefined 或 null 转换为对象 React JS
- ios - 可扩展的 UICollectionView 单元格
- mongodb - SORT 在聚合函数中不起作用
- lua - 为什么我的 RemoteFunction 没有在 PlayerAdded 事件中触发
- github - 在 github 的 README.adoc 中使用“外部”属性
- javascript - Javascript Switch案例不断返回NaN值
- tensorflow - 在神经网络中,为什么隐藏层节点的数量经常是 2^n?