Kubernetes从零到精通(11-CNI网络插件)

news2024/9/20 14:52:17

 Kubernetes网络模型

      Kubernetes的网络模型(Kubernetes Networking Model)旨在提供跨所有节点、Pod和服务的统一网络连接。它的核心理念是通过统一的网络通信规则,保证集群中的所有组件能够顺畅地相互通信。Kubernetes网络模型主要有以下几个关键点:

1.Pod-to-Pod通信

        每个 Pod 都有一个独立的IP地址,即"IP per Pod" 模型。每个Pod中的所有容器共享同一个网络命名空间,因此可以通过localhost通信。

        Pod 之间直接通信:无论Pod在同一Node或不同Node上,它们可以直接通过IP地址互相通信,不需要使用NAT或端口映射。

2.Pod-to-Service通信

        如上节提到,Pod通过Service方式访问其他Pod。

3.Service-to-External通信

        如Ingress/Gateway API+ Service的ClusterIP模式;Service的NodePort模式;Service的LoadBalancer模式等。

4.Node-to-Pod通信

        在 Kubernetes集群中,节点上的应用可以直接与Pod通信,无需额外配置。Kube-proxy负责在节点级别管理这些网络规则,保证节点可以通过虚拟IP或端口访问服务。

5.网络策略(Network Policies)

        Kubernetes通过网络策略(Network Policies)来控制Pod之间的通信权限。网络策略允许用户基于标签、命名空间等指定允许或禁止的网络流量(必须使用支持NetworkPolicy实施的网络插件CNI)。

6.网络插件CNI( Container Network Interface)

        Kubernetes本身并不定义如何实现网络,而是通过CNI插件扩展网络功能。这些插件提供Pod 的网络接口配置和跨节点的网络互联能力。常见的CNI插件包括:

Calico:提供网络策略、网络隔离等高级功能。

Flannel:轻量级的 Overlay 网络方案。

Weave:提供简单的跨节点网络连接。

Pod-to-Pod场景

        在 Kubernetes 中,Pod和Pod之间通信是非常常见的需求,主要是为了实现应用之间的互操作性。虽然可以使用Pod-to-Service来解决大部分通信问题,但Pod之间直接通信也是有其场景和必要性的。

状态紧密关联的Pod

        某些场景下,多个Pod之间存在紧密的状态共享和低延迟的通信需求。例如:

数据库集群:在数据库集群中,主节点和从节点之间需要实时同步数据,直接Pod间通信比通过 Service更加高效。

高性能计算(HPC)和分布式计算:在某些需要低延迟的高性能计算场景下,多个Pod可能会进行频繁的点对点通信,例如分布式计算中的任务调度和数据交换。

有状态应用

        有些应用需要每个Pod直接与另一个特定Pod通信,尤其是在有状态应用中,例如Kafka、Cassandra等分布式系统。这类系统中,各个Pod可能有各自的状态和存储分片,彼此之间的通信不总是通过Service进行。

批处理任务

        在某些批处理任务中,多个Pod之间需要通过IP进行点对点通信以协调任务的执行。这类Pod通常是短期存在的,使用Service可能会增加额外的延迟和复杂度。

Kube-proxy和CNI的区别

        kube-proxy组件(或者已经部署的其他替换组件)是Kubernetes自带的组件,使用linux的iptables、IPVS 等,实现Service的虚拟 IP(ClusterIP)和负载均衡功能。主要管理Service层面的网络规则,而不管理底层的网络路由、网络策略等。

        CNI网络插件,使用linux的路由、虚拟网络技术等,主要实现Pod-to-Pod通信,以及网络安全策略等。以下介绍Flannel和Calico。

Flannel

Flannel简介

        Flannel是一种简单易用的Kubernetes网络插件,专注于为Kubernetes提供容器网络解决方案。它的主要作用是为Kubernetes集群中的Pod提供跨主机的网络连接,允许不同节点上的Pod能够互相通信。Flannel是一种覆盖网络(overlay network)实现,底层依赖于封装(encapsulation)技术来跨越不同节点的网络边界。

