如何在外部公开Kubernetes DNS

问题描述 投票:2回答:3

外部DNS服务器是否可以针对K8s群集DNS进行解析?我希望驻留在群集之外的应用程序能够解析容器DNS名称?

kubernetes
3个回答
0
投票

我从来没有这样做过,但从技术上讲,这应该可以通过将kube-dns服务公开为NodePort来实现。然后,您应配置外部DNS服务器以将Kube DNS区域“cluster.local”(或您在Kube中拥有的任何其他内容)的查询转发到kube-dns地址和端口。

在Bind中可以这样做:

zone "cluster.local" {
 type forward;
 forward only;
 forwarders{ ANY_NODE_IP port NODEPORT_PORT; };
};

0
投票

虽然有可能暴露coredns并因此将请求转发给kubernetes,但我在aws中采用的典型方法是使用external-dns controller

这将使服务和入口同步,提供类似的功能。它附带了一些警告,但我已经在prod环境中成功使用它。


0
投票

这是可能的,有一篇很好的文章证明了这个概念:https://blog.heptio.com/configuring-your-linux-host-to-resolve-a-local-kubernetes-clusters-service-urls-a8c7bdb212a7

但是,我同意Dan的观点,即通过service + ingress / ELB + external-dns公开是解决这个问题的常用方法。而对于开发目的,我使用https://github.com/txn2/kubefwd也破解了名称解析。

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