ipvsadm,是一个什么工具?

1. ipvsadm 是什么?

ipvsadm(IP Virtual Server Administration)是 Linux 内核中 IPVS(IP Virtual Server) 模块的管理工具,用于配置和监控内核级的负载均衡规则。它是 Kubernetes 中 kube-proxy 在 IPVS 模式 下的底层实现工具。

主要功能
  • 管理 IPVS 的虚拟服务(Virtual Service)和真实服务器(Real Server,即后端 Pod)。

  • 支持多种负载均衡算法(如轮询 rr、加权轮询 wrr、最少连接 lc 等)。

  • 查看当前负载均衡规则和连接状态。

常用命令
ipvsadm -Ln            # 列出所有 IPVS 规则(数字格式显示)
ipvsadm -Ln --stats    # 显示统计信息(如连接数、流量)
ipvsadm -Ln --rate     # 显示速率(如每秒请求数)
ipvsadm -E -t <VIP:PORT> -s <ALGORITHM>  # 修改调度算法

2. IPVS 模式详解

IPVS(IP Virtual Server)是 Linux 内核内置的 四层(L4)负载均衡器,工作在传输层(TCP/UDP),性能远高于传统的 iptables 模式。

为什么 Kubernetes 使用 IPVS 模式?
  • 高性能:基于哈希表存储规则,查询效率为 O(1),适用于大规模集群。

  • 支持多种调度算法:如轮询(rr)、加权轮询(wrr)、最少连接(lc)等。

  • 更好的可扩展性:在 Service 数量超过 10,000 时,性能仍稳定。

IPVS 模式的核心组件
组件说明
Virtual Service虚拟服务(VIP),对应 Kubernetes Service 的 ClusterIP:Port
Real Server真实后端(Pod),对应 Endpoints 中的 PodIP:Port
调度算法决定流量如何分发给后端 Pod(如 rrwrrlc)。
IPVS 与 iptables 模式对比
特性IPVS 模式iptables 模式
负载均衡算法支持多种(rr/wrr/lc 等)仅支持随机均衡
规则存储结构哈希表(O(1) 复杂度)线性链表(O(n) 复杂度)
大规模集群性能更优(适合 10k+ Service)性能下降明显
依赖内核模块ip_vsip_vs_rr 等iptablesnf_conntrack

3. Kubernetes 中 IPVS 的工作流程

  1. Service 创建

    • 当创建 ClusterIP 类型的 Service 时,kube-proxy 会:

      • 在 kube-ipvs0 虚拟接口上绑定 Service 的 ClusterIP。

      • 通过 ipvsadm 添加 IPVS 规则,将 VIP(Service IP)映射到后端 Pod IP。

  2. 流量转发

    • 当访问 ClusterIP:Port 时:

      • 内核根据 IPVS 规则匹配到目标 Service。

      • IPVS 按调度算法选择一个后端 Pod,转发流量。

  3. 示例规则
    执行 ipvsadm -Ln 可能看到如下输出:

    TCP  10.233.25.255:80 rr-> 10.233.1.2:80            Masq    1      0          0-> 10.233.1.3:80            Masq    1      0          0
    • rr:轮询算法。

    • Masq:使用 SNAT(源地址转换)。

    • 后端是两个 Pod(10.233.1.2:80 和 10.233.1.3:80)。

    • 检查 Service 和 Endpoints

      kubectl get svc -A | grep 10.233.25.255  # 找到关联的 Service
      kubectl describe endpoints <service-name> # 检查是否有健康的 Pod
    • 查看 IPVS 规则

      ipvsadm -Ln | grep 10.233.25.255
      • 如果输出中无目标 Pod(-> 开头的行),则说明 Endpoints 缺失。


4. 常见问题

Q1: 为什么 kube-ipvs0 显示 state DOWN
  • 这是正常的,因为 kube-ipvs0 是虚拟接口,仅用于绑定 IP,不参与实际网络通信。IPVS 规则由内核直接处理。

Q2: 如何检查 IPVS 是否正常工作?
# 查看规则
ipvsadm -Ln
# 检查是否有流量转发
ipvsadm -Ln --stats
Q3: 如何切换 kube-proxy 到 IPVS 模式?