Flannel组件

flanneld:Flannel的主要守护进程,负责分配子网并处理数据包的封装与解封装。它运行在每个节点上,并与etcd或Kubernetes API Server交互,维护整个集群的子网分配信息。

etcd/Kubernetes API Server:Flannel通过etcd或Kubernetes API Server来存储和共享每个节点的子网信息。集群中的所有节点通过etcd或Kubernetes API Server了解如何将流量路由到其他节点上的Pod。

Backend(后端):Flannel支持多种网络后端,如VXLAN、host-gw、UDP等,决定了Flannel使用哪种方式封装和路由数据包。

Flannel的网络模式

        Flannel提供了多种模式,用户可以根据集群的实际需求选择不同的网络模式:

VXLAN模式:默认的Flannel网络模式,适合大多数情况下的Kubernetes集群,使用封装技术实现跨主机通信。

Host-GW模式:直接通过主机路由表实现节点间通信,适合物理网络已经具备节点直接通信的场景,性能相对较高。

UDP模式:最早的实现方式,依赖于UDP封装,但由于性能较差,通常不建议使用。

AWS VPC模式:针对AWS环境的优化,允许Flannel与AWS的VPC网络集成。

Calico

Calico简介

        Calico是一种广泛使用的Kubernetes网络插件,主要用于提供容器网络和网络安全策略。Calico的设计目标是提供高性能的、可扩展的网络连接,并且能够在Kubernetes集群中实施细粒度的安全策略(网络策略)。它可以在多个云环境和裸机上工作,既支持容器网络,也支持虚拟机和物理主机的网络。它通过直接路由实现Pod的网络通信,而不依赖像VXLAN或GRE这样复杂的隧道封装(overlay)技术。

Calico组件

Felix:Calico的核心组件,运行在每个节点上,负责配置和管理节点上的网络路由和防火墙规则。Felix会根据Kubernetes中定义的网络策略和Calico的配置来控制网络的流量。它负责维护主机的路由表、接口、IP地址和防火墙规则,以便正确地转发数据包和应用安全策略。

BIRD:Calico的BGP功能依赖于一个轻量级的BGP路由守护进程,通常使用BIRD。BIRD负责在集群节点之间分发路由信息,从而确保每个节点都知道如何将流量发送到其他节点的Pod。

etcd/Kubernetes API Server:Calico通过etcd或Kubernetes API Server来存储和共享网络状态信息。通过这些存储,Calico能够记录各个节点的Pod IP分配和网络策略配置。

Calico的网络模式

Calico可以通过以下两种模式实现跨节点的Pod通信:

BGP模式:Calico默认使用BGP路由协议来分发路由信息,每个节点会通过BGP将本节点的PodIP地址段发布给集群中的其他节点。通过BGP,所有节点之间形成了一个互通的网络,每个节点知道如何将流量路由到其他节点上的Pod。

网络命名空间的相关介绍在这里,最后有Calico BGP模式的底层模拟:Linux技术01-虚拟网络、网络命名空间

IP-in-IP模式:在某些情况下,底层网络无法直接路由Pod的IP地址(例如,两个节点的网络无法直接互通)。此时,Calico可以启用IP-in-IP模式,将Pod的IP包封装在主机的IP包中进行传输。这种模式类似于VXLAN,但仍然比封装隧道轻量。

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

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

相关文章

【html网页制作】传统文化书法主题网页制作html+css(6页面附效果源码)

HTMLCSS传统文化主题书法网页制作 🍔涉及知识🥤写在前面🍧一、网页主题🌳二、网页效果菜单切换效果PageA、整体页Page1、主页Page2、行书页Page3、楷书页Page4、隶书页Page5、篆书页Page6、草书页 🐋三、网页架构与技术…

启动cadence过程中出现cdn_sfl401as.dll缺失问题解决办法_不需要重装软件

