Kubernetes学习指南:保姆级实操手册05——配置集群HA负载均衡

news/2024/9/17 5:05:40/ 标签: kubernetes, 负载均衡, 容器

kubernetes学习指南:保姆级实操手册05配置集群ha负载均衡">五、Kubernetes学习指南:保姆级实操手册05——配置集群HA负载均衡

简介: Keepalived 提供 VRRP 实现,并允许您配置 Linux 机器使负载均衡,预防单点故障。HAProxy 提供可靠、高性能的负载均衡,能与 Keepalived 完美配合

1、配置Keepalive

官方文档提供了两种运行方式(此案例使用选项1):

  • 选项1:在操作系统上运行服务
  • 选项2:将服务作为静态pod运行

参考文档:[https://github.com/kubernetes/kubeadm/blob/main/docs/ha-considerations.md#options-for-software-load-balancing]

1.1、安装keepalived组件

:三台master节点上安装

yum install -y keepalived
1.2、配置keepalived
### 在k8s-master01上设置:
[root@k8s-m01 ~]# cp /etc/keepalived/keepalived.conf /etc/keepalived/keepalived.conf.back
[root@k8s-master01 keepalived]# cat > /etc/keepalived/keepalived.conf << EOF
! Configuration File for keepalived
global_defs {router_id k8s-master01
}
vrrp_script check_apiserver {script "/etc/keepalived/check_apiserver.sh"interval 3weight -2fall 10rise 2
}vrrp_instance VI_1 {state MASTERinterface ens192virtual_router_id 51priority 100authentication {auth_type PASSauth_pass 123456}virtual_ipaddress {10.255.210.99}track_script {check_apiserver}
}EOF### 在k8s-master02上设置:
$ mkdir /etc/keepalived [root@k8s-master02 keepalived]# cat > /etc/keepalived/keepalived.conf << EOF
! Configuration File for keepalived
global_defs {router_id k8s-master02
}
vrrp_script check_apiserver {script "/etc/keepalived/check_apiserver.sh"interval 3weight -2fall 10rise 2
}vrrp_instance VI_1 {state BACKUPinterface ens192virtual_router_id 51priority 99authentication {auth_type PASSauth_pass 123456}virtual_ipaddress {10.255.210.99}track_script {check_apiserver}
}EOF### 在k8s-master03上设置:
$ mkdir /etc/keepalived[root@k8s-master03 keepalived]# cat > /etc/keepalived/keepalived.conf << EOF
! Configuration File for keepalived
global_defs {router_id k8s-master03
}
vrrp_script check_apiserver {script "/etc/keepalived/check_apiserver.sh"interval 3weight -2fall 10rise 2
}vrrp_instance VI_1 {state BACKUPinterface ens192virtual_router_id 51priority 98authentication {auth_type PASSauth_pass 123456}virtual_ipaddress {10.255.210.99}track_script {check_apiserver}
}EOF

扩展:参数说明

参数说明:router_id:节点ip,master每个节点配置自己的IPmcast_src_ip:节点IP,master每个节点配置自己的IPvirtual_ipaddress:虚拟IP,即VIP。interface:指定接口的名称。virtual_router_id:有效值为0-255,可以理解为一个组ID,只有相同的ID才被确认为一个组。如果每个keepalived实例修改的ID不一致,则会出现各自有一个VIP的现象。    
1.3、编写健康检查脚本
[root@k8s-master01 keepalived]# cat > /etc/keepalived/check_apiserver.sh   <<EOF
#!/bin/sh  errorExit() {  echo "*** $*" 1>&2  exit 1  
}  curl --silent --max-time 2 --insecure https://localhost:16443/ -o /dev/null || errorExit "Error GET https://localhost:16443/"  
if ip addr | grep -q 10.255.210.99; then  
curl --silent --max-time 2 --insecure https://10.255.210.99:16443/ -o /dev/null || errorExit "Error GET https://10.255.210.99:16443/"  
fi  EOFchmod +x  /etc/keepalived/check_apiserver.shscp /etc/keepalived/check_apiserver.sh root@k8s-master02:/etc/keepalived/
scp /etc/keepalived/check_apiserver.sh root@k8s-master03:/etc/keepalived/
1.4、启动Keepalived
systemctl enable keepalived --now; systemctl restart keepalived.service ;systemctl status keepalived.service
1.5、测试keepalived
ip a   
#查看VIP在那个节点   systemctl stop keepalived.service   
#VIP所在节点停止服务,观察是否飘移VIP  systemctl restart keepalived.service   
#重启服务后,VIP将迁回

2、配置Haproxy

