Kubernetes 客户子域动态绑定
Kubernetes customer subdomain dynamic binding
我有以下用例:
我们的客户经常在他们的 K8s 集群上发布新服务。
这些新服务可通过负载均衡和 Ingress 从外部访问,以便在部署服务后动态配置此负载均衡。这对我们客户的开发团队来说真的很容易,因为他们不必等到有人手动配置负载平衡。他们只需在服务部署旁边创建自己的 Ingress 资源,服务就可以访问。
一位客户询问我们是否还可以让其每项服务都可以自动拥有自己的子域。因此,一旦部署了新应用程序,它就应该可以作为集群域的子域(例如 https://helloworld.cyvh5.k8s.ginger.aws.gigantic.io)以及它们自己的子域(例如 helloworld.awesome-customer.com)使用.
我找到 作为起点。
我的问题是:
我可以用其他(更好的)方式实现 客户子域动态绑定吗?
建议的解决方案可能存在哪些限制/陷阱?
谢谢!
是的,1 个入口听起来很棒。
对于 2,我觉得您只需要指向入口控制器的通配符 DNS。通配符 DNS 条目应该说 *.domain.com 应该指向入口控制器的外部 IP。然后可以部署基于主机的 Ingress rules/resources,并且可以根据请求中指定的主机将流量路由到适当的服务。因此,只要 'a.b.domain.com' 将转到入口控制器,请求的 DNS 通配符部分中的内容并不重要,然后它将取决于入口资源中的规则以及它最终到达的位置.
这不会是 'automatic',因为如果客户希望在两台主机上公开服务,则他们必须部署一两个 Ingress 规则。但是,如果客户对部署 Ingress 资源感到满意,那么他们也应该对此感到满意。
我认为您不需要任何更动态的东西,因为在 'helloworld.awesome-customer.com' 中似乎 'helloworld' 是服务,因此可以填充您的主机,因此不需要在 Ingress 规则本身中使用通配符.如果他们要求 'v1.helloworld.awesome-customer.com' 和 'v2.helloworld.awesome-customer.com' 并且两者都被一个包含通配符的 Ingress 条目覆盖(而不是两个条目,一个每个版本)。但他们似乎并没有要求这一点。
无论如何,这就是我对客户域部分的看法。我不太确定你对集群域部分的意思——因为我需要更好地理解它是如何访问的。据推测,它又是通配符 DNS 指向进行路由的东西,但我不确定在那里进行路由的是什么。如果关键是您想要实现这一点,那么它可能只是指向同一个入口控制器的另一个通配符 DNS 条目,并部署了额外的入口资源。
我有以下用例:
我们的客户经常在他们的 K8s 集群上发布新服务。 这些新服务可通过负载均衡和 Ingress 从外部访问,以便在部署服务后动态配置此负载均衡。这对我们客户的开发团队来说真的很容易,因为他们不必等到有人手动配置负载平衡。他们只需在服务部署旁边创建自己的 Ingress 资源,服务就可以访问。
一位客户询问我们是否还可以让其每项服务都可以自动拥有自己的子域。因此,一旦部署了新应用程序,它就应该可以作为集群域的子域(例如 https://helloworld.cyvh5.k8s.ginger.aws.gigantic.io)以及它们自己的子域(例如 helloworld.awesome-customer.com)使用.
我找到
我的问题是:
我可以用其他(更好的)方式实现 客户子域动态绑定吗?
建议的解决方案可能存在哪些限制/陷阱?
谢谢!
是的,1 个入口听起来很棒。
对于 2,我觉得您只需要指向入口控制器的通配符 DNS。通配符 DNS 条目应该说 *.domain.com 应该指向入口控制器的外部 IP。然后可以部署基于主机的 Ingress rules/resources,并且可以根据请求中指定的主机将流量路由到适当的服务。因此,只要 'a.b.domain.com' 将转到入口控制器,请求的 DNS 通配符部分中的内容并不重要,然后它将取决于入口资源中的规则以及它最终到达的位置.
这不会是 'automatic',因为如果客户希望在两台主机上公开服务,则他们必须部署一两个 Ingress 规则。但是,如果客户对部署 Ingress 资源感到满意,那么他们也应该对此感到满意。
我认为您不需要任何更动态的东西,因为在 'helloworld.awesome-customer.com' 中似乎 'helloworld' 是服务,因此可以填充您的主机,因此不需要在 Ingress 规则本身中使用通配符.如果他们要求 'v1.helloworld.awesome-customer.com' 和 'v2.helloworld.awesome-customer.com' 并且两者都被一个包含通配符的 Ingress 条目覆盖(而不是两个条目,一个每个版本)。但他们似乎并没有要求这一点。
无论如何,这就是我对客户域部分的看法。我不太确定你对集群域部分的意思——因为我需要更好地理解它是如何访问的。据推测,它又是通配符 DNS 指向进行路由的东西,但我不确定在那里进行路由的是什么。如果关键是您想要实现这一点,那么它可能只是指向同一个入口控制器的另一个通配符 DNS 条目,并部署了额外的入口资源。