为专用Kubernetes集群中的内部服务分配FQDN



我用RKE1.2.2设置了一个私有K8S集群,因此我的K8S版本是1.19。我们有一些内部服务,有必要使用自定义FQDN而不是简单的服务名称来访问彼此。当我在网上搜索时,我找到的唯一解决方案是为本REF中描述的CoreDNSConfigMap添加rewrite记录。然而,该解决方案导致手动配置,我想在服务设置期间自动定义一个记录。这种自动化有什么解决方案吗?CoreDNS是否有这样的API来添加或删除rewrite记录?

注意1:我还尝试装载CoreDNS的ConfigMap并通过另一个pod进行更新,但内容是只读装载的。

注意2:有人提议呼叫kubectl get cm -n kube-system coredns -o yaml | sed ... | kubectl apply ...。但是,我希望在服务设置期间或在pod或initcontainer中实现自动化。

注意3:我希望有像hostAliases这样的服务,也希望有serviceAliases这样的内部服务(ClusterIP(。

目前,还没有现成的解决方案。

我唯一想到的就是使用MutatingAdmissionWebhook。当创建新的Kubernetes service,然后按照CoreDNS文档中的描述将ConfigMap修改为CoreDNS时,它将需要捕获时刻。

之后,您需要重新加载CoreDNS配置,以应用ConfigMap中的新配置。为此,可以将reload plugin用于CoreDNS。关于这个插件的更多细节可以在这里找到。

您可以考虑将sidecarContainer用于CoreDNS,这将向CoreDNSconatiner发送SIGUSR1信号。这个方法的例子可以在这个Github线程中找到。

相关内容

  • 没有找到相关文章

最新更新