首页 > 其他分享 >在K8S中,kube-proxy ipvs 原理是什么?

在K8S中,kube-proxy ipvs 原理是什么?

时间:2024-02-07 09:03:49浏览次数:23  
标签:负载 Service IPVS ipvs proxy Pod kube

在Kubernetes(K8s)集群中,kube-proxy 是一个关键组件,它负责实现从 Service 到后端 Pods 的网络代理和负载均衡功能。当kube-proxy工作在IPVS模式时,其原理如下:

  1. 监听API服务器
    kube-proxy启动后会持续监听Kubernetes API服务器上的Service资源对象的变化。每当有新的Service创建、更新或删除时,kube-proxy都会收到通知。

  2. 配置IPVS规则
    当一个新的Service被创建时,kube-proxy会根据Service的定义信息,在内核中的IPVS(IP Virtual Server)表中创建相应的虚拟服务(Virtual Server)。这个虚拟服务对应的是Service的Cluster IP和端口。

  3. 后端Endpoint管理
    同样地,kube-proxy会关注Endpoints资源的变化,即Pod的IP地址和端口集合。当匹配Service选择器的Pod发生变化时(例如Pod创建或销毁),kube-proxy会动态地将这些Pod的实际IP和端口添加到或从IPVS的Real Server列表中移除,确保虚拟服务与实际后端Pod保持同步。

  4. 负载均衡策略
    IPVS提供了多种负载均衡算法,如轮询、最少连接、源哈希等。kube-proxy可以根据Service配置选择合适的负载均衡策略,并将其应用于IPVS规则中。

  5. 数据包转发
    网络流量到达Service的Cluster IP时,内核中的IPVS模块会根据已配置的虚拟服务和真实服务器列表进行负载均衡处理,将流量透明地转发至正确的后端Pod。

综上所述,kube-proxy在IPVS模式下利用Linux内核的高效负载均衡能力来提供高可扩展性和高性能的服务发现与负载均衡机制,使得Kubernetes集群内的应用服务能够稳定、可靠地运行。

标签:负载,Service,IPVS,ipvs,proxy,Pod,kube
From: https://www.cnblogs.com/huangjiabobk/p/18010525

相关文章

  • 在K8S中,kube-proxy ipvs 和 iptables 有何异同?
    在Kubernetes(K8s)中,kube-proxy作为集群网络代理组件,可以配置为使用iptables或IPVS模式来实现服务的负载均衡和网络代理功能。下面是kube-proxy在iptables模式和IPVS模式下的异同点:相同点:目标:无论是iptables还是IPVS模式,kube-proxy的目标都是将流入集群的服务请求透明地转发到后......
  • 为什么kube-scheduler启动后https长连接数量是2
    k8sv1.19.0编译二进制并调试cdcmd/kube-scheduler&&gobuild#vscodelaunch.json{"name":"Launch","type":"go","request":"launch","mode":"exec",......
  • k8s容器秒级事件监控软件-Kube-eventer
    下面是kube-eventer的github开源地址:https://github.com/AliyunContainerService/kube-eventer ---apiVersion:v1data:content:>-{"EventType":"{{.Type}}","EventNamespace":"{{.InvolvedObject.Namespace}}"......
  • Nginx错误 open() "/usr/local/nginx/proxy_temp/x/xx/xxxxxxxx" failed (13: Permiss
    问题:设置client_max_body不起作用(notwroking)发现:nginxerror.log中有 open()"/usr/local/nginx/proxy_temp/x/xx/xxxxxxxx"failed(13:Permissiondenied)whilereadingupstream解决办法:首先查看psaux|grep"nginx:workerprocess"当前nginx的用户是谁:如nginx......
  • kubelet 组件内存高排查方法
    1、查看服务进程,并跟踪程序系统调用pgrep kubelet#查看资源占用情况top-p 95786strace-cp95786#显示时间戳strace-tt-p95786 2、用pprof性能分析工具排查#安装go环境#启动代理kubectlproxy--port=8001--address=0.0.0.0curl-sK-vhttp://127.0.0.1:8001/......
  • 服务器-Kubernetes (K8S)单机部署实战 -- 001
       本篇博文是centos7系统安装kubernetes单机master节点操作。一:查看服务器配置信息   1.执行命令查看服务器cpu信息。安装kubernetes服务,cpu核心数必须大于2,内存大于2G。lscpu   2. 修改服务器设置信息,避免安装出现问题。    a.......
  • Kubernetes 服务类型详解
    Kubernetes服务类型详解如今,Kubernetes已成为管理和扩展云原生应用程序的强大工具。组织需要利用高度可扩展且始终可用的功能来保持零停机时间,快速部署他们的软件。随着越来越多的应用程序被容器化和部署,容器的管理也变得越来越复杂。因此,软件的扩展成为一个问题,而这正是Kuber......
  • LVS Nginx HAProxy区别
    LVS抗负载能力强,性能高,能达到F5硬件的60%,对内存和cpu资源消耗比较低工作在四层仅作分发之用,通过vrrp协议转发,具体流量由linux内核处理,没有流量的产生稳定性、可靠性好,自身有完整的双机热备方案,如LVS+keepalived应用范围比较广,可以对所有应用做负载均衡配置性比较低,减少人为出错的概......
  • KubeEdge v1.16.0 版本发布!10项新增特性
    本文分享自华为云社区《KubeEdgev1.16.0版本发布!集群升级部署易用性大幅提升》,作者:容器大未来。北京时间2024年1月23日,KubeEdge发布1.16.0版本。新版本新增多个增强功能,在集群升级、集群易用性、边缘设备管理等方面均有大幅提升。KubeEdgev1.16.0新增特性:集群升级:支......
  • 在K8S中,Kubernetes与Docker的关系?
    在Kubernetes(简称K8s)与Docker之间,存在一种互补和依赖的关系:互补关系:Docker:提供容器化解决方案,允许开发人员将应用及其依赖打包到可移植的容器镜像中。Docker主要负责构建、运行和分发这些容器。Kubernetes:是一个容器编排系统,它的目标是自动化部署、扩展以及管理容器化的应用......