背景:
k8s 目前使用LVS作为 service访问的转发规则 , 有时候服务访问有问题,我们可以查看具体node节点上的LVS转发规则,帮助排查问题。
使用:
我们使用ipvsadm 可以查看具体的LVS规则

ipvsadm工具常用的参数选项有:

-A   --add-service添加一条新的虚拟服务

-E   --edit-service编辑虚拟服务

-D   --delete-service删除虚拟服务

-C   --clear清除所有的虚拟服务规则

-R   --restore恢复虚拟服务规则

-a   --add-server在一个虚拟服务中添加一个新的真实服务器

-e   --edit-server编辑某个真实服务器

-d   --delete-server删除某个真实服务器

-L | -l   --list显示内核中的虚拟服务规则

-n  --numeric以数字形式显示IP端口

-c  --connection显示ipvs中目前存在的连接,也可以用于分析调度情况

-Z   --zero将转发消息的统计清零

-p  --persistent配置持久化时间

--set tcp tcpfin  udp配置三个超时时间(tcp/tcpfin/udp)

-t | -uTCP/UDP协议的虚拟服务

-g | -m | -iLVS模式为:DR | NAT | TUN

-w 配置真实服务器的权重

-s 配置负载均衡算法,如:rr, wrr, lc等

--timeout 显示配置的tcp/tcpfin/udp超时时间

--stats 显示历史转发消息统计(累加值)

--rate 显示转发速率信息(瞬时值)

常用的查看 规则

ipvsadm -ln

LVS安装和配置 lvs命令详解_调度算法


LVS相关 知识点

一、LVS的组成

LVS 由2部分程序组成,包括 ipvs 和 ipvsadm。

  1. ipvs(ip virtual server):一段代码工作在内核空间,叫ipvs,是真正生效实现调度的代码。
  2. ipvsadm:另外一段是工作在用户空间,叫ipvsadm,负责为ipvs内核框架编写规则,定义谁是集群服务,而谁是后端真实的服务器(Real Server)

二、LVS相关术语

  1. DS:Director Server。指的是前端负载均衡器节点。
  2. RS:Real Server。后端真实的工作服务器。
  3. VIP:向外部直接面向用户请求,作为用户请求的目标的IP地址。
  4. DIP:Director Server IP,主要用于和内部主机通讯的IP地址。
  5. RIP:Real Server IP,后端服务器的IP地址。
  6. CIP:Client IP,访问客户端的IP地址。
    下边是三种工作模式的原理和特点总结。

    三、LVS调度算法
    LVS调度算法
    在内核中的连接调度算法上,IPVS已实现了以下八种调度算法:

轮叫调度(Round-Robin Scheduling)
加权轮叫调度(Weighted Round-Robin Scheduling)
最小连接调度(Least-Connection Scheduling)
加权最小连接调度(Weighted Least-Connection Scheduling)
基于局部性的最少链接(Locality-Based Least Connections Scheduling)
带复制的基于局部性最少链接(Locality-Based Least Connections with Replication Scheduling)
目标地址散列调度(Destination Hashing Scheduling)
源地址散列调度(Source Hashing Scheduling)
固定调度算法:rr,wrr,dh,sh
动态调度算法:wlc,lc,lblc,lblcr

一般应用场景 常用调度算法
一般的网络服务,如 http,mail,mysql 基本轮训、加权最小连接、加权轮训
防火墙集群 源地址散列调度SH和目标地址散列调度DH
web cache和DB cache 局部最小、带复制的局部最小