普通的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集群部署相关推荐

  1. keepalive+nginx高可用K8S集群部署

    1.准备工作 1.1集群部署规划 K8S集群角色 节点IP 节点名称 OS 控制节点 192.168.0.180 k8smaster1 Centos7.9 控制节点 192.168.0.181 k8s ...

  2. CentOS7+MySQL/MariaDB+Galera+HAProxy+Keepalived构建高可用数据库集群

    方案优势: Galera能够实现MySQL/MariaDB数据库的主主复制和多主复制等模式,这些复制模式都是同步进行的,同步时间非常短 每一个节点都可以同时写入和读取,当某一节点发生故障时,可自动从集 ...

  3. 自建k8s平台-高可用k8s集群

    自建k8s平台-高可用k8s集群 一.前置概念与操作 1.内核升级 3.10内核在大规模集群具有不稳定性 内核升级到4.19+ # 查看内核版本 uname -sr # 0.升级软件包,不升级内核 y ...

  4. 实战:部署一套完整的企业级高可用K8s集群(成功测试-博客输出)-20211019

    目录 文章目录 目录 实验环境 实验软件 一.基础环境配置**(all节点均要配置)** 二.部署Nginx+Keepalived高可用负载均衡器**(只需在2个master节点配置即可)** 1.安 ...

  5. 《Kubernetes部署篇:基于docker使用kubespray工具部署高可用K8S集群(国内互联网方案四)》

    文章目录 一.部署背景简介 二.部署工具介绍 三.部署方案介绍 四.部署环境信息 五.部署资源下载 六.部署准备工作 6.1.系统内核升级 6.2.设置主机名 6.3.环境初始化 6.4.ssh多机互 ...

  6. 《Kubernetes部署篇:基于docker使用kubespray工具离线部署高可用K8S集群(国内专网方案)》

    文章目录 一.部署背景简介 二.部署工具介绍 三.部署方案介绍 四.部署环境信息 五.部署资源下载 六.部署准备工作 6.1.系统内核升级 6.2.设置主机名 6.3.环境初始化 6.4.ssh多机互 ...

  7. 《Kubernetes部署篇:基于docker使用kubespray工具部署高可用K8S集群(国内互联网方案三)》

    文章目录 一.部署背景简介 二.部署工具介绍 三.部署方案介绍 四.部署环境信息 五.部署资源下载 六.部署准备工作 6.1.系统内核升级 6.2.设置主机名 6.3.环境初始化 6.4.ssh多机互 ...

  8. 云原生(二十七) | Kubernetes篇之自建高可用k8s集群前置概念与操作

    文章目录 自建高可用k8s集群前置概念与操作 一.内核升级 二.k8s集群架构

  9. 使用rancher rke2配置高可用k8s集群

    使用rancher rke2配置高可用k8s集群 1. 前言 1.1 官方介绍 1.2 说明 2. 主机环境准备 2.1 主机初始化 2.3 系统参数设置 2.4 NetworkManager设置 2 ...

最新文章

  1. 不是都需要ARM吗?
  2. openmv4闪灯说明_OpenMV Cam
  3. 定义一个有参宏SWAP(t,x,y),用以交换t类型的两个参数的值
  4. 雍正继承帝位,给职场中的我们的启示 --- 我看电视剧《雍正王朝》
  5. 2022年全球及中国晶圆探针卡市场需求策略与发展格局规模预测报告
  6. win10虚拟网络服务器,win10 虚拟专用网络服务器配置
  7. 国内最缺的架构实践,DDD领域驱动设计排第一!
  8. TensorFlow笔记(2) 常量与变量
  9. 测试流程 - 关于用例评审,给你的 9 点建议
  10. mysql学习之三:sql语句学习
  11. SAS数据分析之聚类分析
  12. 亚马逊中国公布2020年第一季度付费电子书畅销榜名单
  13. 【图像分割】基于计算机视觉实现视网膜图像中的血管分割附matlab代码
  14. 基础实验5-2.2 电话聊天狂人(Map的使用+例题)
  15. 关闭交互式服务检测(UI0Detect)
  16. 网站后台拿webshell
  17. 如何推动乡村振兴的落地
  18. java连锁美业收银系统源码
  19. dialog设置最大高度占比
  20. 2015年第十届蓝桥杯省赛C++A组【第二题:星系炸弹】

热门文章

  1. Jeecg 实现RESTful风格
  2. JuliaPro安装与使用
  3. Mac上使用OpenCV【Xcode】
  4. 再问数据中台 - 数据中台建设的最大的挑战是什么
  5. [转]Some Cool Tips for .NET
  6. bzoj 2631: tree
  7. 操作系统---进程篇
  8. 我的MVVM框架 v0.1发布
  9. Asp.net 自定义config文件读取
  10. 机房线路故障,引发多家公司不能上网,和自己de经历有感