我有一个“如果”的问题
假设有一个 Kubernetes 集群,其中有 4 个节点,某个域指向节点 1 的 IP,Web 应用使用此域,每个节点有 1 个 pod。如果节点 1 发生故障,那么据我所知,应用也会发生故障,因为 A 记录指向发生故障的节点
如何解决以维护 HA 环境?
答案1
这就是Service
旨在解决,如果你在云环境中(或者有一个操作员可以提供一些东西,看起来Kubernetes的实现类似于负载均衡器(load balancer),它type: LoadBalancer
会从集群外部到集群内部提供一个稳定的入口点,然后 kubernetes 会绕过该 Node 故障进行路由。
在幕后,type: LoadBalancer
它只是type: NodePort
和负载均衡器之间的粘合剂,所以即使你没有正式的负载均衡器机制,也可以使用type: NodePort
和指向的 haproxy 副本每一个集群中的节点将在很大程度上解决您的风险
答案2
感谢 mdaniel 的澄清!
我还找到了一些有用的链接,可以深入了解
查看诸如浮动 IP、keepalived 等主题也是一个好主意,如果你的供应商在 digitalocean 上有用于更改浮动 IP 目的地的 API,你可以查看如何操作 https://www.digitalocean.com/community/tutorials/how-to-set-up-highly-available-haproxy-servers-with-keepalived-and-floating-ips-on-ubuntu-14-04