Kubernetes内部通配符DNS记录

时间:2019-05-22 09:13:06

标签: kubernetes

我想创建一个通配符DNS记录,该记录映射到我的k8s集群中的虚拟IP。这是因为我希望从吊舱到给定名称的任何子域的请求都映射到一组特定的端点。即来自以下请求:

something.my-service.my-namespace.svc.cluster.local
something-else.my-service.my-namespace.svc.cluster.local
any-old-thing-my-pod-came-up-with.my-service.my-namespace.svc.cluster.local

全部解析为相同的虚拟IP,因此解析为相同的 cluster (即,我希望这些请求以与服务相同的方式路由到端点)。

我看过其他一些解决方案,这些解决方案涉及创建和修改集群DNS服务(即kube-dns或CoreDNS)配置。这对我不起作用-我问这个问题的主要原因是实现声明性配置。

我尝试过的事情:

  • 服务.metadata.name: '*.my-service'。由于'*.my-service'不是有效的服务名称,因此失败。
  • 服务.spec.ports.name: '*'。不是有效的端口名。

没有选择:

1 个答案:

答案 0 :(得分:0)

kubernetes服务不支持通配符dns。您可以做的是使用入口控制器在服务的前端。使用入口,您可以使用通配符DNS。请参考下面的PR

https://github.com/kubernetes/kubernetes/pull/29204