如何解决具有集群ip服务和默认nginx的kubernetes入口控制器无法按预期运行
有一个具有7个节点的kubernetes裸机集群。 已安装头盔并添加了头盔仓库
- ingress-nginx https://kubernetes.github.io/ingress-nginx 在我的局域网中,我创建了一个dns A记录,该记录可以在我的局域网中解析。
我能够访问前面提到的dns A记录中的苹果和香蕉位置。
当我使用端口80和类型为cluster-ip的服务部署默认的nginx映像时,以下nginx-ingress资源不起作用
kubectl运行nginx --image = nginx; kubectl暴露的pod nginx --port = 80
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-test
annotations:
ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- host: kubernetes.somename.lan
http:
paths:
- path: /test
pathType: Prefix
backend:
serviceName: nginx
servicePort: 80
我在日志中看到文件正在nginx-ingress映像中部署,与苹果和香蕉入口条目相比,没有看到任何奇怪的东西。我唯一能想到的区别是入口控制器和Nginx映像是使用端口80进行漫游的。
所以我需要的是,当我访问http://somelan.lan/test时,我将到达nginx服务器的占位符(可通过nginx服务访问)
问题: 我如何在路径/ test下的A dns记录上访问nginx 预先谢谢你
解决方法
提供的苹果/香蕉示例正在运行,因为吊舱对路径不敏感。它不会对路径更改做出反应(忽略路径)。而对于nginx
来说则完全相反。
该博客的注解有误,并且缺少nginx
前缀。这是您使用的那个:
ingress.kubernetes.io/rewrite-target
根据docs,这是正确的密码:
nginx.ingress.kubernetes.io/rewrite-target
,
好的,经过研究,我发现了解决方法。 希望这对任何人有帮助 https://www.reddit.com/r/kubernetes/comments/j2neuf/nginxingress_path_routing/
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: ingress-precious
annotations:
nginx.org/rewrites: "serviceName=nginx-ingress rewrite=/;"
spec:
rules:
- host: kubernetes.somelan.lan
http:
paths:
- path: /test1
backend:
serviceName: nginx-ingress
servicePort: 80
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。