是否可以设置某种内部Nginx服务/部署,以将呼叫从一个GCP入口重定向到另一个GCP入口

时间:2019-09-18 18:17:56

标签: nginx redirect kubernetes google-cloud-platform kubernetes-ingress

我遇到这样的情况,在我的GCP群集上,我有两个入口(A)和(B),这两个入口将我带到默认后端服务(我的UI)。这些入口的类型为“ gce”,因为我将应用程序托管在Google-cloud上并让它为我做负载平衡

我所处的这种状况要求我有两次进入(考虑到停机和中断的某些因素)。我正在尝试探索一个选项,可以在其中设置某种内部k8s服务/部署,该选项可以从我的Ingress(A)接听我的电话,然后重定向到Ingress(B),在此Ingress(B)会将我恢复为默认后端用户界面。

我该如何解决这个问题?

在下面的示例中,我该如何写My-redirection-service-to-app-system-test。我的最终用户只需要在浏览器中键入“ system.test.com”,就可以将他们带到我的用户界面

它可能是Kubernetes服务/部署。不确定如何进行

非常感谢您的帮助

示例入口(B)

  rules:
  - host: app.system.test.com
    http:
      paths:
      - path: /ui/*
        backend:
          serviceName:ui-frontend
          servicePort: 80

示例入口(A)

  rules:
  - host: system.test.com
    http:
      paths:
      - path: /ui/*
        backend:
          serviceName: My-redirection-service-to-app-system-test
          servicePort: 80

1 个答案:

答案 0 :(得分:1)

我自己还没有尝试过,但是我会考虑使用ExternalName类型的服务。这些服务可以将针对自身的请求映射到任何DNS名称。

类似这样的事情应该可以解决:

服务:

apiVersion: v1
kind: Service
metadata:
  name: my-service
  namespace: namespace
spec:
  type: ExternalName
  externalName: app.system.test.com

女演员A

  rules:
  - host: system.test.com
    http:
      paths:
      - path: /ui/*
        backend:
          serviceName: my-service
          servicePort: 80

入口B

rules:
- host: app.system.test.com
  http:
    paths:
    - path: /ui/*
      backend:
        serviceName:ui-frontend
        servicePort: 80