如何配置我的 DNS 以使用 Rancher 2.0 入口?

Posted

技术标签:

【中文标题】如何配置我的 DNS 以使用 Rancher 2.0 入口?【英文标题】:How do I configure my DNS to work with Rancher 2.0 ingress? 【发布时间】:2019-02-05 06:14:31 【问题描述】:

我是 Kubernetes 和 Rancher 的新手,但我有一个集群设置和一个工作负载部署。我正在考虑设置入口,但对我的 DNS 应该是什么样子感到困惑。

我会保持简单:我有一个域 (example.com),我希望能够配置 DNS,以便将其路由到我的 3 节点集群中的正确 IP,然后路由到正确的入口和负载均衡器,最终分配给工作负载。

我对 xip.io 的东西不感兴趣,因为我需要真实世界的东西,而不是沙盒,而且 Rancher 网站上没有说明我应该做什么的文档。

我应该通过 Kubernetes 运行我自己的 DNS 吗?我正在使用 DigitalOcean droplets,但还没有找到任何方法让 Rancher 为我设置 DNS 记录(正如它声称为其他云提供商所做的那样)。

这真的很令人沮丧,因为它基本上是您需要做的第一件事,也是唯一要做的事情……“将应用程序暴露给外界”,这在某种程度上并不简单。

希望有任何帮助,或者有人向我解释我从根本上是多么愚蠢以及我缺少什么!

谢谢。

【问题讨论】:

【参考方案1】:

你不傻,伙计。这件事变得复杂。您使用的是 AWS 还是 GKE?大多数部署 kubernetes 的方法将默认部署一个内部 DNS 解析器用于集群内通信。这些 URL 仅在集群内部有用。它们采用<service-name>.<namespace>.svc.cluster.local的形式,对外界没有任何意义。

但是,将服务暴露给外部世界是另一回事。在 AWS 上,您可以通过将服务的 ServiceType 设置为 LoadBalancer 来执行此操作,其中 kubernetes 将自动启动 AWS LoadBalancer,并附带一个公共域名,并将其配置为指向集群内的服务。然后,您可以在此处配置您拥有的任何域名以指向该负载均衡器。

【讨论】:

感谢格兰特。碰巧的是,我在 DigitalOcean 上运行所有东西,所以这可能是事情变得棘手的地方。 AWS 和 GKE 之外的基础设施有什么可以做的吗? 对不起,我错过了。看起来 DigitalOcean 的平台在 Kubernetes 支持方面还很不成熟。如果它还没有提供负载均衡器,您可以将服务配置为 NodePort 类型,这有效地公开每个节点上的特定端口以指向该服务。这意味着您可以通过指向该特定端口上的任何节点 IP 地址来公开访问该服务(只要它位于公共网络上)。这在技术上不需要 DNS。

以上是关于如何配置我的 DNS 以使用 Rancher 2.0 入口?的主要内容,如果未能解决你的问题,请参考以下文章

rancher部署

rancher resolv.conf 挂载为目录(Linux操作系统无resolv.conf)

ranche 中使用 alpine dns 注意事项

我应该如何配置我的 DNS 记录以将所有流量从一个域定向到另一个域?

如何使用GitLab和Rancher构建CI/CD流水线 – Part 2

WSL2 搭建 Rancher 开发环境