有时候,由于OrCAD安装了多了版本或其他原因,原本用的好好地CAD突然无法使用,一般是因为你安装的新软件或者其他操作与原来的CAD环境冲突,出现了cdn_sfl401as.dll等多个dll文件缺失现象,提示需要重装环境。 重装环境&a…

11 vue3之插槽全家桶

插槽就是子组件中的提供给父组件使用的一个占位符&#xff0c;用<slot></slot> 表示&#xff0c;父组件可以在这个占位符中填充任何模板代码&#xff0c;如 HTML、组件等&#xff0c;填充的内容会替换子组件的<slot></slot>标签。 匿名插槽 1.在子组…

electron多标签页模式更像客户端

Electron多标签页模式是指在Electron框架中实现的类似Web浏览器的多标签页功能。Electron是一个使用Web技术&#xff08;HTML、CSS和JavaScript&#xff09;来创建跨平台桌面应用程序的框架。在Electron中实现多标签页模式&#xff0c;通常需要借助一些特定的库或组件&#xff…

qt-creator-10.0.2之后版本的jom.exe构建和编译速度慢下来了

1、Qt的IDE一直在升级&#xff0c;qt-creator的新版本下载地址 https://download.qt.io/official_releases/qtcreator/ 2、本人一直用的是qt-creator-10.0.2版本&#xff0c;官网历史仓库可以下载安装包qt-creator-opensource-windows-x86_64-10.0.2.exe https://download.qt…

Elastic 的 OpenTelemetry PHP 发行版简介

作者&#xff1a;Pawel Filipczak 宣布 OpenTelemetry PHP 的 Elastic 发行版的第一个 alpha 版本。在本篇博文中了解使用 OpenTelemetry 来检测 PHP 应用程序是多么简单。 我们很高兴推出 OpenTelemetry PHP 的 Elastic Distribution 的第一个 alpha 版本。在这篇文章中&…

“悟空”带火古建游,KPaaS 为酒旅行业打造长效流量

8月20日&#xff0c;首款国产3A游戏&#xff08;高质量、高体量、高成本的单机游戏&#xff09;《黑神话&#xff1a;悟空》正式推出&#xff0c;游戏发售近一个月&#xff0c;热度不但没有减退&#xff0c;反而在中秋假期迎来了一个小高潮。据国外数据分析公司 VG Insights 的…

稀土长余辉发光剂在陶瓷上应用场景有哪些?

基于稀土离子独特的4f电子层结构,具有多种电子跃迁形式&#xff0c;因此其光学特性丰富。将其掺杂于不同类型的晶体基质中&#xff0c;得到稀土长余辉材料,即可实现长余辉发光效果,发光时间可长达6-10小时。 稀土长余辉发光材料在陶瓷上的应用主要利用了其在激发后能够持续发光…

雷朋太阳镜和AEG的制胜法宝是:音乐节以及数据驱动的品牌推广

图片来源&#xff1a;Photo by Ethan Robertson on Unsplash 几十年来&#xff0c;我们见证了流行文化偶像对大众的影响。雷朋一直是一个深受偶像和大众喜爱的品牌。借助这股浪潮&#xff0c;雷朋与全球最大的娱乐公司之一AEG合作&#xff0c;吸引消费者&#xff0c;并以沉浸式…

力扣题解2332

大家好&#xff0c;欢迎来到无限大的频道。 今日继续给大家带来力扣题解。 题目描述&#xff08;中等&#xff09;​&#xff1a; 坐上公交的最晚时间 给你一个下标从 0 开始长度为 n 的整数数组 buses &#xff0c;其中 buses[i] 表示第 i 辆公交车的出发时间。同时给你一…

(计算机毕设)基于SpringBoot+Vue的“乐锄”农产品销售网站的设计与实现