2.1、安装Haproxy
yum install -y haproxy
2.2、配置haproxy.cfg
globalmaxconn  2000ulimit-n  16384log  127.0.0.1 local0 errstats timeout 30sdefaultslog globalmode  httpoption  httplogtimeout connect 5stimeout client  50stimeout server  50stimeout http-request 15stimeout http-keep-alive 15sfrontend monitor-inbind *:33305mode httpoption httplogmonitor-uri /monitorlisten statsbind    *:8006mode    httpstats   enablestats   hide-versionstats   uri       /statsstats   refresh   30sstats   realm     Haproxy\ Statisticsstats   auth      admin:adminfrontend k8s-masterbind 0.0.0.0:16443bind 127.0.0.1:16443mode tcpoption tcplogtcp-request inspect-delay 5sdefault_backend k8s-masterbackend k8s-mastermode tcpoption tcplogoption tcp-checkbalance roundrobindefault-server inter 10s downinter 5s rise 2 fall 2 slowstart 60s maxconn 250 maxqueue 256 weight 100server k8s-master01 10.255.210.1:6443  checkserver k8s-master02 10.255.210.2:6443  checkserver k8s-master03 10.255.210.3:6443  check
2.3、启动haproxy
systemctl restart haproxy.service;systemctl status haproxy.service
2.4、查看端口
 ss -alnupt |grep 16443
tcp    LISTEN     0      2000      *:16443                 *:*                   users:(("haproxy",pid=53056,fd=6))
tcp    LISTEN     0      2000   127.0.0.1:16443                 *:*                   users:(("haproxy",pid=53056,fd=7))
[root@k8s-master02 ~]# ss -alnupt |grep 6443
tcp    LISTEN     0      2000      *:16443                 *:*                   users:(("haproxy",pid=53056,fd=6))
tcp    LISTEN     0      2000   127.0.0.1:16443                 *:*                   users:(("haproxy",pid=53056,fd=7))

http://www.ppmy.cn/news/1522879.html

相关文章

uniapp如何监听页面滚动?

在uni-app中&#xff0c;监听页面滚动主要通过在页面的.vue文件中的onPageScroll生命周期函数来实现。onPageScroll函数会在页面滚动时触发&#xff0c;你可以在这个函数中获取到当前页面的滚动位置等信息。 下面是一个简单的示例&#xff0c;展示了如何在uni-app中监听页面滚…

解决docker启动失败的错误“Status: unknown flag: --graph”

最近服务器重启以后docker启动失败了&#xff0c;使用以下命令查看 Docker 的日志文件以获取更详细的错误信息。 journalctl -u docker.service -e 9月 05 10:50:06 iZj6c94a19bsvkhti6zw6oZ dockerd[4379]: Status: unknown flag: --graph 9月 05 10:50:06 iZj6c94a19bsvkhti…

C++音视频开发笔记目录

目录 &#x1f315;基础知识&#x1f319;详解FFmpeg&#x1f319;播放音视频时发生了什么&#xff1f; & 视频的编解码 & H264是什么&#xff1f; & MP4是什么&#xff1f; &#x1f315;流媒体环境搭建&#x1f319;windows安装FFMpeg&#x1f319;docker一键部署…

Oracle SQL Developer:数据库开发与数据管理的利器

在数据库管理和开发领域&#xff0c;拥有一个强大而灵活的工具是至关重要的。Oracle SQL Developer 是 Oracle 公司提供的一个免费集成开发环境&#xff0c;它专为数据库开发、管理和数据建模而设计。本文将详细介绍 Oracle SQL Developer 的功能、特点以及如何使用它来执行数据…

面试真题 | 记录一次面试真题

一、基本问题(80%) 1、const 和 static 的作用: const(常量): 用于定义常量值,保证变量不可被修改。在函数参数中使用const可以保证函数内不会修改参数值。用于定义常量成员函数,表明该成员函数不会修改对象的状态。可以与指针一起使用,如const int*表示指针指向的值不…

单项链表的原地反转

逻辑图如下所示&#xff1a; 只需要将需要反转的节点放到头节点位置即可&#xff0c; 使用两个指针一个指针指向需要反转的节点&#xff0c;另一个指针指向需要反转的指针的前驱节点&#xff08;其实也就是元链表的头节点&#xff09; 操作过程&#xff1a; 1 2 3 4 5 2 1 …

Base x DAOBase: Base生态聚会新加坡站,共筑链上未来

备受期待的 Base 社区聚会将于新加坡 Token2049 期间盛大举行&#xff0c;这为 Base 的支持者和生态建设者们提供了一个绝佳的相聚机会。本次活动由 Base、 DAOBase以及其他合作方共同支持。Base 是全球知名交易所 Coinbase 研发的以太坊 Layer2 扩容方案&#xff0c;致力于为用…

html css js 编程简单实现 随机抽奖 练习小项目

我们经常在某些网站上 看到一些 抽奖的活动&#xff0c;比如大转盘 随机抽奖 这种抽奖程序是怎么实现的呢&#xff1f;下面分享一个代码 简单的 实现了一下 随机抽奖的逻辑 对于网页的 美观度 就不分享了 主要是分享 js怎么 随机的 让 奖品滚顶起来 然后 某个节点 停止滚动 从而…

