D28 Service 代理模式

news/2025/1/28 23:18:14/文章来源:https://www.cnblogs.com/suyj/p/18691078
  当访问Service的IP地址时,流量会转发到后端Pod,那这个转发是怎么实现的呢?Service是一个抽象的资源对象,主要用于定义端口映射规则。具体的流量转发工作由kube-proxy组件负责,它利用主机上的iptables和IPVS技术来实现具体的网络转发,如下图所示:

image

  kube-proxy组件默认使用iptables作为代理模式,通过在节点上自动配置iptables规则来实现Pod的负载均衡和网络转发。在使用IPVS作为代理模式时,kube-proxy组件在节点上自动配置IPVS规则来实现Pod的负载均衡和网络转发

1、iptables

  当创建一个Service时,kube-proxy组件会在节点上创建一系列iptables规则,这些规则可以在任意节点上通过iptables-save命令进行查看。由于规则比较多,可以结合grep命令过滤出与指定Service名称相关的规则。例如,要查看与名为java-web-demo的Service相关的iptables规则,则执行iptables-save|grep java-web-demo|grep 命令,在输出结果中包含着一条规则
[root@v-k8s-node01-172 ~]# iptables-save | grep java-web-demo | grep KUBE-SERVICES
-A KUBE-SERVICES -d 10.100.86.184/32 -p tcp -m comment --comment "default/java-web-demo cluster IP" -m tcp --dport 80 -j KUBE-SVC-WEIBUWJB5IEUBC6W
  这条规则的作用是将目标IP地址10.100.86.184和目标端口80的tcp流量转到KUBE-SVC-WEIBUWJB5IEUBC6W链中进一步处理
  • 各部分的含义具体如下:
    • -A KUBE-SERVICES:这条规则在 KUBE-SERVICES 链中,该链是专门为Service创建的
    • -d 10.100.86.184/32:匹配目标地址为-d 10.100.86.184的流量
    • -p tcp:仅处理tcp流量
    • --comment "default/java-web-demo cluster IP":这是一个注释,用于对规则进行描述,以方便我们对其进行管理
    • -m tcp --dport 80:匹配目标端口为80的tcp流量
    • -j KUBE-SVC-WEIBUWJB5IEUBC6W:如果上述条件匹配,则将流量跳转到 KUBE-SVC-WEIBUWJB5IEUBC6W链
      继续查看链 KUBE-SVC-WEIBUWJB5IEUBC6W中的规则,执行iptables-save | grep KUBE-SVC-WEIBUWJB5IEUBC6W命令,在输出结果中包含着三条规则
-A KUBE-SVC-WEIBUWJB5IEUBC6W -m comment --comment "default/java-web-demo -> 10.244.116.113:8080" -m statistic --mode random --probability 0.33333333349 -j KUBE-SEP-QGIX66R4FOPYF4JB
-A KUBE-SVC-WEIBUWJB5IEUBC6W -m comment --comment "default/java-web-demo -> 10.244.184.106:8080" -m statistic --mode random --probability 0.50000000000 -j KUBE-SEP-I573FBOIRRCRPSA5
-A KUBE-SVC-WEIBUWJB5IEUBC6W -m comment --comment "default/java-web-demo -> 10.244.184.107:8080" -j KUBE-SEP-6GBGHVPUGTGNFTCS
这一组规则用于将流量跳转到指定的链,这里是实现负载均衡的关键所在
  iptables规则是按照顺序从上到下匹配的,如果有多条相同条件规则,则会始终匹配到第一条规则。kubernetes为了实现负载均衡的能力,在上述相同条件规则中添加了-m statistic --mode random --probability参数,这表示以随机的方式按照给定的概率选择是否匹配这条规则。距离来说,第一条规则有33.33%的概率被匹配,如果第一条没有被匹配(既未被选中),那么第二条规则酱油50%的概率被匹配,如果前两条规则都没有被匹配(既未被选中),则匹配第三条规则,从而实现了简单的负载均衡算法,确保了这些规则被均匀匹配例如,匹配第一条规则,流量会被调整到KUBE-SEP-QGIX66R4FOPYF4JB链,执行iptables-save|grep KUBE-SEP-QGIX66R4FOPYF4JB命令查看该链规则,其输出结果包含这一条规则
-A KUBE-SEP-QGIX66R4FOPYF4JB -p tcp -m comment --comment "default/java-web-demo" -m tcp -j DNAT --to-destination 10.244.116.113:8080
  这条规则的作用是通过DNAT(目标地址转换)将流量重定向到目标IP地址10.244.116.113的tcp端口8080,既其中一个后端PodIP和端口

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

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

