haproxy安装_keepalived + haproxy部署高可用k8s master - 流年晕开时光

本文介绍了在生产环境中如何使用keepalived和haproxy部署高可用的Kubernetes (K8s) master节点。通过外部负载均衡器、keepalived的VIP漂移和haproxy的负载均衡,确保apiserver的高可用性和流量自动切换。haproxy配置着重于TCP和HTTP代理,而keepalived则基于VRRP协议实现故障转移。实验验证了该部署架构的可行性。
摘要由CSDN通过智能技术生成

转载于:

关键问题

根据K8s官方文档将HA拓扑分为两种,Stacked etcd topology(堆叠ETCD)和External etcd topology(外部ETCD)。 

堆叠ETCD: 每个master节点上运行一个apiserver和etcd, etcd只与本节点apiserver通信。

a3cde2ae8b06077cfc13e17f294d7a6a.png

外部ETCD: etcd集群运行在单独的主机上,每个etcd都与apiserver节点通信。

fc776f42147c44183aac17e515f01e98.png

官方文档主要是解决了高可用场景下apiserver与etcd集群的关系, 三master节点防止单点故障。但是集群对外访问接口不可能将三个apiserver都暴露出去,一个挂掉时还是不能自动切换到其他节点。官方文档只提到了一句“使用负载均衡器将apiserver暴露给工作程序节点”,而这恰恰是生产环境中需要解决的重点问题。

Notes: 此处的负载均衡器并不是kube-proxy,此处的Load Balancer是针对apiserver的。

部署架构

以下是我们在生产环境所用的部署架构:

f150a83f210360284c3443d7a361bcf6.png

  1. 由外部负载均衡器提供一个vip,流量负载到keepalived master节点上。
  2. 当keepalived节点出现故障, vip自动漂到其他可用节点。
  3. haproxy负责将流量负载到apiserver节点。
  4. 三个apiserver会同时工作。注意k8s中controller-manager和scheduler只会有一个工作,其余处于backup状态。我猜测apiserver主要是读写数据库,数据一致性的问题由数据库保证,此外apiserver是k8s中最繁忙的组件&#
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值