有一个具有7个节点的kubernetes裸机集群。 已安装头盔并添加了头盔仓库
我能够访问前面提到的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 预先谢谢你
答案 0 :(得分:0)
提供的苹果/香蕉示例正在运行,因为吊舱对路径不敏感。它不会对路径更改做出反应(忽略路径)。而对于nginx
来说则完全相反。
该博客的注解有误,并且缺少nginx
前缀。这是您使用的那个:
ingress.kubernetes.io/rewrite-target
根据docs,这是正确的密码:
nginx.ingress.kubernetes.io/rewrite-target
答案 1 :(得分:0)
好的,经过研究,我发现了解决方法。 希望这对任何人有帮助 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