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
我想使用相同的主机名,例如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