k8s的高可用集群搭建,详细过程实战版
kubernetes高可用集群的搭建
前面介绍过了k8s单master节点的安装部署
今天介绍一下k8s高可用集群搭建
环境准备:
vip :192.168.121.99 keeplive
master01:192.168.121.153 centos7
master02:192.168.121.154 centos7
master03:192.168.121.155 centos7
机器环境先准备三台干净的主机,跟着我前面介绍的k8s部署做前面k8s部署的文章做
我的前一篇文章已经介绍的很详细了,所以我这里就不介绍前期的环境配置了
跟着做到如下位置

下面这个也要安装
yum install kubectl-1.26.3
然后前期的准备工作就差不多了
下面就是的k8s高可用集群和单机部署的区别
首先下载代理和高可用的工具
yum install -y haproxy keepalived
然后编写haproxy的配置文件,记得修改自己的主机名
每个节点都一样的配置
vim /etc/haproxy/haproxy.cfg
globallog 127.0.0.1 local2chroot /var/lib/haproxypidfile /var/run/haproxy.pidmaxconn 4000user haproxygroup haproxydaemonstats socket /var/lib/haproxy/statsdefaultsmode tcplog globaloption httplogoption dontlognulloption http-server-closeoption forwardfor except 127.0.0.0/8option redispatchretries 3timeout http-request 10stimeout queue 1mtimeout connect 10stimeout client 1mtimeout server 1mtimeout http-keep-alive 10stimeout check 10smaxconn 3000frontend kube-apibind :16443mode tcpmaxconn 50000default_backend kube-masterbackend kube-masterbalance roundrobinserver master1 192.168.121.153:6443 weight 1 check inter 5s rise 2 fall 3server master2 192.168.121.154:6443 weight 1 check inter 5s rise 2 fall 3server master3 192.168.121.155:6443 weight 1 check inter 5s rise 2 fall 3
然后到keepalived的配置
[root@node101 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
global_defs {router_id server153vrrp_mcast_group4 224.5.5.5script_user rootenable_script_security
}vrrp_script chklive {script /etc/keepalived/chkhaproxy.shinterval 1weight -3timeout 5
}vrrp_instance VI_1 {nopreemptstate BACKUPinterface ens33priority 100virtual_router_id 51advert_int 3authentication {auth_type PASSauth_pass 1111}virtual_ipaddress {192.168.121.99}track_script {chklive}
}
这里要记得修改两个地方,就是主机和虚拟VIP

然后就编写脚本监控haproxy的存活来实现vip的故障切换
vim /etc/keepalived/chkhaproxy.sh
#! /bin/bashif ! netstat -nlpt | grep -w "16443" &> /dev/null
thensystemctl stop keepalived
fiexit 0
然后记得赋予脚本执行权限
chmod +x /etc/keepalived/chkhaproxy.sh
然后配置文件就配置好了
接下来启动haproxy和keepalived
systemctl enable --now haproxy
systemctl enable --now keepalived
然后就查看启动情况
systemctl status haproxy keepalived
都启动以后,看vip在三台机子中的某一台就可以了
然后就开始初始化集群,
随便在哪一台机子上都行,只在一台机子上操作就可以了
kubeadm init --apiserver-advertise-address=192.168.121.153 --kubernetes-version=v1.26.3 --image-repository registry.aliyuncs.com/google_containers --cri-socket unix:///var/run/cri-dockerd.sock --service-cidr=10.1.0.0/16 --pod-network-cidr=10.2.0.0/16 --token-ttl=0 --control-plane-endpoint "192.168.121.99:16443" --upload-certs
和之前单节点集群的初始化有一点不同而已,原理都是差不多的

初始化完成以后就是这个样子的,然后我们去把另外两台主机也加进来
kubeadm join 192.168.121.99:16443 --token 99wnxp.kulhlbpbzes315zl --discovery-token-ca-cert-hash sha256:037bfd86aa3f0f7dd011e49a4d0c167195116f44ee3f56bfa165ce569fa80df5 --control-plane --certificate-key cdf7e38d13711c37c032732843639f313ade8b1b041d63f4665679f8eef1dd82 --cri-socket unix:///var/run/cri-dockerd.sock
有几台master节点就加几台,都是一样的操作,当然也是得规划好的,不然vip分不到
然后每个节点都执行下面得命令将环境变量设置一下
mkdir -p $HOME/.kubesudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/configsudo chown $(id -u):$(id -g) $HOME/.kube/config
然后随便在一台master节点都可以查询节点情况
[root@server153 ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
server153 NotReady control-plane 11m v1.26.3
server154 NotReady control-plane 5m55s v1.26.3
server155 NotReady control-plane 2m25s v1.26.3
这样我们得k8s高可用集群就搭建好了
node节点加入得方式都是一样的,我的之前的博文介绍过了,网络配置也是,忘记了可以去看看
希望对大家有帮助
相关文章:
k8s的高可用集群搭建,详细过程实战版
kubernetes高可用集群的搭建 前面介绍过了k8s单master节点的安装部署 今天介绍一下k8s高可用集群搭建 环境准备: vip :192.168.121.99 keeplive master01:192.168.121.153 centos7 master02:192.168.121.154 centos7 master03&a…...
【20年扬大真题】编写对数组求逆的递归算法
【20年扬大真题】 编写对数组求逆的递归算法 void swap(int* a, int* b) {int tmp *b;*b *a;*a tmp; } void Ni(int arr[],int left,int right) {if (left > right) {return;}swap(&arr[left], &arr[right]);Ni(arr, left 1, right - 1); } int main() {int ar…...
日志门面slf4j与常用的日志框架Log4j,Logback和Log4j2
slf4j 是众多日志框架接口的集合(俗称日志门面),它不负责具体的日志实现,只在编译时负责寻找合适的日志框架进行绑定,各日志框架通过扩展jar包中的适配器与slf4j建立适配 SLF4J可以和Log4j、Logback、Log4j2、JUL等日志框架配合使用,这里主要…...
使用ssh在本地环境(Windows)连接虚拟机以及其中的docker容器
配置虚拟机防火墙 防火墙的一系列操作需要root权限,默认是没有root密码的,所以首先需要设置root密码: sudo passwd root按提示完成root密码设置 切换到root账户 su root启用22端口并重启防火墙 firewall-cmd --permanent --add-port22/tc…...
没收到Win11 23H2正式版的推送怎么升级到23H2
没收到Win11 23H2正式版的推送怎么升级到23H2?用户反映自己没有收到Win11 23H2正式版的更新推送,又想升级为23H2版本。接下来小编给大家详细介绍不同的升级方法,帮助更多的用户完成Win11 23H2系统的更新,升级后就能体验到Win11 23…...
SpringBoot整合Redis使用基于注解的缓存
环境准备 注解 EnableCaching CacheConfig CacheConfig 提供了一种在类级别共享公共缓存相关设置的机制。 | 参数 | 作用 | | | — | — | — | | cacheNames | 使用在类上的默认缓存名称 | | | keyGenerator | 用于类的默认KeyGenerator的bean名称 | | | cacheManager | 自定…...
STM32:时钟树原理概要
在一般情况下只要在CubeIDE中将RCC下的高速时钟源设置成晶振,随后在时钟配置中把HCLK设置到最大频率(比如STM32F103的最高频率是72MHZ ),CubeIDE就会帮我们自动调节其它参数到合适的值。这样我们芯片就可以全速运行了。 一、时钟信…...
Python量化--诺贝尔奖获得者布莱克-斯科尔斯期权定价公式在日间交易中的应用
“我们不能让你在不了解一点期权定价基础知识的情况下离开麻省理工学院,”Andrew Lo 教授在麻省理工学院的 15.401 金融理论课上对学生们说道。虽然我还不是麻省理工学院的学生,但这句话给了我一个直觉:期权定价一定极其重要。由于像麻省理工学院毕业生这样的精英金融人士都…...
Redis 5 种基本数据类型详解
Redis 共有 5 种基本数据类型:String(字符串)、List(列表)、Set(集合)、Hash(散列)、Zset(有序集合)。 这 5 种数据类型是直接提供给用户使用的&…...
LeetCode8-字符串转换整数(atoi)
目录 1.大神解法2.我的辣鸡解法:3.整数相加的溢出判断(chaGPT代码)4.整数相乘溢出判断(chatGPT代码) 到目前为止比较简单容易理解的一个代码: 参考链接: 🔗:【8. 字符串转换整数 String to Integer (atoi) 【LeetCode 力扣官方题解】-哔哩哔哩】 1.大神解法 累乘和…...
算法分析与设计课后练习22
设W(5,7,10,12,15,18,20)和M35,使用过程SUMOFSUB找出W种使得和数等于M的全部子集并画出所生成的部分状态空间树...
芯片IO口不加电阻会怎样?
芯片IO口不加电阻会怎样? 可能会导致以下几个后果: 1.高电流问题,IO口没有电阻限流,当与外部设备直接连接时,就可能会导致过大的电流流过IO口,这就可能损坏IO口,引起短路或烧坏其它电路组件。像…...
智慧化工园区信息化整体解决方案:PPT全53页,附下载
关键词:智慧化工园区建设方案,智慧化工园区建设规范,智慧化工园区建设指南 一、售智慧化工园区建设背景 随着工业化、信息化和数字化进程的加速,化工园区面临着越来越多的挑战,如安全生产、环境保护、能源消耗等问题…...
深度学习之三(卷积神经网络--Convolutional Neural Networks,CNNs)
概念 卷积神经网络(Convolutional Neural Networks,CNNs)是一种特殊的神经网络结构,专门用于处理具有网格状结构(如图像、音频)的数据。CNN 在计算机视觉领域取得了巨大成功,广泛应用于图像识别、物体检测、图像生成等任务。以下是 CNN 的主要理论概念: 在数学中,卷…...
竞赛选题 目标检测-行人车辆检测流量计数
文章目录 前言1\. 目标检测概况1.1 什么是目标检测?1.2 发展阶段 2\. 行人检测2.1 行人检测简介2.2 行人检测技术难点2.3 行人检测实现效果2.4 关键代码-训练过程 最后 前言 🔥 优质竞赛项目系列,今天要分享的是 行人车辆目标检测计数系统 …...
【链表的说明、方法---顺序表与链表的区别】
文章目录 前言什么是链表链表的结构带头和不带头的区别 链表的实现(方法)遍历链表头插法尾插法任意位置插入一个节点链表中是否包含某个数字删除链表某个节点删除链表中所有关键字key清空链表所有节点 ArrayList 和 LinkedList的区别总结 前言 什么是链…...
彻底解决electron-builder安装问题与npm下载配置问题
electron-builder这个工具每次安装最少要耗费我整整一天的时间。由于只需安装一次即可使用就没去做好笔记,但有时候涉及到更新,或者换了新电脑,这个环境还得重新安装。为了避免下次安装浪费一整天时间,特此做好笔记。 虽然网上找了很多资料但都不详细,现在我们从底层来理解…...
变量命名的规则与规范
变量命名的规则与规范 变量命名的规则不能使用关键字字母须区分大小写由字母、数字、_、$组成,且不能以数字开头 变量命名的规范起名须有一定的意义遵守小驼峰命名法 变量命名的规则 不能使用关键字 在JavaScript中声明变量不能使用JavaScript的常用关键字&#x…...
【开源】基于Vue和SpringBoot的服装店库存管理系统
项目编号: S 052 ,文末获取源码。 \color{red}{项目编号:S052,文末获取源码。} 项目编号:S052,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 角色管理模块2.3 服…...
怎样用css画一个圆?
要使用 CSS 画一个圆,可以使用 border-radius 属性为一个元素添加圆角,将 width 和 height 设置为相等的值,从而形成一个圆形。 以下是一个使用 CSS 画圆的简单示例: .circle {width: 100px;height: 100px;background-color: #3…...
有奖调研与进度提醒|Google Play Games Level Up 计划
Google Play Games Level Up 计划旨在发掘并奖励玩家体验出色的游戏,提供各种强大的工具和推广资源来助力您的游戏业务蓬勃发展。我们将为您推出有关 Level Up 计划的系列精彩内容,欢迎您关注 #Level Up 计划合集。在全球化的航线上,游戏出海…...
为什么头部金融/运营商已全员切换AISMM?SITS2026最新追踪:6个月落地窗口期正在关闭,第3批认证通道下周截止
更多请点击: https://intelliparadigm.com 第一章:SITS2026总结:AISMM模型的核心价值 AISMM(Adaptive Intelligent Service Mesh Model)是SITS2026国际会议中正式发布的下一代服务网格建模框架,其核心突破…...
轻量级批量任务编排利器batchai:从原理到实战应用
1. 项目概述:一个被低估的批量任务编排利器在数据处理、模型训练、自动化测试这些日常开发工作中,我们常常会遇到一个看似简单却异常繁琐的问题:如何高效、可靠地管理成百上千个独立但又相似的任务?比如,你需要用不同的…...
基于MCP协议与Substack官方API构建AI数据助手
1. 项目概述:用AI助手深度管理你的Substack内容生态 如果你和我一样,同时运营着几个Substack新闻通讯,那你肯定对那种在多个后台、数据仪表盘之间来回切换的繁琐感深有体会。查看最新的文章阅读量、追踪付费订阅者的增长趋势、对比不同栏目的…...
OpenClaw VS Code扩展:AI辅助编码与安全审计的深度集成实践
1. 项目概述:OpenClaw VS Code 扩展如果你和我一样,每天大部分时间都泡在 VS Code 里,同时又在探索如何让 AI 更深度地融入开发工作流,那么 OpenClaw 这个 VS Code 扩展绝对值得你花时间研究。它不是一个简单的聊天机器人插件&…...
5G波形技术革新:块滤波OFDM与同频全双工实战验证
1. 项目概述:一次面向未来的5G波形技术实地验证2017年初,当全球通信产业还在为5G的最终标准争论不休时,法国格勒诺布尔的CEA-Leti研究所已经准备将他们的研究成果从实验室推向真实的天空。这不仅仅是一次普通的“外场测试”,而是一…...
有哪些降重软件能保住论文原意,不会改得逻辑不通?
论文降重最怕啥?改完重复率达标了,核心意思却跑偏,逻辑漏洞百出,专业术语乱改一通,导师一看就知道是 AI 瞎改的。其实选对工具,既能把重复率压到合格线,又能100% 保住论文原意、逻辑连贯、术语精…...
形式化方法
形式化方法是基于数学、逻辑、符号化语言,对软件系统进行合格建模、规范描述、逻辑推理和正确验证的一套开发与分析方法。不依靠人工测试猜测bug,而是用数学方式证明程序和系统是否正确。形式化方法的核心作用在于,它可以用严格的逻辑写清系统…...
LangChain框架解析:从RAG到Agent的AI应用开发实践
1. 从零开始理解LangChain:为什么它成了AI应用开发的“脚手架”?如果你最近在捣鼓大语言模型(LLM)应用,无论是想做个智能客服、文档分析工具,还是更复杂的多步骤推理Agent,大概率会听到一个名字…...
免费解锁WeMod Pro高级功能的终极教程:Wand-Enhancer完整指南
免费解锁WeMod Pro高级功能的终极教程:Wand-Enhancer完整指南 【免费下载链接】Wand-Enhancer Advanced UX and interoperability extension for Wand (WeMod) app 项目地址: https://gitcode.com/gh_mirrors/we/Wand-Enhancer 你是否渴望体验WeMod Pro的全部…...
