kubenetes-服务发现和负载均衡
一、服务发布
kubenetes把服务发布至集群内部或者外部,服务的三种不同类型:
- ClusterlP
- NodePort
- LoadBalancer
ClusterIP是发布至集群内部的一个虚拟IP,通过负载均衡技术转发到不同的pod中。
NodePort解决的是集群外部访问的问题,用户可能不能访问pod ip,但是可以访问Node ip,通过nodeIP:nodePort方式提供给外部流量访问。
LoadBalancer类型需要和外部负载均衡设备做交互,需要特定的controller来支撑。
二、服务发现
- 微服务架构是由一系列职责单一的细粒度服务构成的分布式网状结构,服务之间通过轻量机制进行通信,这时候必然引入一个服务注册发现问题,也就是说服务提供方要注册通告服务地址,服务的调用方要能发现目标服务。
- 同时服务提供方一般以集群方式提供服务,也就引入了负载均衡和健康检查问题。
2.1 集中式LB服务发现

集中式LB方案实现简单,在LB上也容易做集中式的访问控制,这一方案目前还是业界主流。
集中式LB的主要问题是单点问题,所以服务调用流量都经过LB,当服务数量和调用量大的时候,LB容易成为瓶颈,且LB一旦发生故障,对整个系统的影响将是灾难性的。
集中式LB在消费者和服务提供方之间增加了一跳,有一定性能开销。
2.2 客户端LB服务发现

客户端LB是一种分布式模式,LB和服务发现能力被分散到每一个服务消费者的进程内部,同时服务消费方和服务提供方之间是直接调用,没有额外开销,性能比较好。该方案以客户库(Client Library)的方式集成到服务调用方进程里头,如果企业内有多种不同的语言栈,就要配合开发多种不同的客户端,有一定的研发和维护成本。
一旦客户端跟随服务调用方发布到生产环境中,后续如果要对客户库进行升级,势必要求服务调用方修改代码并重新发布,所以该方案的升级推广有不小的阻力。
2.3 客户端独立LB进程服务发现

客户端独立LB进程也是一种分布式方案,没有单点问题,一个LB进程挂了只影响该主机上的服务调用方。
服务调用方和LB之间是进程间调用,性能好。
简化了服务调用方,不需要为不同语言开发客户库,LB的升级不需要服务调用方改代码。
不足是部署较复杂,环节多,出错调试排查问题不方便。
三、负载均衡
3.1 互联网架构发展历程

3.2 网络包格式

所谓的负载均衡技术,就是在网络包上修改转化技术,比如将目标ip和port进行修改。在链路层修改目标MAC地址,就是链路层的负载均衡,也叫7层负载均衡。在传输层和网络层修改目标ip和port,就是传输层和网络层的负载均衡,统称4层负载均衡。
3.3 负载均衡技术概览

3.3.1 网络地址转换

