【发布时间】:2018-07-22 05:24:42
【问题描述】:
我已经研究 Kubernetes 几个星期了,并且使用 kube-lego NGINX 示例 (https://github.com/jetstack/kube-lego) 已使用 DigitalOcean 上的 Rancher 成功地将服务部署到 Kubernetes 集群。
我已经部署了示例静态站点、Wordpress、Laravel、Craft CMS 等。所有这些都使用自定义命名空间、部署、秘密、具有外部注册表的容器、服务和入口定义。
使用示例(乐高)NGINX 入口控制器设置,我能够将 DNS 应用到我的 K8s 集群的公开 IP 地址,并显示生成的站点。
不过,我不知道如何允许多个主机让 Ingress Controller 为相同的部署提供服务,从而为集群提供 HA Ingress。 (通过应用外部负载平衡器服务、geo-ip 或你有什么)。
Rancher(稳定版)允许我添加多个主机,我一次增加了 3 到 5 个,并且 Kubernetes 已配置并部署在所有主机上。此外,我将定义许多副本和/或部署(如上所列),它们将分布在集群中并且可以按预期访问。我什至指定了 Ingress Controller 的多个副本,但当然它们都被安排在同一个主机上,只给了我一个 Ingress 的 IP 地址。
那么我如何允许多个主机(每个都有自己的公共 IP 地址)允许进入集群?我还阅读了有关设置多个 Ingress Controller 的信息,但是您必须指定哪个 Ingress Controller 正在为哪些部署/服务提供服务,这完全违背了目的。
也许我遗漏了一些东西,但是如果 K8s 多主机应该提供 HA,并且带有 Ingress Controller 的主机出现故障,那么服务将在其他主机上重新调度,但一切的 IP 地址是指向将是死的,因此会中断。有什么方法可以让同一组部署/服务拥有多个 IP 地址?
【问题讨论】:
标签: kubernetes rancher kubernetes-ingress