JavaWeb后端开发总结(3)

AOP基础 AOP概述 首先我们要知道AOP是什么&#xff1f; 看下图 个人解析&#xff1a; AOP叫做面向切面编程&#xff0c;但是实际上就是面向方法编程 图中下面一部分是一个AOP的案例 AOP快速入门案例代码实现 案例&#xff1a;测出业务中各个业务方法所需的执行时间 如果…

冒泡排序算法介绍

冒泡排序算法介绍 如果真的累了&#xff0c;就拉上窗帘关上手机关掉闹钟深呼吸一口气钻进被窝&#xff0c;好好地睡一觉&#xff0c;难熬的日子总需要一些温暖&#xff0c;而什么都不如被窝的温暖来的踏实。 冒泡排序是一种经典的排序算法&#xff0c;它通过重复遍历待排序的序…

【机器学习-一-基础概念篇】

机器学习 定义分类算法 应用 定义 机器学习最早是被Arthur Samuel 提出的一个概念&#xff0c;指计算机无需明确编程即可学习的研究领域。1950年他发明的跳棋程序&#xff0c;这个人机对弈游戏让他的声名鹊起&#xff0c;机器学习这个概念才进入大众的是视线。 在这个跳棋程序…

智能合约漏洞(四)

前言 在前面的文章中&#xff0c;我们讨论了整数溢出/下溢和时间依赖漏洞。今天&#xff0c;我们将继续探讨智能合约中两种常见的安全问题&#xff1a;拒绝服务&#xff08;Denial of Service, DoS&#xff09;和恶意合约依赖漏洞。这些漏洞可能导致合约功能的中断或意外的恶意…

机器学习引领未来:赋能精准高效的图像识别技术革新

图像识别技术近年来取得了显著进展,深刻地改变了各行各业。机器学习,特别是深度学习的突破,推动了这一领域的技术革新。本文将深入探讨机器学习如何赋能图像识别技术,从基础理论到前沿进展,再到实际应用与挑战展望,为您全面呈现这一领域的最新动态和未来趋势。 1. 引言 …

windows下安装并使用nvm

目录 一.准备工作&#xff1a;卸载node 卸载步骤 二.下载nvm 三.安装nvm 三.配置下载源【重要】 四.使用nvm安装node.js 五.nvm常用命令 六.卸载nvm 一.准备工作&#xff1a;卸载node 如果电脑上已经有node&#xff0c;那么我们需要先完全卸载node&#xff0c;再安装…

ArcGIS Pro SDK (十二)布局 10 布局导出

ArcGIS Pro SDK (十二)布局 10 布局导出 文章目录 ArcGIS Pro SDK (十二)布局 10 布局导出1 布局导出1.1 将布局导出为 PDF1.2 将地图框导出为 JPG1.3 将与地图框关联的地图视图导出到 BMP1.4 将地图系列导出为单个 PDF1.5 将地图系列导出到单个 TIFF 文件2 布局选项2.1 获…

程序的格式框架与缩进

引言 在上一课时中&#xff0c;我们介绍了 Python 的基本概念&#xff0c;并成功运行了第一个 Python 程序。本课时将深入探讨 Python 程序的基本结构、缩进的重要性&#xff0c;以及如何正确使用注释。通过本课时的学习&#xff0c;你将更好地理解 Python 代码的组织方式&…

【重学 MySQL】十八、逻辑运算符的使用

【重学 MySQL】十八、逻辑运算符的使用 AND运算符OR运算符NOT运算符异或运算符使用 XOR 关键字使用 BIT_XOR() 函数注意事项 注意事项 在MySQL中&#xff0c;逻辑运算符是构建复杂查询语句的重要工具&#xff0c;它们用于处理布尔类型的数据&#xff0c;进行逻辑判断和组合条件…

linux中使用rust语言在不同进程之间通信

第一种:使用mmap映射相同文件 fn main() {let pid = std::process::id();println!(

Xilinx FPGA 原语解析(二):IBUFDS差分输入缓冲器(示例源码及仿真)

目录 前言&#xff1a; 一、原语使用说明 二、原语实例化代码模版 三、使用示例 1.设计文件代码 2.仿真文件代码 3.仿真结果 前言&#xff1a; 本文主要参考资料xilinx手册&#xff0c;《Xilinx 7 Series FPGA and Zynq-7000 All Programmable SoC Libraries Guide for…

免费OCR 文字识别工具

免费&#xff1a;本项目所有代码开源&#xff0c;完全免费。 方便&#xff1a;解压即用&#xff0c;离线运行&#xff0c;无需网络。 高效&#xff1a;自带高效率的离线OCR引擎&#xff0c;内置多种语言识别库。 灵活&#xff1a;支持命令行、HTTP接口等外部调用方式。 功能…