为什么要配置非默认集群域

为什么要配置非默认集群域

我正在考虑将 Kubernetes 集群部署到半生产环境中。到目前为止,我已经掌握了很好的知识,但有一件事我还没有完全理解。默认情况下,Kubernetes 使用cluster.local域作为其内部 DNS。在安装时可以更改该默认设置。我拥有一个域,我可以将其配置为cluster.mydomain.com,但这样做的充分理由是什么?我之所以问这个问题,是因为我预计以后很难更改,所以我想现在就正确配置它。

答案1

默认情况下,Kubernetes 使用 cluster.local 域作为其内部 DNS。可以在安装时更改该默认设置。

是的。

取决于您如何部署 Kubernetes ... 使用 kubespray,我们将通过设置cluster_name变量来执行此操作。它将更改集群部署期间使用的 kubeadm-config 文件中的某些配置,以及集群 DNS 区域配置。

我拥有一个域名,并且可以将其配置为 cluster.mydomain.com,但这样做的充分理由是什么?

我不确定更改与另一个现有域匹配的集群内部 DNS 域名是否有意义。

假设...

  • 假设您的 SDN 连接到一些外部路由器,公开 SDN 范围(通过 BGP、OSPF……例如:使用 calico),例如您的 LAN 内的用户可以连接到 SDN IP 地址。

  • 并且假设您确实设置了 mydomain.com 区域,其中一些cluster IN NS <kubernetes-dns-service-clusterip>(例如解析与您的集群服务相对应的名称的客户端)将从集群 DNS 本身获得答复。

那么,这可能是有意义的。可以说。因为最终用户可能始终依赖于连接到 SDN 内服务的那些 DNS 名称。

虽然这确实不是一个常见的用例。我自己从未见过这种情况。而且可能不是我们应该推荐的东西:SDN 旨在隔离您的集群网络。入口/服务网格入口网关/... 将是向最终用户公开服务的首选方式:规范化 tls 配置,过滤可以访问的端点,可能记录来自几个选定的 pod/入口的外部访问,...

除非你有意希望最终用户直接连接 kubernetes 服务 ClusterIP,否则使用你自己的域作为 kubernetes 内部 DNS 域名可能没有意义。

在这种情况下,更好的解决方案可能是研究 MetalLB 或 Multus 等解决方案。不要将您的 SDN 暴露给最终用户,而应使用其中一个暴露特定服务或部署的解决方案,并为其分配 SDN 范围之外的地址。

相关内容