k8s的网络

k8s的网络 

k8s中的通信模式:

1、pod内部之间容器与容器之间的通信

在同一个pod中的容器共享资源和网络,使用同一个网络命名空间,可以直接通信的

2、同一个node节点之内,不同pod之间的通信

每个pod都有一个全局的真实的ip地址,同一个node直接的不同pod可以直接使用对方pod的ip地址进行通信

pod1和pod2是通过docker0的网桥来进行通信

3、不同node节点上的pod之间如何进行通信

cni的插件

cni是一个标准接口,用于容器运行时调用网络插件,配置容器网络,负责设置容器的网络命名空间,ip地址,路由等等参数

flannel插件:功能就是让集群之中不同节点的docker容器具有全集群唯一的虚拟ip地址

overlay网络:在底层物理网络的基础之上创建一个逻辑的网络层,二层+三层的集合,二层是物理网络,三层是逻辑上的网络层

overlay网络也是一种网络虚拟化的技术

flannel支持的数据转发方式:

1、UDP模式:默认模式(一般不用),应用层的转发,配置简单,但是性能最差

2、vxlan:基于内核转发,也是最常用的网络类型(小集群都是用这个)

3、host-gw:性能最好,但是配置麻烦

UDP:基于应用转发,是由flannel提供路由表,由flannel封装数据包,以及解封装

node都会有一个flannel的虚拟网卡

vxlan:使用的就是overlay的虚拟隧道通信技术。二层+三层的模式

udp基于应用层,用户态

vxlan:flannel提供路由表,内核封装解封装

flannel1.1接口

安装flannel:

93、94:

把软件包拖到opt目录

91:

cd /opt/k8s

传 kube-flannel.yml 文件到 /opt/k8s 目录中,部署 CNI 网络

93、94:

ifconfig查看一下有没有flannel.1

Calico插件:

flannel:每个发向容器的数据包进行封装,vxlan通过vtep打包数据,由内核封装数据包---------->转发到目标的node节点。

到了目标节点,还有一个解封装的过程,再发送到目标pod,性能是有一定影响的

calico:采用直接路由的方式。BGP路由,不需要修改报文,统一直接通过路由表转发,路由表会很复杂,运行维护的要求比较高

BGP模式的特点:交换路由信息的外部网关协议,可以连接不同的节点,node节点可能不是一个网段,BGP实现可靠的,最佳的,而且是动态的路由选择。自动识别相邻的路由设备

calico不使用overlay,也不需要交换,直接通过虚拟路由实现,每一台虚拟路由都通过BGP转发

核心组件:

felix:也是运行在主机的一个个pod,一个进程,k8s daemonset的方式部署的pod

daemontset会在每个node节点部署相同的pod,后台的运行方式

负责在宿主机上插入路由规则,维护calico所需要的网络设备。网络接口管理,监听,路由等等

BGP Client:bird  BGP的客户端,专门负责在集群中分发路由规则的信息,每一个节点都会有一个BGP client

BGP协议广播方式通知其他节点,分发路由的规则,实现网络互通

etcd:保存路由信息,负责网络元数据的一致性,保证整个网络状态的一致和准确

calico的工作原理:

路由表来维护每个pod之间的通信

创建好pod之后,会添加一个设备cali       veth pair设备

虚拟网卡:veth pair是一对设备,虚拟的以太网设备

一头连接在容器的网络命名空间  eth0

另一头连接宿主机的网络命名空间  cali

ip地址fenpei:veth pair连接容器的部分给容器分配一个ip地址,这个ip地址是唯一标识,宿主机也会被veth pair分配一个calico网络的内部ip地址,和其他节点上的容器进行通信

veth设备,容器发出的ip地址通过veth pair设备到宿主机,宿主机根据路由规则的下一跳地址,发送到网关(目标宿主机)

数据包到达目标宿主机,veth pair设备,目标宿主机也是根据规则,下一跳地址,转发到目标容器

ipip模式:会生成一个tunnel。数据包都在tunnel内打包。封装:宿主机ip,容器内部的ip地址

安装calico:

91:

拖yml包

取消注释(ip地址自定义)

kubectl apply -f calico.yaml

kubectl get pods -n kube-system

kubectl get nodes

93、94:

ifconfg

flannel和calico:

flannel的特点:

配置简单,功能简单,基于overlay叠加网络实现,在物理层的网络上再封装一个虚拟的网络

vxlan是虚拟三层网络

udp是默认模式

host-gw

由于封装和解封装的过程,对数据传输的性能会有影响,没有网络策略配置的能力UDP(协议)

默认网段:10.244.0.0/16

calico的特点:

功能强大,基于路由表进行转发,没有封装和解放装的过程。具备网络策略的配置能力,但是路由表维护起来比较复杂

模式:ipip  BGP

BGP:通过ip路由表的前缀来实现目标主机的可达性

