我已经学习了几周的Kubernetes,并使用kube-lego NGINX示例(https://github.com/jetstack/kube-lego)成功地在DigitalOcean上使用Rancher部署了Kubernetes集群中的服务。
我已经部署了示例静态站点、WordPress、Laravel、Craft CMS等,所有这些都使用自定义命名空间、部署、密钥、外部注册表的容器、服务和Ingress定义。
使用示例(lego)NGINX Ingress Controller设置,我能够将DNS应用于我的K8s集群的公开IP地址,并显示结果网站。
然而,我不知道如何允许多个主机有Ingress控制器为同一部署提供服务,从而为集群提供HA Ingress(通过应用外部负载均衡器服务、geo-ip或其他方式)。
Rancher(stable)允许我添加多个主机,我每次启动3到5个,Kubernetes配置并部署在所有主机上。此外,我会定义许多副本或部署(如上所述),它们将分布在整个集群中,并且可以像预期的那样访问。我甚至指定了多个Ingress Controller的副本,但它们都被调度到同一主机上,从而只给我一个Ingress的IP地址。
那么我如何允许多个主机(每个主机都有自己的公共IP地址)允许进入集群?我也阅读了关于设置多个Ingress Controller的内容,但是您必须指定哪些部署/服务由哪个Ingress Controller提供服务,这完全违背了目的。
也许我错过了什么,但如果K8s多主机应该提供HA,并且具有Ingress Controller的主机出现故障,则服务将重新调度到其他主机上,但所有东西都指向的IP地址将会失效,从而导致停机。是否有任何方法可以为相同的部署/服务提供多个IP地址?