给k8s集群添加负载均衡的能力

news2024/11/25 21:20:07

常识: k8s没有自带负载均衡能力, 需云服务提供商来做负载均衡, 或者自己装负载均衡控制器. 负载均衡控制器有很多, 这次装Ingress-Nginx

https://kubernetes.github.io/ingress-nginx/

文档里根据环境有很多安装方式,不要用quick start的,因为那是云环境下的.
我们的k8s是自己的服务器上搭建的, 用

https://kubernetes.github.io/ingress-nginx/deploy/#bare-metal-clusters

然后就发现ok了, 原来的nodeport的服务, 只能指定某个node, 且请求就是在那个node执行的, (没有负载均衡,同node内的多pod应该是网络层的负载均衡 见下面的文章 )
装了之后请求到某个node后,请求会被路由到其他node, 就像docker swarm做的一样,至此基本能力已经具备.

有个小问题, 因为浏览器访问会带keepalive的header, 所以会连续命中某个pod, 而 curl就不会, 因为curl是不带keepalive的.正如下面文章的解释:

https://itnext.io/inspecting-and-understanding-service-network-dfd8c16ff2c5

这会是个问题,因为我们是会某个机器发出很多请求到集群.
那就要试试修改 Ingress-Nginx 的Config Map ,调整负载均衡策略, 看能不能达到想要的效果.(姑且不管这个需求合不合理)
如何修改config map:

https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/configmap.md

其中找到了
在这里插入图片描述
要改的就是这个字段, 第三列的默认值, 确实轮询是基本的
点进去之后
在这里插入图片描述
说的annotation是部署的时候的一些值,
见:

https://github.com/kubernetes/ingress-nginx/blob/main/docs/user-guide/nginx-configuration/annotations.md

也就是yaml里的 kind: Ingress 那部分的设置 先不看, 先看全局的

ok 验证下来,当前最新版本即registry.k8s.io/ingress-nginx/controller:v1.7.1
虽然文档上说只有两个取值, 要么默认的round_robin 要么还不知道是什么的ewma
但,

https://nginx.org/en/docs/http/load_balancing.html

的三个复杂均衡策略, 是都可以用的,
其中前两个, 即round-robinleast-connected 两个线程一起调用的时候用kubectl top pod 查看是只有一个pod在运行所有请求
在这里插入图片描述

使用第三个即ip-hash 的时候, 会有两个pod一起干活
在这里插入图片描述

ok 至此算是勉强达到我们的目标, 这只是现象,具体原因还有具体调查.

现在的解决方案是, 如果要大批量数据运行, 就用ip-hash策略, 同时启动多线程访问, pod有几个,开几个多线程.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/513776.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

微信小程序商品分类页最佳实践

首先我们来分析下UI小妹发来的产品原型图: 微信小程序商品分类页需要实现 1.单击左边的商品类目,右侧实现联动跳转到对应商品类目标题; 2.触屏拖动右侧商品列表,右侧跳转到对应商品类目; 2.分析需求我们可以把屏幕分…

使用阿里云服务器三分钟搭建网站教程(详细图文详解)

使用阿里云服务器快速搭建网站教程,先为云服务器安装宝塔面板,然后在宝塔面板上新建站点,阿里云服务器网以搭建WordPress网站博客为例,来详细说下从阿里云服务器CPU内存配置选择、Web环境、域名解析到网站上线全流程: …

5月编程排行榜出炉,最佳编程语言是谁?

技术的发展日新月异,作为开发者,应该时刻关注这些变化,不断学习才能跟上时代步伐。 编程语言层出不穷,关于“ 最佳编程语言 ”的争论也从未停止,网友们各抒己见...... 网友A: 人生苦短,我选Pyt…

我做了一个 VSCode 插件版的 ChatGPT

大家好,我是风筝,公众号:「古时的风筝」 其实很早之前就想学学 VSCode 插件开发了,但是又不知道做什么,加上我这半吊子前端水平,迟迟没有动手。 最近 ChatGPT 火的一塌糊涂,我也一直在用&#…

StarRocks 3.0 极速统一的湖仓新范式

2023 年 4 月,StarRocks 3.0 版本正式发布,正式开启了 StarRocks 极速统一的新篇章。从 OLAP 到 Lakehouse,从存算一体到存算分离,从 ETL 到 ELT,经过两个大版本后 StarRocks 在为用户创造极速统一的数据分析新范式上有…

视频转二维码怎么操作?简单一步在线生成视频二维码

当今各种各样的视频、电影、电视剧短视频等丰富这我们的生活。但是视频的体积一般都比较大不方便保存和传播,这时候我们就可以把视频、电影等做成二维码图片。扫一扫就能随时随地的观看,非常的方便。那么,要怎么操作呢? 一、什么工…

如何在MySQl数据库中给已有的数据表添加自增ID?

