有一个kubernetes裸机集群,它有7个节点。已安装的是 Helm ,并添加了一个 Helm 回购补充
- ingress-nginx https://kubernetes.github.io/ingress-nginx在我的局域网中,我创建了一个dns A记录,它在我的局域网中是可解析的。
标签:https://matthewpalmer.net/kubernetes-app-developer/articles/kubernetes-ingress-guide-nginx-example.html
我能够访问苹果和香蕉的位置上的DNS记录之前提到的。
当我使用端口为80且类型为cluster-ip的服务部署默认nginx映像时,以下nginx-ingress资源不起作用
kubectl run nginx --image=nginx ; kubectl exposed 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镜像中部署,与apple和banana ingress条目相比,没有看到任何奇怪的东西。我能想到的唯一区别是ingress控制器和nginx镜像是使用端口80的bot
因此,我需要的是,当我访问http://somelan.lan/test时,我将结束在nginx服务器的占位符(可通过nginx服务访问)
如何在路径/test下访问我的A dns记录上的nginx?
2条答案
按热度按时间fiei3ece1#
所提供的apple / banana示例可以正常工作,因为pod是路径不敏感的。它不会对路径更改做出React(忽略路径)。而对于
nginx
,则正好相反。这个博客有一个注解错误,它缺少
nginx
前缀。这是你用的那个:这是正确的docs:
pvcm50d12#
经过研究,我发现了如何解决这个问题。希望对大家有帮助https://www.reddit.com/r/kubernetes/comments/j2neuf/nginxingress_path_routing/