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

Kubernetes: Having same host name but different paths in ingresses in different namespaces in Kubernetes

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

nginxinc has Cross-Namespace Configuration 功能,可让您完全按照您的描述进行操作。 您还可以在那里找到包含部署、服务等的准备好的示例。

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

也看看here

Cross-namespace Configuration You can spread the Ingress configuration for a common host across multiple Ingress resources using Mergeable Ingress resources. Such resources can belong to the same or different namespaces. This enables easier management when using a large number of paths. See the Mergeable Ingress Resources example on our GitHub.

As an alternative to Mergeable Ingress resources, you can use VirtualServer and VirtualServerRoute resources for cross-namespace configuration. See the Cross-Namespace Configuration example on our GitHub.

如果您不想更改您的默认入口控制器 (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