k8s学习--kube-proxy的三种工作模式详细解释

kube-proxy 是 Kubernetes 中负责集群中网络规则的组件,它维护网络规则使得 Pod 间的网络通信和访问集群外部的服务成为可能。kube-proxy 支持三种工作模式:userspace 模式、iptables 模式和 ipvs 模式。

快速理解
userspace 模式
实现简单,但性能较低,适用于早期的测试和开发环境。

iptables 模式
性能较好,适用于大多数生产环境,但在处理大量规则时可能复杂。

ipvs 模式
性能最佳,支持更多的负载均衡算法和规则,适用于高性能和大规模集群,但需要内核支持。

一般情况下,都默认使用ipvs模式


GPT 4o:

1. userspace 模式

userspace 模式是 kube-proxy 的最早实现方式,主要工作原理如下:

(1).kube-proxy 监听 Kubernetes API 服务器中 Service 和 Endpoint 的变化。

(2)当有新的 Service 创建时,kube-proxy 会在节点上打开一个端口,并将这个端口映射到 Service 对应的后端 Pod。

(3).任何对这个端口的访问请求,都会被 kube-proxy 捕捉,并转发到后端的 Pod。kube-proxy 使用用户空间程序来进行这些转发操作。

这种模式的优点是实现简单,但缺点是性能较低,因为每个数据包都需要经过用户空间的处理,增加了额外的开销和延迟。

2. iptables 模式

iptables 模式是 kube-proxy 的改进版,相比 userspace 模式有显著的性能提升。其工作原理如下:

(1).kube-proxy 同样监听 Kubernetes API 服务器中 Service 和 Endpoint 的变化。
不同的是,kube-proxy 使用 iptables 来设置网络规则。这些规则会直接在内核空间进行处理,而不是通过用户空间。

(2).当有新的 Service 创建时,kube-proxy 会生成相应的 iptables 规则,定义从 Service IP 和端口到后端 Pod 的 NAT 转发规则。

(3).数据包在内核空间直接被转发到相应的后端 Pod,减少了上下文切换,提高了转发性能。

iptables 模式的优点是性能更好,但在处理大量规则时,规则管理和更新可能会变得复杂。

3. ipvs 模式

ipvs 模式是 kube-proxy 的最新实现方式,使用 Linux 内核中的 IP Virtual Server (IPVS) 技术。其工作原理如下:

(1).kube-proxy 监听 Kubernetes API 服务器中 Service 和 Endpoint 的变化

(2).kube-proxy 使用 IPVS 来创建和维护负载均衡规则。IPVS 是内核中的一个模块,专门用于负载均衡,支持多种调度算法。

(3).当有新的 Service 创建时,kube-proxy 会使用 IPVS 创建相应的负载均衡规则,定义从 Service IP 和端口到后端 Pod 的转发规则。

(4).数据包在内核空间通过 IPVS 直接转发,性能更高,同时支持更多的负载均衡算法(如轮询、最小连接数、最短延迟等)。

(5).ipvs 模式的优点是性能最佳,支持更多的负载均衡算法和更复杂的网络规则,但需要内核支持 IPVS 模块。

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

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

相关文章

?。。。。。。。。。。。

--超值大礼包,部分原型在线预览地址-- PC端标准化元件库模板: https://axhub.im/pro/db1fd100c40ab6cc/#g1 生鲜电商APP: https://axhub.im/ax9/3ab6ee4196a35d4b/#g1 抖音高保真原型地址: https://axhub.im/pro/56e8362bbc3d4897…

MethodArgumentNotValidException提取关键报错信息返回

问题&#xff1a;报错框架问题 目的&#xff1a;只需要关键提示词&#xff1b; e.message:Validation failed for argument [0] in com.victorlamp.hviot.common.pojo.CommonResult<com.victorlamp.hviot.service.management.entity.thing.Thing> com.victorlamp.hviot…

利用人工智能-智慧合同管理系统规避企业合同管理风险

随着企业业务的不断扩展&#xff0c;合同管理在企业运营中扮演着越来越重要的角色。然而&#xff0c;传统的合同管理方法往往存在效率低下、风险控制不足等问题。为了解决这些问题&#xff0c;道本科技智慧合同管理系统不仅通过合同全生命周期的管理对企业合同管理从宏观上做了…

开发uniapp 小程序时遇到的问题

1、【微信开发者工具报错】routeDone with a webviewId XXX that is not the current page 解决方案: 在app.json 中添加 “lazyCodeLoading”: “requiredComponents” uniapp的话加到manifest.json下的mp-weixin 外部链接文章&#xff1a;解决方案文章1 解决方案文章2 &qu…

flash掉位问题及其解决办法

掉位现象是使用Flash存储器时&#xff0c;由于某些原因导致存储的数据发生错误或丢失的现象。一般可能由于硬件故障、电源问题、软件错误或使用不当等原因引起。 解决Flash掉位问题需要根据具体情况采取不同的方法。常见的解决办法及预防措施包括&#xff1a; 1.检查硬件故障…

SEACells:元细胞分析

元细胞是从单细胞测序数据中衍生的细胞分组&#xff0c;代表高度精细的不同细胞状态。在这里&#xff0c;作者介绍了单细胞细胞状态聚集 (SEACells)&#xff0c;这是一种用于识别元细胞的算法&#xff0c;它克服了单细胞数据的稀疏性&#xff0c;同时保留了传统细胞聚类所掩盖的…

