Kubernetes客户子域动态绑定

问题描述 投票:1回答:1

我有以下用例:

  1. 我们的客户经常在其K8集群上发布新服务。这些新服务可通过负载平衡和Ingress从外部访问,以便在部署服务后动态配置此负载平衡。这使得我们客户的开发团队非常容易,因为他们不必等到有人手动配置负载平衡。他们可以在服务部署旁边创建自己的Ingress资源,并且可以访问该服务。
  2. 客户询问我们是否也可以启用其每个服务都可以自动拥有自己的子域。因此,一旦部署了新的应用程序,它应该可以作为集群域的子域(例如https://helloworld.cyvh5.k8s.ginger.aws.gigantic.io)以及它们自己的子域(例如,helloworld.awesome-customer.com)。

我发现this resource是一个起点。

我的问题是:

  1. 我可以用其他(更好)的方式实现客户子域动态绑定吗?
  2. 建议的解决方案有哪些可能的限制/缺陷?

谢谢!

kubernetes kubernetes-helm kubernetes-ingress
1个回答
2
投票

是的,1个入口听起来很棒。

对于2,听起来像你只需要指向入口控制器的通配符DNS。通配符DNS条目应该说* .domain.com应该指向入口控制器的外部IP。然后,可以部署基于主机的Ingress规则/资源,并且可以根据请求中指定的主机将流量路由到适当的服务。因此,在'abdomain.com'将进入入口控制器的情况下,请求的DNS的通配符部分中的内容无关紧要,然后它将依赖于Ingress资源中的内容以及它结束的位置起来。

如果客户希望在两台主机上公开服务,则客户必须部署一两个Ingress规则,这将不是“自动”。但如果客户对部署Ingress资源感到满意,那么他们也应该对此感到满意。

我认为你不需要任何更有活力的东西,因为在'helloworld.awesome-customer.com'中似乎'helloworld'是服务,因此填写你的主机所以在Ingress规则本身不需要通配符。什么会更有活力,更像你所指出的例子,如果他们要求'v1.helloworld.awesome-customer.com'和'v2.helloworld.awesome-customer.com',并且两者都被一个人覆盖入口条目包含通配符(而不是两个条目,每个版本一个)。但似乎他们并没有要求这样做。

这就是我无论如何看到客户域部分的方式。我不确定你对集群域部分的意思 - 为此我需要更好地理解如何访问它。据推测,它再次是通配符DNS指向正在进行路由的东西,但我不确定在那里进行路由的是什么。如果您希望实现这一点,那么它可能就是它是另一个通配符DNS条目,指向同一个入口控制器并部署了额外的Ingress资源。

© www.soinside.com 2019 - 2024. All rights reserved.