在 kube-proxy 启动参数中添加:

--proxy-mode=ipvs
--ipvs-scheduler=rr         # 指定调度算法

总结

  • ipvsadm 是管理 IPVS 负载均衡规则的工具,Kubernetes 通过它实现高性能 Service 转发。

  • IPVS 模式 适用于大规模集群,支持多种调度算法,性能优于 iptables。

  • 遇到 no destination available 时,优先检查 Endpoints 和 Pod 状态。

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

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

相关文章

用手机相册教我数组概念——照片分类术[特殊字符][特殊字符]

目录 前言一、现实场景1.1 手机相册的照片管理1.2 照片分类的需求 二、技术映射2.1 数组与照片分类的对应关系2.2 数组索引与照片标签的类比 三、知识点呈现3.1 数组的基本概念3.2 数组在编程中的重要性3.3 数组的定义与初始化3.4 数组的常见操作&#xff08;增删改查&#xff…

Java面试资源获取

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 **1. GitHub开源项目****2. 技术博客与社区*…

spring中的@Conditional注解详解

Conditional是Spring框架中用于条件化Bean注册的核心注解&#xff0c;它允许开发者根据特定条件动态决定是否将Bean注册到Spring容器中。这一特性在模块化开发、多环境适配和动态配置等场景中非常有用。 核心原理 Conditional注解通过实现Condition接口的类来定义条件逻辑。当…

MYSQL-设计表

一.范式 数据库的范式是⼀组规则。在设计关系数据库时&#xff0c;遵从不同的规范要求&#xff0c;设计出合理的关系型数 据库&#xff0c;这些不同的规范要求被称为不同的范式。 关系数据库有六种范式&#xff1a;第⼀范式&#xff08;1NF&#xff09;、第⼆范式&#xff08;…

第三方测试机构在软件测试领域有何重大作用与优势?

第三方测试机构在软件测试领域作用重大&#xff0c;它就像公正的裁判&#xff0c;能帮助确保软件质量&#xff0c;能保障软件可靠性&#xff0c;通过提供专业测试服务&#xff0c;为软件安全性提供保障&#xff0c;也为软件稳定性提供保障。 机构优势 第三方测试机构具有独立…

大模型——使用 StarRocks 作为向量数据库

大模型——使用 StarRocks 作为向量数据库 本章节介绍了 StarRocks,这是一款高性能的分析数据库,并演示了如何将其用作向量数据库。内容涵盖了设置、文档加载、标记化、创建向量数据库实例以及构建一个能够检索的问答系统。 StarRocks StarRocks 是一个次世代的亚秒级 MPP…

怎样增加AI对话的拟人化和增加同理心

怎样增加AI对话的拟人化和增加同理心 随着心理健康问题在大学生中日益普遍,AI聊天机器人被用于提供支持,但如何有效表达同理心成为挑战。本文对比了人与人、人与AI互动中同理心的表达与接收,通过让126名本科生讲述生活事件并收集亚马逊MTurkers的评价,同时使用GPT-4o评估相…

SALOME源码分析:SHAPER模块

本文分析SALOME中的SHAPER模块。 注1&#xff1a;限于研究水平&#xff0c;分析难免不当&#xff0c;欢迎批评指正。注2&#xff1a;文章内容会不定期更新。 一、核心组件 二、关键流程 三、FAQs 网络资料 Introduction to SHAPER

batch normalization和layer normalization区别

Normalization无非就是这样一个操作&#xff1a; 其中x是输入数据&#xff0c;维度为&#xff08;B&#xff0c;T&#xff0c;C&#xff09;&#xff0c;其中B是batchsize&#xff0c;T是序列长度&#xff0c;C是embedding维度&#xff1b;括号内是标准化操作&#xff0c;γ和…

Postgresql源码(144)LockRelease常规锁释放流程分析

相关 《Postgresql源码&#xff08;69&#xff09;常规锁细节分析》 最新遇到一个共享内存损坏导致常规锁释放报错warning "you don’t own a lock of type"的问题。 本篇对常规锁的概念做一些回顾&#xff0c;顺便分析下释放锁的流程。 SpinLock&#xff1a;❎LWL…

基于bert的情感分析程序

