kubernetes - Kubernetes:基于路径仅适用于 root
问题描述
我有一个 EKS 集群,目前使用基于路径的路由。我之前发布过这个帖子,所以我所有的配置都在那里:Kubernetes: 502 (Bad getaway)
我的入口控制器来自那里:https ://raw.githubusercontent.com/kubernetes/ingress-nginx/nginx-0.24.1/deploy/mandatory.yaml
这是我的入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: simple-fanout-example
namespace : default
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
rules:
- host: domain.com
http:
paths:
- path: /bleble(/|$)(.*)
backend:
serviceName: bleble-svc
servicePort: 8080
- path: /hello-world
backend:
serviceName: hello-world-svc
servicePort: 8080
这绝对可以正常工作,直到您尝试去任何不是 domain.com/bleble 或 domain.com/hello-world 的地方。服务需要相互引用,而他们请求的uri只是domain.com,这显然是行不通的,因为服务在domain.com/nameoftheservice。
2个问题是:
- 服务名称是 bleble,所以我们决定路径应该是 /bleble。我在此文档 (kubernetes.github.io/ingress-nginx/examples/rewrite) 上看到添加 (/|$)(.*) 将允许重写。我们想使用 url 作为 domain.com/bleble/swagger 或 domain.com/bleble/clients,...但是当我们输入这些时,它会带回 /bleble 上的内容
- 我需要 bleble 从 hello-world 获取信息。现在,它不是从 domain.com/bleble 到 domain.com/hello-world,而是从 domain.com/bleble 到 domain.com。它似乎只能调用主机名,而不是路径。
我试过做一个单一的入口资源并且有nginx.ingress.kubernetes.io/app-root : /bleble
,但这似乎不起作用。我也试过注释nginx.ingress.kubernetes.io/rewrite-target: /coretest
谢谢您的帮助!
解决方案
推荐阅读
- laravel - 向雄辩的 Mongodb laravel 模型添加新文件
- doctrine - OrWhere 声明原则 1
- html - 如何制作一个覆盖屏幕所有区域的div,除了固定div覆盖的区域?
- java - Spring 测试仅在我的系统中失败
- javascript - 变量值固定为 0(函数内部)
- c++11 - 如何在数组中找到第k个元素?
- jenkins - 无法用 groovy 解析 xml
- service-worker - 使用 Workbox 管理具有多个 Service Worker 客户端的缓存
- node.js - select value does not display
- c# - 断言有关拖放的错误