如何配置我的 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 resolv.conf 挂载为目录(Linux操作系统无resolv.conf)
我应该如何配置我的 DNS 记录以将所有流量从一个域定向到另一个域?