我已经设置了基于名称的入口控制器,但除/
以外,它似乎不起作用。
因此http://metabase.domain.com
有效,而http://metabase.domain.com/style/app.css
无效。
这是我的配置:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
namespace: domain
annotations:
kubernetes.io/ingress.global-static-ip-name: "domain"
name: domain-ingress
spec:
rules:
- host: metabase.domain.com
http:
paths:
- path: /
backend:
serviceName: metabase
servicePort: 80
- host: jenkins.domain.com
http:
paths:
- path: /
backend:
serviceName: jenkins
servicePort: 80
从nginx.conf中的所有内容看起来也很正常。由于某些原因,nginx访问和错误日志也为空,因此也无法从中找到任何内容
答案 0 :(得分:1)
我设法解决了这个问题,结果以某种方式在我的命名空间上有了另一个入口,它是nginx控制器的很旧的版本。我清理了集群并重新启动了入口。事情解决了。感谢大家的帮助!
答案 1 :(得分:0)
正如您提到的,日志文件中没有错误,并且从 你的观点。我可能建议使用注释标签来调整入口。 我检查了documentation of ingress-nginx,发现下面的注释可能会有所帮助。
在某些情况下,后端服务中公开的URL与指定的路径不同 在Ingress规则中无需重写,任何请求都将返回404。 设置注释
nginx.ingress.kubernetes.io/rewrite-target
服务期望的路径。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/rewrite-target: /
name: rewrite
namespace: default
spec:
rules:
- host: rewrite.bar.com
http:
paths:
- backend:
serviceName: http-svc
servicePort: 80
path: /something
如果“应用程序根目录”位于其他路径中,并且需要重定向,请设置注释
nginx.ingress.kubernetes.io/app-root
重定向对/的请求。
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
nginx.ingress.kubernetes.io/app-root: /app1
name: approot
namespace: default
spec:
rules:
- host: approot.bar.com
http:
paths:
- backend:
serviceName: http-svc
servicePort: 80
path: /
如果应用程序包含相对链接,则可以添加其他注释
nginx.ingress.kubernetes.io/add-base-url
将在后端返回的HTML的标头中添加一个基本标记。