相关文章

05_LaTeX之排版样式设定

本章内容将一览如何修改 $\LaTeX{}$ 的排版样式。05_\(\LaTeX{}\) 之排版样式设定 目录05_\(\LaTeX{}\) 之排版样式设定字体和字号字体样式字号选用字体宏包字体编码使用 fontspec 宏包更改字体在 ctex 宏包或文档类中更改中文字体使用 unicode-math 宏包配置 Unicode 数学字体…

第十章 输入输出系统

第十章 输入输出系统 本文是对《操作系统真象还原》第十章学习的笔记,欢迎大家一起交流,目前所有代码已托管至 fdx-xdf/MyTinyOS 。 上一章遗留的问题 在上一节中,我们实现了多线程轮转调度,但是当我们运行一段时间后,就会发生GP异常 ​​ 待解决的几个问题:输出中,有些…

【每日一题】20250125

不等和等下去,同样苦涩。【每日一题】已知变量 \(x\) 和变量 \(y\) 的一组成对样本数据为 \((x_i,y_i)(i=1,2,3,\cdotp\cdotp\cdotp,8)\),其中 \(\overline{x}=\frac98\),其回归直线方程为 \(\hat{y}=2x-\frac14\),当增加两个样本数据 \((-1,5)\) 和 \((2,9)\) 后,重新得到…

云手机还是会被检测!还能用来多开吗?

云手机还是会被检测!还能用来多开吗? 云手机确实可以用于多开,但是否会被检测到以及是否安全,取决于多种因素,包括云手机服务提供商的技术、用户的操作方式以及目标应用(如微信、游戏等)的检测机制。以下是关于云手机多开的安全性和可行性的详细分析:云手机多开的原理 …

P1038神经网络

神经网络 题目背景 人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别、函数逼近及贷款风险评估等诸多领域有广泛的应用。对神经网络的研究一直是当今的热门方向,兰兰同学在自学了一本神经网络的入门书籍后,提出了一个简化模型,…

Phi小模型开发教程:C#使用本地模型Phi视觉模型分析图像,实现图片分类、搜索等功能

大家好,我是编程乐趣。 我们都知道,要实现对结构化的数据(文本)搜索是比较容易的,但是对于非结构化的数据,比如图片,视频就没那么简单了。 但是现在有了AI模型,实现图片分类、搜索等功能,就变得容易很多。 在前面的文章里,我们有提到:Phi-vision 是一个拥有 42 亿参…

E95 01分数规划+树上背包 P1642 规划

视频链接: P1642 规划 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)// 01分数规划+树上背包 复杂度:n*m*log(1e9) #include <bits/stdc++.h> using namespace std;int read(){int x=0,f=1;char c=getchar();while(!isdigit(c)){if(c==-)f=-1;c=getchar();}while(is…

年级第一暗杀计划

[SDOI2008] 仪仗队 题目描述 作为体育委员,C 君负责这次运动会仪仗队的训练。仪仗队是由学生组成的 \(N \times N\) 的方阵,为了保证队伍在行进中整齐划一,C 君会跟在仪仗队的左后方,根据其视线所及的学生人数来判断队伍是否整齐(如下图)。现在,C 君希望你告诉他队伍整齐…

Burp Suite Professional 2025.1 发布下载,新增功能简介

Burp Suite Professional 2025.1 发布下载,新增功能简介Burp Suite Professional 2025.1 (macOS, Linux, Windows) - Web 应用安全、测试和扫描 Burp Suite Professional, Test, find, and exploit vulnerabilities. 请访问原文链接:https://sysin.org/blog/burp-suite-pro/ …

ubuntu配置核心转储文件路径并调试(nju ics PA)

调整 core pattern编辑 /etc/sysctl.conf sudo nano /etc/sysctl.conf修改kernel.core_pattern kernel.core_pattern=./core.%d.%f.%p.%t# %d 可执行文件目录名 # %f 可执行文件名 # %p 进程 ID # %t 时间的十进制值 (2) 可以自行修改格式,参考变量名和含义 使其生效 sudo sy…

solon-flow 你好世界!

solon-flow 是一个基础级的流处理引擎(可用于业务规则、决策处理、计算编排、流程审批等......)。提供有 “开放式” 驱动定制支持,像 jdbc 有 mysql 或 pgsql 等驱动,可为不同的应用场景定制不同的驱动处理。solon-flow 是一个基础级的流处理引擎(可用于业务规则、决策处…