使用入口进行动态重定向

时间:2018-09-05 05:50:56

标签: service routing kubernetes containers kubernetes-ingress

我有2个问题:

1)我有一个具有多种服务的kubernetes集群,我想使用入口将流量动态重定向到该集群。

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

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?

谢谢!

2 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:0)

我希望我已经正确理解了您的问题,但是如果是这样,那么您作为示例提供的内容就非常接近了。以下配置应按说明运行。

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

祝你好运:)