在实际使用中,尤其在现网环境下,kubernetes的master节点高可靠方面是非常需要注意的,因为很多关键服务如kube-apiserver、kube-scheduler和kube-controller-manager都依赖于master,如何在架构层面创建一个高可靠的master节点?配置过程中需要注意哪些点?今天我就给大家讲解一下,有一种比较简单的高可靠方案,技术栈和工具选择也具备通用性,通过keepalived + haproxy来实现,其中keepalived是提供一个VIP,通过VIP关联所有的Master节点;然后haproxy提供端口转发功能。由于VIP还是存在Master的机器上的,默认配置API Server的端口是6443,所以我们需要将另外一个端口关联到这个VIP上,需要做端口的区分,可以使用8443端口。在实际配置过程中,需要有几个注意的地方,haproxy方面,在bind绑定VIP是对外的端口号,要注意端口占用的情况。balance指定的负载均衡方式是roundrobin方式,默认是source方式,这一点要注意。erver指定的就是实际的Master节点地址以及真正工作的端口号,一定要写全,不能遗漏。keepalived方面,有一个参数是priority,用来决定主次,数字小的是主,数字大的是次。virtual_router_id决定当前VIP的路由号,实际上VIP提供了一个虚拟的路由功能,该VIP在同一个子网内必须是唯一。其中有一个特别关注的点,在这个架构中,如果存在多master的情况下,单个master获取vip是需要一定时间,如果同一个时间启动会造成选举冲突,因此多master启动需配置间隔时间。
收起