Kubernetes:具有相同的主机名,但Kubernetes中不同名称空间中的入口具有不同的路径

时间:2020-09-22 08:06:41

标签: kubernetes kubernetes-ingress kubernetes-namespace

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

2 个答案:

答案 0 :(得分:2)

nginxinc具有Cross-Namespace Configuration功能,可让您完全按照自己的描述进行操作。 您还可以在此处找到有关部署,服务等的准备好的示例。

您唯一可能不会喜欢的东西。nginxinc不是免费的。.

还要看here

跨名称空间配置您可以传播Ingress配置 使用Mergeable跨多个Ingress资源访问通用主机 入口资源。这些资源可以属于相同或不同 命名空间。当使用大量时,这使管理更容易 的路径。请参阅我们GitHub上的Mergeable Ingress资源示例。

作为可合并的Ingress资源的替代方法,您可以使用 跨命名空间的VirtualServer和VirtualServerRoute资源 组态。请参阅我们的跨命名空间配置示例 GitHub。

答案 1 :(得分: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