【C++进阶】深入STL之vector:深入研究迭代器失效及拷贝问题

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;C “ 登神长阶 ” &#x1f921;往期回顾&#x1f921;&#xff1a;初步了解vector &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀STL之vector &#x1f4d2;1. 迭…

Linux C语言:数组的定义和初始化

一、数组 1、定义 在程序设计中&#xff0c;为了处理方便&#xff0c;把具有相同类型的若干变量按有序的形式组织起来&#xff0c;具有一定顺序关系的若干个变量的集合就是数组 。 2、特点 组成数组的各个变量称为数组的元素数组中各元素的数据类型要求相同元素在内存中是连…

pdf的压缩该怎么做?快速在线压缩pdf的方法

pdf文件是现在很常用的一种文件格式&#xff0c;有很多的文件内容都可以通过这种格式来展示内容&#xff0c;比如一些通知文件、设计图、个人信息等等&#xff0c;文件的内容越多就会越大&#xff0c;在使用的时候经常会受到一定的限制。那么有什么方法能够快速的将pdf文件变小…

目标检测-AnyLabeling标注格式转换成YOLO格式

Anylabel可以极大的增加数据的标注效率&#xff0c;但是其标注格式如何能转换成YOLO标注格式&#xff0c;具体内容如下所示。 关于AnyLabeling的其它详细介绍如下链接所示 https://blog.csdn.net/u011775793/article/details/134918861 Github链接 https://github.com/vietanhd…

巧用docker+jmeter快速实现分布式百万级并发

分享背景 碰到的问题&#xff1a; 一个JMeter实例可能无法产生足够的负载来对你的应用程序进行压力测试&#xff5e; 解决办法&#xff1a; 1、修改jmeter配置文件里的内存堆 2、引入jmeter分布式压测 带来的问题&#xff1a; 如果我们要做分布式负载测试–我们需要1个…

企业数据挖掘建模平台极简建模流程

泰迪智能科技企业数据挖掘建模平台是企业自主研发&#xff0c;面向企业级用户的快速数据处理构建模型工具。平台底层算法基于R语言、Python、Spark等引擎&#xff0c;使用JAVA语言开发&#xff0c;采用 B/S 结构&#xff0c;用户无需下载客户端&#xff0c;可直接通过浏览器进…

GAT1399协议分析(7)--pycharm anaconde3 配置pyside2

一、安装pyside2 pip install pyside2 二、配置qtdesigner File->Settings->Tools->External tools 点击添加,添加QtDesigner, 注意designer.exe路径,需要在虚拟环境下。 三、添加pySide2 File->Settings->Tools->External tools 点击添加,添加PyS…

高效内容分发:海外短剧推广平台的流媒体传输技术挑战与解决

随着海外短剧市场的蓬勃发展&#xff0c;如何高效地将短剧内容分发给全球观众成为了推广平台必须面对的一大挑战。在这一过程中&#xff0c;流媒体传输技术起着至关重要的作用。然而&#xff0c;由于网络环境的复杂性和多样性&#xff0c;流媒体传输面临着带宽限制、延迟等诸多…

前端--导出

这边记录我们公司后端做的导出接口和前端是如何对接的 这边的技术栈是&#xff1a; 1&#xff1a; react 2&#xff1a; fetch 第一步&#xff1a;简单封装--导出界面 import { DrawerForm } from ant-design/pro-components; import { CloseOutlined } f…

iOS 之homebrew ruby cocoapods 安装

cocoapods安装需要ruby&#xff0c;更新ruby需要rvm&#xff0c;下载rvm需要gpg&#xff0c;下载gpg需要homebrew&#xff0c;所以安装顺序是homebrew->gpg->rvm->ruby-cocoapods Rvm 官网&#xff1a; RVM: Ruby Version Manager - RVM Ruby Version Manager - Docum…

抖音快手短视频直播课程:从0基础到精通,定位、运营、内容、拍摄、剪辑、养号、算法、小店、直播、话术、变现等

随着社交媒体的飞速发展&#xff0c;抖音作为短视频领域的佼佼者&#xff0c;已经成为众多个人和企业展示自我、推广品牌的重要平台。但如何在众多内容中脱颖而出&#xff0c;吸引更多粉丝和关注&#xff0c;成为许多人的困惑。 为此&#xff0c;我们特别推出“抖音运营高手速…

sftp+ssh+nginx部署

SFTP方式登录服务器部署静态资源 使用软件&#xff1a;xftp IP&#xff1a;xx.xx.xx.xx 用户名&#xff1a;root 密码&#xff1a;xx SSH方式登录服务器修改nginx配置文件 使用软件&#xff1a;xshell、putty IP&#xff1a;xx.xx.xx.xx 用户名&#xff1a;root 密码&#x…

docker_构建镜像成功但启动容器的执行程序总是报文件找不到(lesson)

碰到问题 有一次做了一个镜像&#xff0c;制作成功&#xff0c;但运行容器总是报错&#xff1a;找不到文件。 dockerfile如下&#xff1a; FROM golang:1.18 AS builder WORKDIR /app COPY go.mod main.go ./ RUN go mod download COPY . . RUN go build -o tools_cpu_burner…

操作系统概述

操作系统概述 ## 认识操作系统 不同角度看到的操作系统 : 整体看, 使用者, 操作系统者, 普通开发者 从程序执行看 操作系统是其它所有用户程序运行的基础 #include <stdio.h>int main() {printf(“ Hello world\n”); } 该程序的执行过程 : 操作系统检查字符串的…