【发布时间】:2019-05-22 09:13:05
【问题描述】:
我想创建一个通配符 DNS 记录,它映射到我的 k8s 集群中的虚拟 IP。这是因为我希望从我的 pod 到给定名称的任何子域的请求映射到一组特定的端点。 IE。请求来自:
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,因此解析到同一个 集群(即我希望这些请求以与服务相同的方式路由到端点)。
我见过一些其他解决方案,这些解决方案涉及创建和修改集群 DNS 服务(即 kube-dns 或 CoreDNS)配置。这对我不起作用——我问这个问题的主要原因是为了实现声明性配置。
我尝试过的:
- 服务
.metadata.name: '*.my-service'。失败,因为'*.my-service'不是有效的服务名称。 - 服务
.spec.ports.name: '*'。不是有效的端口名称。
不是一个选项:
- 入口。我无法将这些服务公开给更广泛的互联网。
- Pod 主机名/子域。由 pod 主机名/子域创建的 AFAIK DNS 条目将没有可以解析为多个 pod 中的任何一个的虚拟 IP。 (引自 https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-hostname-and-subdomain-fields)“DNS 以该名称提供 A 记录,指向 Pod 的 IP。”
【问题讨论】:
标签: kubernetes