Kubernetes:基于路径仅适用于root

时间:2019-06-06 16:09:12

标签: kubernetes nginx-ingress amazon-eks aws-eks eks

我有一个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。

两个问题是:

  • 服务名称是bleble,因此我们确定路径应为/ bleble。我在该文档(kubernetes.github.io/ingress-nginx/examples/rewrite)上看到,添加(/|$)(.*)将允许重写。我们想使用url作为domain.com/bleble/swagger或domain.com/bleble/clients,...。但是,当我们键入这些URL时,它又回到了/ 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

感谢您的帮助!

0 个答案:

没有答案