haproxy+keepalived实现高可用K8S集群部署
普通的k8s集群:
当某个work节点故障时是高可用的
但是master节点故障时将会发生崩溃
因为k8s api server不可用会导致整个集群群龙无首
高可用的k8s集群:
其原理是将所有work节点对master的api请求通过负载均衡(haproxy)指向虚拟ip(keepalived)
而此虚拟ip由所有master节点通过优先级选举
多master节点负载均衡的kubernetes集群,主要有两种拓扑结构:
1)堆叠control plane node
2)external etcd node
下图是堆叠control plane node的结构
下图为external etcd node的结构
- mastre节点需要部署etcd、apiserver、controller-manager、schedule这4种服务,其中etcd、ntroller-manager、schedule这三种服务kubernetes自身已经实现了高可用,在多master节点的情况下,每个master节点都会启动这三种服务器,同一时间只有一个生效。因此要实现kubernetes的高可用,只需要apiserver服务高可用。
etcd是什么?kubernetes的后端数据库,k/v方式存储,所有的k8s集群数据都存放在此处。保存了整个集群的状态
https://blog.csdn.net/bbwangj/article/details/82584988
apiserver:对外暴露K8S的api接口,是外界进行资源操作的唯一入口,并提供认证、授权、访问控制、API注册和发现等机制
https://blog.csdn.net/bbwangj/article/details/81904421
controller-manager:负责维护集群的状态,比如故障检测、自动扩展、滚动更新等,它们是处理集群中常规任务的后台线程
https://www.cnblogs.com/Su-per-man/p/10942856.html
schedule:负责资源的调度,按照预定的调度策略将Pod调度到相应的机器上;就是监视新创建的 Pod,如果没有分配节点,就选择一个节点供他们运行,这就是pod的调度
https://www.cnblogs.com/Su-per-man/p/10942901.html
- keepalived是一种高性能的服务器高可用或热备解决方案,可以用来防止服务器单点故障导致服务中断的问题。keepalived使用主备模式,至少需要两台服务器才能正常工作。比如keepalived将三台服务器搭建成一个集群,对外提供一个唯一IP,正常情况下只有一台服务器上可以看到这个IP的虚拟网卡。如果这台服务异常,那么keepalived会立即将IP移动到剩下的两台服务器中的一台上,使得IP可以正常使用。
- haproxy是一款提供高可用性、负载均衡以及基于TCP(第四层)和HTTP(第七层)应用的代理软件,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。使用haproxy负载均衡后端的apiserver服务,达到apiserver服务高可用的目的。
- 本文使用的keepalived+haproxy方案,使用keepalived对外提供稳定的入口,使用haproxy对内均衡负载。因为haproxy运行在master节点上,当master节点异常后,haproxy服务也会停止,为了避免这种情况,我们在每一台master节点都部署haproxy服务,达到haproxy服务高可用的目的。由于多master节点会出现投票竞选的问题,因此master节点的数据最好是单数,避免票数相同的情况。
具体安装部署流程过两天同步
haproxy+keepalived实现高可用K8S集群部署相关推荐
- keepalive+nginx高可用K8S集群部署
1.准备工作 1.1集群部署规划 K8S集群角色 节点IP 节点名称 OS 控制节点 192.168.0.180 k8smaster1 Centos7.9 控制节点 192.168.0.181 k8s ...
- CentOS7+MySQL/MariaDB+Galera+HAProxy+Keepalived构建高可用数据库集群
方案优势: Galera能够实现MySQL/MariaDB数据库的主主复制和多主复制等模式,这些复制模式都是同步进行的,同步时间非常短 每一个节点都可以同时写入和读取,当某一节点发生故障时,可自动从集 ...
- 自建k8s平台-高可用k8s集群
自建k8s平台-高可用k8s集群 一.前置概念与操作 1.内核升级 3.10内核在大规模集群具有不稳定性 内核升级到4.19+ # 查看内核版本 uname -sr # 0.升级软件包,不升级内核 y ...
- 实战:部署一套完整的企业级高可用K8s集群(成功测试-博客输出)-20211019
目录 文章目录 目录 实验环境 实验软件 一.基础环境配置**(all节点均要配置)** 二.部署Nginx+Keepalived高可用负载均衡器**(只需在2个master节点配置即可)** 1.安 ...
- 《Kubernetes部署篇:基于docker使用kubespray工具部署高可用K8S集群(国内互联网方案四)》
文章目录 一.部署背景简介 二.部署工具介绍 三.部署方案介绍 四.部署环境信息 五.部署资源下载 六.部署准备工作 6.1.系统内核升级 6.2.设置主机名 6.3.环境初始化 6.4.ssh多机互 ...
- 《Kubernetes部署篇:基于docker使用kubespray工具离线部署高可用K8S集群(国内专网方案)》
文章目录 一.部署背景简介 二.部署工具介绍 三.部署方案介绍 四.部署环境信息 五.部署资源下载 六.部署准备工作 6.1.系统内核升级 6.2.设置主机名 6.3.环境初始化 6.4.ssh多机互 ...
- 《Kubernetes部署篇:基于docker使用kubespray工具部署高可用K8S集群(国内互联网方案三)》
文章目录 一.部署背景简介 二.部署工具介绍 三.部署方案介绍 四.部署环境信息 五.部署资源下载 六.部署准备工作 6.1.系统内核升级 6.2.设置主机名 6.3.环境初始化 6.4.ssh多机互 ...
- 云原生(二十七) | Kubernetes篇之自建高可用k8s集群前置概念与操作
文章目录 自建高可用k8s集群前置概念与操作 一.内核升级 二.k8s集群架构
- 使用rancher rke2配置高可用k8s集群
使用rancher rke2配置高可用k8s集群 1. 前言 1.1 官方介绍 1.2 说明 2. 主机环境准备 2.1 主机初始化 2.3 系统参数设置 2.4 NetworkManager设置 2 ...
最新文章
- 不是都需要ARM吗?
- openmv4闪灯说明_OpenMV Cam
- 定义一个有参宏SWAP(t,x,y),用以交换t类型的两个参数的值
- 雍正继承帝位,给职场中的我们的启示 --- 我看电视剧《雍正王朝》
- 2022年全球及中国晶圆探针卡市场需求策略与发展格局规模预测报告
- win10虚拟网络服务器,win10 虚拟专用网络服务器配置
- 国内最缺的架构实践,DDD领域驱动设计排第一!
- TensorFlow笔记(2) 常量与变量
- 测试流程 - 关于用例评审,给你的 9 点建议
- mysql学习之三:sql语句学习
- SAS数据分析之聚类分析
- 亚马逊中国公布2020年第一季度付费电子书畅销榜名单
- 【图像分割】基于计算机视觉实现视网膜图像中的血管分割附matlab代码
- 基础实验5-2.2 电话聊天狂人(Map的使用+例题)
- 关闭交互式服务检测(UI0Detect)
- 网站后台拿webshell
- 如何推动乡村振兴的落地
- java连锁美业收银系统源码
- dialog设置最大高度占比
- 2015年第十届蓝桥杯省赛C++A组【第二题:星系炸弹】