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.mfbz.cn/a/298252.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

日志高亮 | notepad

高亮显示日志 日志文件无法清晰看到关键问题所在? 看到一堆日志头疼?高亮日志可以清晰展示出日志的 ERROR级等各种等级的问题, 一下浏览出日志关键所在 tailspin 项目地址: https://githubfast.com/bensadeh/tailspin 使用Rust包管理器cargo安装 安装 - Cargo 手…

【ASP.NET Core 基础知识】--环境设置

一、简介 1.1 .NET Core SDK 概述 .NET Core SDK(Software Development Kit)是Microsoft推出的一个开源跨平台框架,用于开发和部署.NET应用程序。它是.NET Core平台的核心组件之一,为开发者提供了在多个操作系统上构建高性能、可…

《数字图像处理》 第11章 表示和描述 学习笔记附部分例子代码(c++opencv)

表示和描述 0. 前言1. 表示1.1 边界追踪1.2 链码1.3 使用最小周长多边形的多边形近似 2. 边界描绘子2.1 一些简单的描绘子![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/45dddc76217e4fde93a11e2631b2a71a.png#pic_center 500x)2.2 形状数2.3 傅里叶描绘子2.4 统计…

智慧地球(AI•Earth)社区成立一周年啦!独家福利与惊喜彩蛋等你来拿!

原文:智慧地球(AI•Earth)社区成立一周年啦! 智慧地球社区 一周年庆典🎊 独家福利🎁与惊喜彩蛋🎉等你来拿! 智慧地球(AI•Earth)社区自2023年1月11日建立以…

软件测试|Docker Kill/Pause/Unpause命令详细使用指南

简介 Docker是一种流行的容器化平台,提供了各种命令和功能来管理和操作容器。本文将详细介绍Docker中的三个重要命令:kill、pause和unpause。我们将深入了解它们的作用、用法和示例,帮助您更好地理解和使用这些命令。 什么是Docker Kill/Pa…

C++异常处理机制

文章目录 C语言传统的处理错误的方式C异常概念异常的使用自定义异常体系C标准库的异常体系异常的优缺点 正文开始前给大家推荐个网站,前些天发现了一个巨牛的 人工智能学习网站, 通俗易懂,风趣幽默,忍不住分享一下给大家。 点击…

Mysql为什么只能支持2000w左右的数据量?

首先说明一下: MySQL并没有硬性规定只能支持到2000万左右的数据量。 其实,MySQL能够处理的数据量远远超过这个数字。无论是开源社区版还是商业版, MySQL在适当的硬件和配置下,都能够支持非常大的数据集。 通常所说的“MySQL只能…

延迟加载:提升性能的隐形利器

引言 想象一下,你正在玩一款大型电子游戏。如果游戏在启动的时候就加载了所有的关卡、角色和道具,那玩家可能需要等待很长时间才能开始游戏,而且大部分内容可能在游戏的初期都不会被用到。显然,这样的做法既低效又耗时。 而延迟加…

科研学习|论文解读——超准确性反馈:使用眼动追踪来检测阅读过程中的可理解性和兴趣

摘要: 了解用户想要什么信息是信息科学和技术面临的最大挑战。隐式反馈是解决这一挑战的关键,因为它允许信息系统了解用户的需求和偏好。然而,可用的反馈往往是有限的,而且其解释也很困难。为了应对这一挑战,我们提出了…

仿真炫酷烟花+背景音乐-H5代码实现_可直接运行【附完整源码】

文章目录 背景效果实现源码代码解析完整源码下载总结寄语 背景 烟花仿真是一项具有创意和娱乐性质的项目,旨在通过H5技术实现炫酷的烟花效果,并结合背景音乐营造出一个生动、愉悦的视听体验。该项目的目标是通过Web浏览器即时展现精美的烟花效果&#x…

Jackson反序列化的规则 没有无参构造报错问题

com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of java.util.function.Supplier. Jackson反序列化的规则 没有无参构造报错问题 ; 报错如下: com.fasterxml.jackson.databind.exc.InvalidDefinitionExce…

欧洲地区媒体发稿推广攻略10个利器解析-华媒舍

在当今数字化时代,媒体发稿是企业推广的重要手段之一。尤其是在欧洲地区这个高度发达的市场中,正确地运用媒体发稿推广工具将给企业带来巨大的商机。本文将揭示欧洲地区媒体发稿推广的10个利器,帮助企业更好地利用媒体发布推广信息&#xff0…

通过cpolar在公网访问本地网站

通过cpolar可以轻松将本地网址映射到公网进行访问,下面简要介绍一下实现步骤。 目录 一、cpolar下载 二、安装 三、使用 3.1 登录 3.2 创建隧道 一、cpolar下载 cpolar官网地址:cpolar - secure introspectable tunnels to localhost 通过QQ邮箱…

Python如何求解最长公共子序列

Python-求解两个字符串的最长公共子序列 一、问题描述 给定两个字符串,求解这两个字符串的最长公共子序列(Longest Common Sequence)。比如字符串1:BDCABA;字符串2:ABCBDAB。则这两个字符串的最长公共子序…

GPT实战系列-大模型为我所用之借用ChatGLM3构建查询助手

GPT实战系列-https://blog.csdn.net/alex_starsky/category_12467518.html 如何使用大模型查询助手功能?例如调用工具实现网络查询助手功能。目前只有 ChatGLM3-6B 模型支持工具调用,而 ChatGLM3-6B-Base 和 ChatGLM3-6B-32K 模型不支持。 定义好工具的…

【Android取证篇】小米手机OTG取证知识

【Android取证篇】小米手机OTG取证知识 小米手机OTG使用方法—【蘇小沐】 目录 1、OTG用途 2、手机连不上U盘 3、小米手机有没有OTG 4、手机usb调试找不到 5、MHL能否在HDMI输出视频的同时进行USB传输 1、OTG用途 使用OTG外接设备,需要使用和手机接口对应匹配的…

一起学docker(六)| docker网络

Docker网络 不启动docker,网络情况: 启动docker,网络情况: 作用 容器间的互联和通信以及端口映射容器IP变动时候可以通过服务名直接网络通信而不受影响 常用命令 docker network --help 查看docker网络相关命令docker network…

C++——STL标准模板库——容器详解——stack+queue

一、基本概念 (一)stack(栈或堆栈) 一种只允许同一端进出的线性数据结构,数据先进后出。基本模型类似于瓶子。 (二)queue(队列) 一种只允许一端进、另一端出的线性数…

Tomcat服务为什么起不来?

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 服务跑在Tomcat下面,有时候会遇到Tomcat起不来的情况。目前为止常遇到的情况有如下几种: 1. Tomcat服务…

Linux第11步_解决“挂载后的U盘出现中文乱码”

学习完“通过终端挂载和卸载U盘”,我们发现U盘下的中文文件名会出现乱码,现在讲解怎么解决这个问题。其实就是复习一下“通过终端挂载和卸载U盘”,单独讲解,是为了解决问题,一次性搞好,我们会不长记性。 在…