对比ipip模式,BGP模式没有隧道,BGP模式下,POD的数据包直接通过网卡发送到目的地

ipip的隧道,隧道进行数据包的封装ipv4----ipv4

简单的小集群:flannel

扩容,配置网络策略:calico

coredns:

可以集群当中的service资源创建一个域名和ip进行对应解析的关系

service

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

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

相关文章

商智C店H5性能优化实战

前言 商智C店,是依托移动低码能力搭建的一个应用,产品面向B端商家。随着应用体量持续增大,考虑产品定位及用户体验,我们针对性能较差页面做了一次优化,并取得了不错的效果,用户体验值(UEI&…

122基于matlab的CSO-SVM,BA-SVM模式识别模型

基于matlab的CSO-SVM,BA-SVM模式识别模型。优化SVM的两个参数晚上最佳参数确定。输出分类识别结果和准确率。数据可更换自己的,程序已调通,可直接运行。 122鸡群优化算法蝙蝠优化算法 (xiaohongshu.com)

界面控件DevExpress Blazor Grid v23.2 - 支持全新的单元格编辑模式

DevExpress Blazor UI组件使用了C#为Blazor Server和Blazor WebAssembly创建高影响力的用户体验,这个UI自建库提供了一套全面的原生Blazor UI组件(包括Pivot Grid、调度程序、图表、数据编辑器和报表等)。 在这篇文章中,我们将介…

大数据HCIE成神之路之特征工程——特征选择

特征选择 1.1 特征选择 - Filter方法1.1.1 实验任务1.1.1.1 实验背景1.1.1.2 实验目标1.1.1.3 实验数据解析1.1.1.4 实验思路 1.1.2 实验操作步骤 1.2 特征选择 - Wrapper方法1.2.1 实验任务1.2.1.1 实验背景1.2.1.2 实验目标1.2.1.3 实验数据解析1.2.1.4 实验思路 1.2.2 实验操…

以 Serverfull 方式运行无服务器服务

当前 IT 架构中最流行的用例是从 Serverfull 转向 Serverless 设计。在某些情况下,我们可能需要以 Serverfull 方式设计服务或迁移到 Serverfull 作为运营成本的一部分。 在本文中,我们将展示如何将 Kumologica flow 作为 Docker 容器运行。通常&#x…

Element|InfiniteScroll 无限滚动组件的具体使用方法

目录 InfiniteScroll 无限滚动 基本用法 详细说明 v-infinite-scroll 指令 infinite-scroll-disabled 属性 infinite-scroll-distance 属性 总结 需求背景 : 项目统计管理列表页面,数据量过多时在 IE 浏览器上面会加载异常缓慢,导致刚…

【iOS安全】JS 调用Objective-C中WKWebview Handler的三种方式

有三种实现途径 1. WKScriptMessageHandler OC部分:注册并实现Handler 将OC中的方法"nativeMethod"注册为JavaScript Message Handler,从而WebView中的JavaScript代码可以调用该方法 // Register in Objective-C code - (void)setupWKWebVi…

Linux的systemctl命令

Linux系统很多软件均支持使用systemctl命令控制:启动、停止、开机自启 形式: systemctl start | stop | status | enable | disable 服务名 enable : 自启动 disable : 关闭自启动 系统内置的服务比较多,比如: NetworkManage…

打造高效会员卡营销策划方案,提升门店业绩

在激烈的行业竞争中,如何有效提升店铺的业绩,提高客户粘性和消费频次呢?答案可能就在你手中——那就是有效的会员卡营销策略。下面给大家探讨如何设计会员卡营销策划方案,从而增加客户的忠诚度,并推动销售增长。以目前…

Springboot通过profiles切换不同环境使用的配置

文章目录 简介1.通过分隔符隔离2.通过使用不同的配置文件区分3.测试 简介 一个项目从开发到上线一般要经过几个环境, dev测试环境-uat预生产环境-prod生产环境,每个环境的使用的数据库或者配置不同,这时候可以通过下面两种方式区分配置,达到快速切换的效…

Cytoscape3.9安装包下载及安装教程

Cytoscape3.9下载链接:https://docs.qq.com/doc/DUldkdndLdlJ2TlJJ 1、选中下载好的安装包,右键选择解压到【Cytoscape3.9.1】文件夹 2、双击打开【OpenJDK11U-jdk_x64_windows_hotspot_11.0.7_10.msi】 3、点击【下一步】 4、勾选【我接受许可协议】&am…

APPnium 自动化实践 :第一步adb 连接手机

1. 下载安装 adb ,添加到环境变量。 ADB Download - Get the latest version of ADB and fastboot 2. 手机开启开发者模式 https://developer.huawei.com/consumer/cn/doc/quickApp-Guides/quickapp-open-developer-option-0000001137005543 3. adb 连接设备 【And…