k8---proxy

kube-proxy 通过 Informer知道了Service、endpoints对象的创建,然后把service身上的CLUSTER-IP 和端口已经端点信息拿出来,创建iptable NAT规则做转发或通过ipvs模块创建VS服务器,这样经过CLUSTER-IP的流量都被转发到后端pod。

iptables模式

我们先查看nat表的OUTPUT链,存在kube-proxy创建的KUBE-SERVICE链

iptables -nvL OUTPUT -t nat

在KUBE-SERVICES链中有一条目的地为10.96.148.206即CLUSTER-IP地址跳转到KUBE-SVC-EJUV4ZBKPDWOZNF4

iptables -nvL KUBE-SERVICES -t nat |grep service-demo

接着是查看这条链,以1/3的概率跳转到其中一条

iptables -nvL KUBE-SVC-EJUV4ZBKPDWOZNF4 -t nat

最后KUBE-SEP-BTFJGISFGMEBGVUF链终于找到了DNAT规则

iptables -nvL KUBE-SEP-BTFJGISFGMEBGVUF -t nat

即将请求通过DNAT发送到地址100.101.184.61:9376也就是我们其中一个Pod。

IPVS模式

与iptalbes模式相比,IPVS模式工作在内核态,在同步代理规则时具有更好的性能,同时提高网络吞吐量为大型集群提供了更好的可扩展性。

IPVS 模式在工作时,当我们创建了前面的 Service 之后,kube-proxy 首先会在宿主机上创建一个虚拟网卡kube-ipvs0,并为它分配 Service VIP 作为 IP 地址,如图

接着kube-proxy通过Linux的IPVS模块为这个 IP 地址添加三个 IPVS 虚拟主机,并设置这三个虚拟主机之间使用轮询模式 来作为负载均衡策略。

通过ipvsadm查看

ipvsadm -ln |grep -C 5 10.96.148.206

可以看到虚拟server的IP即是Pod的地址,这样流量即向了目的地Pod。

以上我们先认识了Service这个API对象,接着讲到了service与endpoints和pod的关联,然后是service与kube-proxy的关系,以及kube-proxy的两种模式如何通过service的IP创建iptables、IPVS规则将流量转发到Pod。

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

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

相关文章

logstash密码设置步骤

生成密钥存储仓库 cd /app/logstash-6.8.4/bin/ ./logstash-keystore create 输入y 添加Logstash中可引用的变量 ./logstash-keystore add es_user 输入elastic ./logstash-keystore add es_pwd 输入bamBoo123 ./logstash-keystore add kafka_pwd 输入bamBoo123 ./logstash…

pycharm 自动补全括号 引号

过程&#xff1a; File->settings->Editior->General->Smart Keys 勾选Insert paired barckets(),[],{},<>

IndexError: list index out of range image_name=self.images_name[index]

这里是引用 def __len__(self):return len(self.images_name) 注意这个地方

Anaconda如何重新在开始菜单显示

步骤&#xff1a; &#xff08;1&#xff09; win R &#xff0c;然后输入Cmd 进入电脑命令端 &#xff08;2&#xff09;cd 进入anaconda 安装的路径&#xff0c;然后 输入 、、、 python .\Lib_nsis.py mkmenus 、、、 然后就OK了

python matplotlib 绘制曲线图,柱状图

matplotlib.pyplot.bar(x, y, width0.8, bottomNone, \*, aligncenter, dataNone, \*\*kwargs) x:x轴的数据值&#xff0c;或者标签 y:每个标签的值 width: 每个柱形图中每个柱子的宽度 bottom&#xff1a;y轴的基准值&#xff08;一般为0&#xff09; align: 柱形图中每个柱子…

python plt.plot bar 设置绘图尺寸大小

plt.rcParams(figure.figsize)(12,8) 修改前 修改后

Latex+Texstudio+Texlive 2020 windows10 安装教程

1.Texlive2020安装 清华大学镜像文件 link,下载比较快&#xff0c;尽量用这个资源 然后解压之后 点击 install-tl-window 即可安装 安装过程一个小时左右 2.Texstudio 安装 官网地址 link 然后安装 安装完成即可 % 导言区 \documentclass{article} % 导入中文宏 \us…

pyhton 面向对象(下)

