我有一个Minio ClusterIP服务正在Kubernetes集群中运行。最重要的是,我有一个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的网络控制台中的屏幕截图。
有什么想法吗?
答案 0 :(得分:1)
好的,我发现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服务:
希望这会有所帮助。