使用入口的动态重定向

Dynamic redirect using ingress

我有两个问题:

1) 我有一个包含多个服务的 kubernetes 集群,我想使用 ingress 将流量动态重定向到集群。

我希望配置看起来像这样:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: foo.bar.com
    http:
      paths:
      - path: /service1/*
        backend:
          serviceName: service1
          servicePort: 80
        path: /*
      - path: /service2/*
        backend:
          serviceName: service2
          servicePort: 80
        path:/*

所以基本上我希望所有到 /service1/endpoint 的流量都动态重定向到 s1:80/endpoint。

2) 假设我有 2 个 Web 服务 - service1 和 service2。

我希望用户在他们的浏览器中使用以下 URL:

kube/serviceN/endpoint

有没有办法在不将我的用户重定向到 service1/endpoint 的情况下做到这一点?

谢谢!

我相信你的入口定义几乎是正确的:

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
spec:
  rules:
  - host: foo.bar.com
    http:
      paths:
      - path: /service1
        backend:
          serviceName: service1
          servicePort: 80
      - path: /service2
        backend:
          serviceName: service2
          servicePort: 80

如果您正确部署了入口,这应该可以工作!

我希望我已经正确理解了您的问题,但如果是这样,您提供的示例就非常接近目标了。下面的配置应该按照描述工作。

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: test
spec:
  rules:
  - host: foo.bar.com
    http:
      paths:
      - path: /service1/
        backend:
          serviceName: service1
          servicePort: 80
      - path: /service2/
        backend:
          serviceName: service2
          servicePort: 80

祝你好运:)