如何将域的自定义子域重定向到以子域为参数/路径的单个kubernetes服务?

如何将域的自定义子域重定向到以子域为参数/路径的单个kubernetes服务?,kubernetes,kubernetes-ingress,nginx-ingress,Kubernetes,Kubernetes Ingress,Nginx Ingress,我有一个多租户应用程序的要求,其中每个租户都应该由子域分隔,如下所示 t1.example.com t2.example.com t3.example.com . . . tn.example.com 因此,在这种情况下,可能会有任意数量的租户。我有一个名为myservice的Kubernetes后端服务,负责处理所有这些请求,需要根据它们的子域识别它们。 e、 g.如果请求来自tn.example.com,则需要将其重定向到->myservice/tn t2.exam

我有一个多租户应用程序的要求,其中每个租户都应该由子域分隔,如下所示

t1.example.com  
t2.example.com  
t3.example.com  
.  
.  
.  
tn.example.com
因此,在这种情况下,可能会有任意数量的租户。我有一个名为myservice的Kubernetes后端服务,负责处理所有这些请求,需要根据它们的子域识别它们。 e、 g.如果请求来自tn.example.com,则需要将其重定向到->myservice/tn

t2.example.com   -> myservice/t2  
t3.example.com   -> myservice/t3 and so on.
因此,在这里,子域名将是重定向期间的路径参数,这将从应用程序的角度区分不同的子域。我需要为任意数量的子域动态执行此操作。 如何在Kubernetes Nginx ingress controller中实现这一点?

我担心这无法以简单明了的方式提供您所需要的。 但是,您始终可以使用更高级的功能,例如使用覆盖
服务器/位置块
部分,然后使用提取
子域
并将请求URI更改为后端

上有类似的线程,其中用户
sanigo
使用
configuration snippet
lua block
作为解决方法

nginx.ingress.kubernetes.io/configuration-snippet: |
  location ~ ^/v2/ {
    set_by_lua_block $repo {
      local host = ngx.req.get_headers()["host"];
      local reg = "^(?<repo>[^.]+).*";
      local m = ngx.re.match(host, reg);
      return m['repo'];
    }
    rewrite ^/(.*)$ /repository/$repo/$1 last;
  }
nginx.ingres.kubernetes.io/configuration-snippet:|
地点~^/v2/{
按区块$repo设置{
本地主机=ngx.req.get_headers()[“主机”];
local reg=“^(?[^.]+)*”;
本地m=ngx.re.match(主机,注册);
返回m[‘回购’];
}
重写^/(.*)$/repository/$repo/$1 last;
}

快速提示:在本例中,
完全充当
子域

是您的本地环境还是云环境?手动编辑入口YAML的选项不是这里的选项吗?这些子域只会增加或减少?它位于云端,不希望在每次添加新租户时手动编辑入口yaml。子域通常会增加。如果这是一个内部设置,会有什么不同?