3.3.2 隧道技术
负载均衡中常用的隧道技术是IP over IP,其原理是保持原始数据包IP头不变,在IP头外层增加额外的IP包头后转发给上游服务器。
上游服务器接收IP数据包,解开外层IP包头后,剩下的是原始数据包。
同样的,原始数据包中的目标IP地址要配置在上游服务器中,上游服务器处理完数据请求以后,响应包通过网关直接返回给客户端。
Overlay中的VXLAN就是一种隧道技术。
3.4 DNS负载均衡
DNS负载均衡技术的实现原理是在DNS服务器中为同一个域名配置多个IP地址,在应答DNS查询时,DNS服务器通过算法返回其中一个IP,将客户端的访问引导到不同的机器上去,使得不同的客户端访问不同的服务器,从而达到负载均衡的目的。
严格来说,DNS服务器只是做域名解析,并没有承接请求流量。
DNS域名解析需要注意TTL问题,TTL记录了一个DNS记录在缓存中的有效时间,即多长时间后缓存将过期并需要重新查询。
相关文章:
kubenetes-服务发现和负载均衡
一、服务发布 kubenetes把服务发布至集群内部或者外部,服务的三种不同类型: ClusterlPNodePortLoadBalancer ClusterIP是发布至集群内部的一个虚拟IP,通过负载均衡技术转发到不同的pod中。 NodePort解决的是集群外部访问的问题,用户可能不…...
docker的基本使用以及使用Docker 运行D435i
1.一些基本的指令 1.1 容器 要查看正在运行的容器: sudo docker ps 查看所有的容器(包括停止状态的容器) sudo docker ps -a 重新命名容器 sudo docker rename <old_name> <new_name> <old_name> 替换为你的容器名称…...
如何看待人工智能行业发展
随着人工智能技术的飞速发展,这个领域的就业前景也日益广阔。人工智能在各行各业都有广泛的应用,包括医疗、金融、制造业、教育等。因此,对于想要追求高薪、高技能职业的人来说,学习人工智能是一个非常有前景的选择。 首先&#x…...
linux中实现自己的bash
🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C 🔥座右铭:“不要等到什么都没有了,才下…...
14 Go的类型转换
概述 在上一节的内容中,我们介绍了Go的错误处理,包括:errors包、返回错误、抛出异常、捕获异常等。在本节中,我们将介绍Go的类型转换。在Go语言中,类型转换是一种将一个值从一种类型转换为另一种类型的过程。类型转换主…...
多线程概述
文章目录 线程是什么线程有什么作用线程和进程的区别多线程相较于进程优势 在Java这个圈子中,多进程用的并不多,因为进程是一个重量级操作,进程是资源分配的基本单位,申请资源是一个比较消耗时间的操作. 线程是什么 线程是一个独立的执行流,可以被独立调度到CPU上执行 线程是…...
AR贴纸特效SDK,无缝贴合的虚拟体验
增强现实(AR)技术已经成为了企业和个人开发者的新宠。它通过将虚拟元素与现实世界相结合,为用户提供了一种全新的交互体验。然而,如何将AR贴纸完美贴合在人脸的面部,同时支持多张人脸的检测和标点及特效添加࿰…...
Leetcode hot 100
双指针 283.移动零 class Solution { public:void moveZeroes(vector<int>& nums) {int cnt 0;for(vector<int>::iterator it nums.begin(); it ! nums.end(); ){if(*it 0) it nums.erase(it),cnt;else it;}while(cnt--){nums.push_back(0);}} }; 11.盛…...
分类预测 | Matlab实现基于SDAE堆叠去噪自编码器的数据分类预测
分类预测 | Matlab实现基于SDAE堆叠去噪自编码器的数据分类预测 目录 分类预测 | Matlab实现基于SDAE堆叠去噪自编码器的数据分类预测分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matlab实现基于SDAE堆叠去噪自编码器的数据分类预测(完整源码和数据) 2.多…...
矩阵运算_矩阵的协方差矩阵/两个矩阵的协方差矩阵_求解详细步骤示例
1. 协方差矩阵定义 在统计学中,方差是用来度量单个随机变量的离散程度,而协方差则一般用来刻画两个随机变量的相似程度。 参考: 带你了解什么是Covariance Matrix协方差矩阵 - 知乎 2. 协方差矩阵计算过程 将输入数据A进行中心化处理得到A…...
100天精通Python(可视化篇)——第108天:Pyecharts绘制多种炫酷词云图参数说明+代码实战
文章目录 专栏导读一、词云图介绍1. 词云图是什么?2. 词云图应用场景?二、参数说明1. 导包2. add函数三、词云库实战1. 基础词云图2. 矩形词云图3. 三角形词云图4. 菱形词云图5. 自定义图片词云图书籍推荐专栏导读 🔥🔥本文已收录于《100天精通Python从入门到就业》:本…...
Spark 平障录
Profile Profile 是最重要的第一环。 利用好 spark UI 和 yarn container log分析业务代码,对其计算代价进行预判建设基准,进行对比,比如application id 进行对比,精确到 job DAG 环节 充分利用 UI Stage 页面 页头 summary&…...
基于一致性算法的微电网分布式控制MATLAB仿真模型
微❤关注“电气仔推送”获得资料(专享优惠) 本模型主要是基于一致性理论的自适应虚拟阻抗、二次电压补偿以及二次频率补偿,实现功率均分,保证电压以及频率稳定性。 一致性算法 分布式一致性控制主要分为两类:协调同…...
Android 10.0 系统修改usb连接电脑mtp和PTP的显示名称
1.前言 在10.0的产品定制化开发中,在usb模块otg连接电脑,调整为mtp文件传输模式的时候,这时可以在电脑看到手机的内部存储 显示在电脑的盘符中,会有一个mtp名称做盘符,所以为了统一这个名称,就需要修改这个名称,接下来分析下处理的 方法来解决这个问题 2.系统修改usb连…...
飞鼠异地组网工具实战之访问k8s集群内部服务
飞鼠异地组网工具实战之访问k8s集群内部服务 一、飞鼠异地组网工具介绍1.1 飞鼠工具简介1.2 飞鼠工具官网 二、本次实践介绍2.1 本次实践场景描述2.2 本次实践前提2.3 本次实践环境规划 三、检查本地k8s集群环境3.1 检查k8s各节点状态3.2 检查k8s版本3.3 检查k8s系统pod状态 四…...
【Flink】窗口(Window)
窗口理解 窗口(Window)是处理无界流的关键所在。窗口可以将数据流装入大小有限的“桶”中,再对每个“桶”加以处理。 本文的重心将放在 Flink 如何进行窗口操作以及开发者如何尽可能地利用 Flink 所提供的功能。 对窗口的正确理解ÿ…...
读像火箭科学家一样思考笔记03_第一性原理(上)
1. 思维的两种障碍 1.1. 为什么知识会成为一种缺陷而非一种美德 1.1.1. 知识是一种美德 1.1.2. 知识同样的特质也会把它变成一种缺点 1.1.3. 知识确实是个好东西,但知识的作用应该是给人们提供信息,而不是起约束作用 1.1.4. 知识应该启发智慧&#…...
npm私有云
安装node时npm会自动安装,npm也可以单独安装。 package.json 在使用npm时,package.json文件是非常重要的,因为它包含了关于项目的必要信息,比如名称、版本、依赖项等。在初始化新项目时,通常会使用npm init命令生成一…...
莹莹API管理系统源码附带两套模板
这是一个API后台管理系统的源码,可以自定义添加接口,并自带两个模板。 环境要求 PHP版本要求高于5.6且低于8.0,已测试通过的版本为7.4。 需要安装PHPSG11加密扩展。 已测试:宝塔/主机亲测成功搭建! 安装说明 &am…...
【Kingbase FlySync】命令模式:安装部署同步软件,实现KES到KES实现同步
【Kingbase FlySync】命令模式:安装部署同步软件,实现KES到KES实现同步迁移 概述准备环境目标资源1.测试虚拟机下载地址包含node1,node22.同步工具下载地址3.临时授权下载地址4.ruby工具下载地址5.EXAMv0.11.sql下载地址 实操:同步软件安装部署1.node1准…...
3个核心方案:开源工具ncmdumpGUI如何让网易云音乐文件自由播放
3个核心方案:开源工具ncmdumpGUI如何让网易云音乐文件自由播放 【免费下载链接】ncmdumpGUI C#版本网易云音乐ncm文件格式转换,Windows图形界面版本 项目地址: https://gitcode.com/gh_mirrors/nc/ncmdumpGUI 当我们下载了心爱的音乐,…...
My SQL 数据库基础实例教程(第二单元学习笔记)
2.1关系数据库设计2.1.1 数据的加工1.现实世界现实世界是指客观存在的事物及他们相互之间的联系。2.信息世界信息世界是人们把现实世界的信息和联系通过“符号”记录下来,然后用规范化的数据库定义语言来描述而构成的一个抽象世界。3.计算机世界计算机世界将信息世界…...
OpenClaw环境迁移:gemma-3-12b-it配置备份与恢复指南
OpenClaw环境迁移:gemma-3-12b-it配置备份与恢复指南 1. 为什么需要环境迁移方案 上周我的主力开发机突然硬盘故障,导致所有数据丢失。最让我头疼的不是代码仓库——它们都有远程备份,而是那套精心调校的OpenClawgemma-3-12b-it环境。花了整…...
嵌入式ONPS协议栈:轻量级TCP/IP实现与优化
1. ONPS协议栈概述ONPS是一款专为资源受限的嵌入式系统设计的开源网络协议栈,由国内开发者完全自主开发实现。作为一名长期从事嵌入式网络开发的工程师,我第一次接触ONPS时就对其轻量级设计和完整的功能实现印象深刻。与常见的LwIP等协议栈相比ÿ…...
植物基肉类替代品市场的增长与投资机会
植物基肉类替代品市场的增长与投资机会 关键词:植物基肉类替代品、市场增长、投资机会、消费趋势、行业发展 摘要:本文聚焦于植物基肉类替代品市场,深入分析其市场增长的驱动因素、现状及未来趋势,同时探讨了该领域蕴含的投资机会。通过对核心概念的阐释、相关算法原理的介…...
告别‘一视同仁’:用HAN(异质图注意力网络)搞定电影推荐里的‘导演偏好’与‘演员偏好’
异构图注意力网络在电影推荐中的实战:如何让算法读懂导演偏好与演员偏好 想象这样一个场景:你刚看完詹姆斯卡梅隆执导的《终结者》,流媒体平台紧接着推荐了同样由施瓦辛格主演的《终结者2》和卡梅隆的另一部作品《泰坦尼克号》。虽然这三部电…...
2026届毕业生推荐的十大降重复率助手实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 人工智能技术于学术写作领域的运用愈发广泛,其助力论文撰写的本领已获实证&#…...
VisualCppRedist AIO:一个文件解决Windows运行库的十年难题
VisualCppRedist AIO:一个文件解决Windows运行库的十年难题 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾在打开心爱的游戏或专业软件时&a…...
ESP32 -espidf 实战:利用AW9523实现16路PWM调光与高电流驱动
1. 为什么需要AW9523扩展芯片? ESP32作为一款功能强大的物联网芯片,其GPIO资源在实际项目中经常捉襟见肘。做过智能照明项目的朋友应该深有体会,当我们需要控制多个LED灯带时,ESP32自带的PWM通道根本不够用。我曾经在一个商业照明…...
Python Decouple 的测试策略:如何确保配置的正确性
Python Decouple 的测试策略:如何确保配置的正确性 【免费下载链接】python-decouple Strict separation of config from code. 项目地址: https://gitcode.com/gh_mirrors/py/python-decouple 在软件开发中,配置管理的正确性直接影响应用的稳定性…...
