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

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

时间:2024-10-07 20:49:11浏览次数:8  
标签:负载 Service IPVS ipvs proxy 均衡 kube

在Kubernetes(K8S)中,kube-proxyIPVS 模式是一种高性能的负载均衡解决方案,它利用 Linux 内核的 IPVS(IP Virtual Server)功能来实现服务的负载均衡。以下是 kube-proxyIPVS 模式下的工作原理:

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

  2. 配置IPVS规则:当一个新的Service被创建时,kube-proxy会根据Service的定义信息,在内核中的IPVS表中创建相应的虚拟服务(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提供了多种负载均衡算法,如轮询(round-robin)、最少连接(least connection)、源哈希(source hashing)等。kube-proxy可以根据Service配置选择合适的负载均衡策略,并将其应用于IPVS规则中。

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

  6. IPVS与iptables的协同工作:虽然IPVS用于负载均衡,但它无法处理kube-proxy中的其他问题,例如包过滤、数据包伪装(SNAT)等。因此,IPVS模式下的kube-proxy仍然会利用iptables来处理这些场景。iptables规则数量在IPVS模式中是恒定的,因为IPVS本身已经处理了大部分的负载均衡工作。

  7. 使用ipset提高效率:为了减少iptables规则的数量,IPVS模式下的kube-proxy使用ipset来管理IP地址集合,这样可以更高效地处理大量的服务和端点。

  8. 服务的虚拟IP地址机制IPVS模式下,kube-proxy确保节点中存在虚拟接口(默认为kube-ipvs0),将服务IP地址绑定到虚拟接口,并为每个服务IP地址创建IPVS虚拟服务器。

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

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

相关文章

  • 在K8S中,kube-proxy iptables原理是什么?
    在Kubernetes中,kube-proxy使用不同模式来实现其功能,其中iptables模式是早期广泛使用的模式之一。下面详细介绍kube-proxy使用iptables模式的基本原理。1.iptables原理概述iptables是Linux内核的一部分,用于定义网络封包过滤规则。它是一个用户空间的应用程序,用来设......
  • 【Kubernetes】常见面试题汇总(五十七)
    目录125.K8S创建服务status为ErrlmagePull?126.不能进入指定容器内部?特别说明:题目  1-68  属于【Kubernetes】的常规概念题,即“汇总(一)~(二十二)”。题目 69-113 属于【Kubernetes】的生产应用题,其中104-113为“情景类”。题目114-132属于【Kube......
  • Kubernetes 和 docker 之间的版本对应关系
       Kubernetes和Docker是两个紧密相关的技术,Docker被广泛用于构建和运行容器,而Kubernetes用于编排这些容器。在早期,Kubernetes依赖Docker作为其容器运行时(ContainerRuntime),因此了解Kubernetes与Docker版本之间的兼容性是非常重要的。   然而,从Kube......
  • redis scalable solution -- twemproxy
    twemproxyhttps://github.com/twitter/twemproxyAfast,light-weightproxyformemcachedandredistwemproxy(nutcracker)twemproxy(pronounced"two-em-proxy"),akanutcrackerisafastandlightweightproxyformemcachedandredisprotocol.......
  • kube-ovn net/http TLS handshake timeout
    问题现象业务报错net/http:TLShandshaketimeout。容器IP跨节点访问kube-apiserverserviceclusterIP不通。问题分析kkotrace[ns]/[pod][ip]tcp443|grep对端主机ipkube-ovn在br-int网桥上刷流表实现了kube-proxy的dnat功能。kube-ovn监听service的endpoints,像kub......
  • [kubernetes]二进制方式部署单机k8s-v1.30.5
    前言之前在单机测试k8s的kind最近故障了,虚拟机运行个几分钟后就宕机了,不知道是根因是什么,而且kind部署k8s不太好做一些个性化配置,干脆用二进制方式重新搭一个单机k8s。因为是用来开发测试的,所以control-panel就不做高可用了,etcd+apiserver+controller-manager+scheduler都只有一......
  • Spring源码(14) -- Aop动态代理CglibAopProxy
    AOP基础知识AOP基础知识,详情见:https://blog.csdn.net/sinat_32502451/article/details/142291052AOP源码,详情见:https://blog.csdn.net/sinat_32502451/article/details/142291110AopProxyAopProxy接口是配置的AOP代理的委托接口,允许创建实际的代理对象。开箱即用的实现可......
  • VMware Tanzu Kubernetes Grid Integrated Edition (TKGI) 1.20.0 - 运营商 Kubernete
    VMwareTanzuKubernetesGridIntegratedEdition(TKGI)1.20.0-运营商Kubernetes解决方案Kubernetes-basedcontainersolutionwithadvancednetworking,aprivatecontainerregistry,andlifecyclemanagement请访问原文链接:https://sysin.org/blog/vmware-tkgi/,......
  • 网站二级域名+cploar+shinyproxy构建web APP私有服务器
    网站二级域名+cploar+shinyproxy构建webAPP私有服务器WebAPP是一种功能相对单一的,可以在浏览器中运行的应用程序,构建相对容易且易于传播,被认为是临床预测模型最佳的载体。一种理想的情况,就是我们将构建的各种临床预测模型放置到网上,以“微服务”的形式存在,需要的时候登......
  • Kubernetes从零到精通(17-扩展-Operator模式)
    目录一、简介二、核心概念三、工作原理四、OperatorFrameworkSDK示例1.准备工作2.定义MySQLClusterCRD3.自定义资源实例4.编写控制器逻辑5.部署Operator6.验证一、简介        Kubernetes中的Operator模式是一种用于简化和自动化管理复杂应用程......