文章目录 任务介绍数据概览注意事项数据处理代码准备模型构建与训练模型类构建数据集构建数据批处理模型参数查看模型训练结果推理与评估模型推理准确率评估附录任务介绍 在当今信息爆炸的时代,互联网上充斥着海量的文本数据,如社交媒体评论、产品评价、新闻报道等。这些文本…

宇树科技举办“人型机器人格斗大赛”

2025 年 5 月至 6 月&#xff0c;一场全球瞩目的科技盛宴 —— 全球首场 “人形机器人格斗大赛”&#xff0c;将由杭州宇树科技盛大举办。届时&#xff0c;观众将迎来机器人格斗领域前所未有的视觉震撼。 为打造最强参赛阵容&#xff0c;宇树科技技术团队在过去数周里&#xf…

计算机视觉与深度学习 | 什么是图像金字塔?

图像金字塔详解 图像金字塔 图像金字塔详解1. **定义**2. **原理与公式****2.1 高斯金字塔****2.2 拉普拉斯金字塔**3. **代码示例****3.1 使用OpenCV实现****3.2 手动实现高斯模糊与降采样**4. **应用场景**5. **关键点总结**1. 定义 图像金字塔是一种多尺度图像表示方法,将…

Spring MVC注解式控制器开发

主要对Spring MVC的核心注解的应用进行了详细讲解&#xff0c;介绍了Controller和RequestMapping注解类型的相关知识。 1.注解式控制器概念 Spring2.5之前&#xff0c;我们都是通过实现框架提供的Controller接口来定义我们的处理器类。 Spring2.5引入注解式处理器支持&#…

thonny提示自动补全功能

THONNY IDE 自动补全功能配置 在 Thonny IDE 中启用和优化自动补全功能可以显著提升编程体验。为了确保该功能正常工作&#xff0c;需要确认几个设置选项。 配置自动补全 Thonyy IDE 的自动补全默认情况下是开启的。如果发现自动补全未按预期运行&#xff0c;可以通过调整首选…

D. 例题3.2.2 整数划分问题

题目描述 将正整数n表示成一系列正整数之和&#xff1a;nn_1n_2...n_knn1​n2​...nk​&#xff0c;其中8\geq n_1\geq n_2\geq ...\geq n_k\geq 18≥n1​≥n2​≥...≥nk​≥1&#xff0c;k\geq1k≥1。正整数n的这种表示称为正整数n的划分。 例如正整数6有如下11种不同的划分…

电脑RGB888P转换为JPEG方案 ,K230的RGB888P转换为JPEG方案

K230开发板本身具备将RGB888P转换为JPEG的能力&#xff0c;但需要正确调用硬件或软件接口。以下是具体分析及解决方案&#xff1a; 一、K230原生支持性分析 1. 硬件支持 K230的NPU&#xff08;神经网络处理器&#xff09;和图像处理单元&#xff08;ISP&#xff09;理论上支持…

图解 Git 工作流:理解 Rebase、Merge 与 Pull Request 的区别

图解 Git 工作流&#xff1a;理解 Rebase、Merge 与 Pull Request 的区别 在多人协作开发中&#xff0c;选择合适的 Git 分支管理策略至关重要。Merge、Rebase 和 Pull Request 是最常见的三种方式&#xff0c;它们本质不同&#xff0c;使用场景也不同。 本文将通过流程图&am…

Dart和Go语言特征对比

文章目录 Dart 和 Go 语法对照表字符串常用方法对照列表(数组/切片)常用方法对照Map (字典/哈希表) 使用对照IO 操作对照文件操作标准输入输出网络IO 主要差异说明 有同事说&#xff0c;我前端用Flutter&#xff0c;后端用Golang&#xff0c;都师出名门。但两个语言还是老打架&…

ActiveMQ 集群搭建与高可用方案设计(二)

五、高可用方案设计与优化 &#xff08;一&#xff09;Zookeeper 在 ActiveMQ 集群中的应用 作用&#xff1a;在 ActiveMQ 集群中&#xff0c;Zookeeper 扮演着至关重要的角色。它主要用于选举 Master 节点&#xff0c;通过其内部的选举机制&#xff0c;从众多的 ActiveMQ Br…