毕业设计&#xff08;论文&#xff09; 博主可接毕设&#xff01;&#xff01;&#xff01; 基于SpringBootVue的“乐锄”农产品销售网站的设计与实现 摘 要 传统的农资采购销售模式&#xff0c;造成农业生产的效率和质量低&#xff0c;人们对食品安全问题关注不断增加&#x…

WhaleStudio 与飞腾 S5000C 处理器完成产品兼容测试!

中秋佳节后喜讯传来&#xff01;经过飞腾信息技术有限公司和北京白鲸开源科技有限公司的联合严格测试&#xff0c;白鲸开源 WhaleStudio 套件 V2.6 版本已在飞腾信息技术有限公司的腾云 S5000C 处理器平台上成功安装并稳定运行。 这标志着白鲸开源商业与飞腾的合作进入了一个新…

QT widgets 窗口缩放,自适应窗口大小进行布局

1. 窗口布局 2. 尺寸策略&#xff1a;扩展 Fixed (固定): 行为&#xff1a;控件的大小是固定的&#xff0c;不会随着窗口大小的变化而改变。它的大小由控件的 sizeHint() 返回的值决定。 适用场景&#xff1a;当你希望控件的大小保持不变&#xff0c;不随布局调整时使用&#x…

2018年国赛高教杯数学建模C题大型百货商场会员画像描绘解题全过程文档及程序

2018年国赛高教杯数学建模 C题 大型百货商场会员画像描绘 原题再现 在零售行业中&#xff0c;会员价值体现在持续不断地为零售运营商带来稳定的销售额和利润&#xff0c;同时也为零售运营商策略的制定提供数据支持。零售行业会采取各种不同方法来吸引更多的人成为会员&#x…

如何搭无人直播?这2种方式靠谱!

如何搭无人直播&#xff1f;这2种方式靠谱&#xff01; 这几个步骤可以搭建一个合规的无人直播间&#xff0c;大家用心看哦#无人直播#直播带货#直播违规 家人们今天带大家来看一下直播&#xff0c;带货还能这两波&#xff0c;我们只需要一台手机&#xff0c;再加上一个软件&a…

(11)(2.1.2) DShot ESCs(二)

文章目录 前言 3 配置伺服功能 4 检查RC横幅 5 参数说明 前言 DShot 是一种数字 ESC 协议&#xff0c;它允许快速、高分辨率的数字通信&#xff0c;可以改善飞行器控制&#xff0c;这在多旋翼和 quadplane 应用中特别有用。 3 配置伺服功能 如上所述&#xff0c;如果使用…

面试复盘与 AI 大模型学习

面试相关 一、面试公司与岗位信息 面试公司&#xff1a;顺丰科技面试岗位&#xff1a;AI 方向产品经理工作地点&#xff1a;深圳面试结果&#xff1a;通过&#xff0c;但放弃了该 offer 二、面试过程 整体情况 整个暑期实习面试之旅包含三轮&#xff0c;其中两轮是专业面试…

基于单片机的自动门控制系统

本设计基于单片机的自动门控制系统。该系统以单片机STM32F103C8T6为核心&#xff0c;配备了多种硬件设备&#xff0c;包括DHT11温湿度传感器、HC-SR505人体感应模块、红外对管、OLED显示器和步进电机等。系统提供自动和手动两种工作模式。在自动模式下&#xff0c;系统能够感应…

uniapp中使用picker-view选择时间

picker-view 是 UniApp 中用于展示和选择数据的组件。它适用于创建多列选择器&#xff0c;类似于 iOS 和 Android 系统中的选择器视图。以下是 picker-view 的详细介绍&#xff0c;包括用法、属性和事件。 一 用法 <template><view><picker-view :value"…

计算机组成原理(笔记3)

IEEE754浮点数标准 这里只讲32位单精度 S——尾数符号&#xff0c;0正1负&#xff1b; M——尾数, 纯小数表示, 小数点放在尾数域的最前面。 一般采用原码或补码表示。 E——阶码&#xff0c;采用“移码”表示; 阶符采用隐含方式&#xff0c;即采用“移码”方法来表示正负指数…