前言: 由于使用MySQL数据库还没有多久的缘故,在搭建后台往数据库导入数据的时候发现新增的表单是没有自增id的,因次就有了上面这个问题。解决方法1、给某一张表先增加一个字段,这里我们就以event_20230417这张表来举例,在数据库命令行输入下面…

滴水逆向三期笔记与作业——02C语言——03 数据类型_IF语句

OneNote防丢失。 海哥牛逼。 目录 一、ASCII编码二、GB2312-80编码三、全局变量和局部变量四、分支结构五、数组作业12345 一、ASCII编码 1、ASCII 码使用指定的 7 位或 8 位二进制数组合来表示128或 256 种可能的字符。 2、标准 ASCII 码使用 7 位二进制数来表示所有的大写和…

SSM框架学习-AOP介绍及简单案例

1. AOP介绍 面向切面编程(Aspect-oriented programming,简称AOP),是一种编程思想和技术,用于将应用程序的业务逻辑与系统服务(例如事务、日志记录、安全性等)进行分离。AOP可以通过在代码中插入…

多ip,多端口、多域名访问多网站

目录标题 多ip访问多网站当前主机配置多个ip同行配置基于多个虚拟主机标签配置多个网站站点根据配置创建对应资源文件 多端口访问多网站根据配置创建对应资源文件重启httpd服务 基于域名访问多网站创建对应资源文件重启服务 排错方式启动不成功(配置文件有问题&…

技术好≠薪资高,业务价值才是王道

2023年软件测试为什么发生巨变? 2023年了,软件测试行业发生了很大的改变,就像今年的金三银四不像是一个高峰期,我觉得有以下原因: 1、整个IT技术人员在行业内角色的转变 变化的一个原因就是现在变成了纯业务价值的导…

stm32 iic调试ds1307 rtc时钟

使用代码 (1条消息) stm32iic调试ds1307rtc时钟,采用iic接口,驱动软件,可以设置,读取ds1307时钟代码资源-CSDN文库 使用STM32调试ds1307,采用iic接口,由于有个项目需要使用外部RTC功能,所以需…

JimuReport积木报表 v1.5.8版本发布—免费的数据可视化报表

项目介绍 一款免费的数据可视化报表,含报表和大屏设计,像搭建积木一样在线设计报表!功能涵盖,数据报表、打印设计、图表报表、大屏设计等! Web 版报表设计器,类似于excel操作风格,通过拖拽完成报…

用frp开源工具,实现内网穿透(详细教程)

本文转载于: https://blog.csdn.net/qq_40903527/article/details/123850647 选取其中的frp内网穿透方式,给大家分享本此教程供大家参考。 ^ - ^ 如果你有一台云服务器(有公网IP),或者有使用权,那么 在开…

Vue使用keep-Alive实现从详情页返回到列表页,还能记住当前的page页码以及切换的tab选项

哈喽,大家好,今天遇到一个小需求,就是要求从订单详情页返回到订单列表页,定位到跳转前的page页码和切换对应的tab选项 从我看了大量博主写的文章后,发现可以使用vue中的keep-Alive知识 下面是Vue中讲解keep-alive K…

我先肝了,爆火的Java全能笔记,分布式/开源框架/微服务/性能调优全有

前言 程序员,立之根本还是技术,一个程序员的好坏,虽然不能完全用技术强弱来判断,但是技术水平一定是基础,技术差的程序员只能CRUD,技术不深的程序员也成不了架构师。程序员对于技术的掌握,除了…

如何选择合适的智能氮气柜?

随着电子产品的普及,IC、半导体、精密元件、检测仪器之类的物品对湿度要求越来越高,潮湿、霉菌和金属氧化所造成的损害,随时在发生。人们对于物品的存放环境要求逐渐提高,利用防潮设备如智能氮气柜、电子防潮柜来存储产品也越来越…

《编程思维与实践》1060.浮点数加法

《编程思维与实践》1060.浮点数加法 题目 思路 浮点数可以分为[整数部分].[小数部分],可以将两个部分分开处理,最后再合并,但在处理四舍五入时较为繁琐, 为了方便起见,这里采用将两个部分一起处理的方式: 由于浮点数不超过500位:整数部分最多500位,小数部分最多500位, 所以加法…

gpio 子系统驱动LED

gpio 子系统 API 函数 1、gpio_request 函数 gpio_request 函数用于申请一个 GPIO 管脚,在使用一个 GPIO 之前一定要使用 gpio_request 进行申请,函数原型如下: int gpio_request(unsigned gpio, const char *label)/*函数参数和返回值含义如…

企业应该如何做到数字化转型成功?

01 成长型企业数字化转型的意义 成长型企业想要实现数字化转型,那么我们需要先弄明白,对于成长型企业而言,数字化转型到底具有什么意义?希望实现哪些目标? 可以归结为以下四点: 提升企业的生产力和效率&…