1.私有属性 两个下划线开头&#xff0c;声明该属性为私有&#xff0c;不能在类的外部使用或者被访问 派生类&#xff08;子类&#xff09;不能去继承 class person:def __init__(self):self.__name黎明self.age30xlperson() print(xl.age) print(xl.__name)30不能继承父类的私…

Python 面向对象(中)

在python中面向对象的三大特征&#xff1a; 封装&#xff0c;继承&#xff0c;多态 1. 析构方法 程序结束后&#xff0c;之后调用析构方法&#xff0c;来释放空间 def __del__(self):print("析构方法")2.单继承 子类继承父类 class animal():def eat(self):prin…

Python 面向对象 实例方法 属性 (上)

1.面对对象和面对过程的区别 面向对象&#xff1a; 将数据与函数绑定到一起&#xff0c;进行封装&#xff0c;这样能够跟快的开发程序&#xff0c;减少代码的重复书写。 函数式&#xff1a; 包装为一个函数&#xff0c;然后调用 **面向过程&#xff1a;**根据业务逻辑从上到下…

Python高级数据类型-字符串,列表,元组,字典

0.序列 序列&#xff1a;在python中 序列就是一组按照顺序排列的值 python中三种内资的序列类型&#xff1a;字符串&#xff0c;列表&#xff0c;元组 优点&#xff1a;支持索引和切片的操作&#xff0c;从0开始 1.字符串 可以查询&#xff0c;修改 字符串常用的方法 ahe…

Juypter 代码自动补全

1.安装 pip install jupyter_contrib_nbextensions2. 配置 安装完之后需要配置 nbextension&#xff0c;注意配置的时候要确保已关闭 Jupyter Notebook&#xff1a; jupyter contrib nbextension install --user --skip-running-check3.启动 Jupyter Notebook 勾选Hinderlan…

Pytorch Anaconda 安装CPU版本

进入官网 https://pytorch.org/get-started/locally/ 然后打开 anaconda Prompt 输入 conda install pytorch torchvision cpuonly -c pytorch 即可

神经网络加载数据 自建数据集 官方数据集 pytorch 显示数据集

1.官方的数据集 MNIST 使用torchvision.datasets 里面有很多数据集供选择 import torch import torchvision from torchvision import transforms, models batch_size 32 transform transforms.Compose([transforms.ToTensor(),transforms.Normalize(mean(0.5),std(0.5)),…

Juypter 打开其他路径文件

juypter 打开默认的C盘路径 假如我们想要进入其他盘&#xff08;D,E,F&#xff09;时&#xff0c;我们需要进入命令行&#xff0c;然后cd 到其他盘&#xff0c;再在命令行中运行juypter 过程如下 >>>cd D:/train >>>juypter notebook如果显示jupyter noteboo…

离线安装 Pytorch 1.2.0 torchvision 0.3.0

1.进入官网 https://download.pytorch.org/whl/torch_stable.html 选择自己合适的下载下来&#xff0c;然后把下载下来的文件 放入服务器的指定文件夹中 2.cd 到指定文件夹 运行 pip3 install torch-1.0.0-cp36-cp36m-linux_x86_64.whlpip install torchvision-0.2.0-py2.…

Python报错:PermissionError: [Errno 13] Permission denied 解决方案详解

出现错误的原因&#xff1a; 1.文件找不到&#xff0c; 2.文件被占用&#xff0c; 3.文件无权限访问&#xff0c; 4.打开的不是文件&#xff0c;而是一个目录&#xff0c; 我就是这个问题&#xff0c;打开的是一个目录

Ubuntu18.0.1 安装 anaconda conda cudnn pytorch-gpu

安装显卡驱动 查看驱动版本 cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2 安装anaconda 下载&#xff1a; 获取anaconda在清华镜像站的网址&#xff0c;然后在服务器端wget 网址就行了。 清华镜像站中anaconda的所有版本的网址&#xff1a;https://mirror…

win10 利用安装包 安装 ssh

下载ssh https://github.com/PowerShell/Win32-OpenSSH/releases 然后把它放入 C:\Program Files 中 添加环境变量 高级系统设置-》高级-》环境变量-》 是用户变量 不是系统变量 选择 path- 然后点击编辑&#xff0c;然后新建&#xff0c; 把刚才的地址放进去 C:\Program F…