2

我想在具有不同路径的两个不同名称空间中使用相同的主机名,例如 example.com。例如,在命名空间 AI 中需要 example.com/clientA,在命名空间 BI 中需要 example.com/clientB。关于如何实现这一目标的任何想法?

4

2 回答 2

3

nginxinc具有跨命名空间配置功能,可让您完全按照您的描述进行操作。您还可以找到有关部署、服务等的准备好的示例。

你最可能不喜欢的唯一东西.. n​​ginxinc不是免费的..

也看这里

跨命名空间配置 您可以使用 Mergeable Ingress 资源将公共主机的 Ingress 配置分布在多个 Ingress 资源中。这样的资源可以属于相同或不同的命名空间。这使得在使用大量路径时更易于管理。请参阅我们 GitHub 上的 Mergeable Ingress Resources 示例。

作为 Mergeable Ingress 资源的替代方案,您可以使用 VirtualServer 和 VirtualServerRoute 资源进行跨命名空间配置。请参阅我们 GitHub 上的跨命名空间配置示例。

于 2020-09-22T09:30:04.827 回答
1

如果您不想更改默认入口控制器 (nginx-ingress),另一种选择是ExternalName在默认命名空间中定义一个类型的服务,该服务指向另一个命名空间中服务的完整内部服务名称。

像这样的东西:

apiVersion: v1
kind: Service
metadata:
  labels:
    app: my-svc
  name: webapp
  namespace: default
spec:
  externalName: my-svc.my-namespace.svc # <-- put your service name with namespace here
  type: ExternalName
于 2020-09-22T11:08:24.037 回答