k8s pod里访问不到外部ip_K8S容器网络如何实现通信?

f01c32e50c0be4e30f56b97dc24f45a0.png

Kubernetes(简称K8S)正迅速成为云计算中部署和管理软件的新标准,那么K8S的容器网络是如何通信的呢?在了解容器网络通信原理之前,我们先学习下K8S中主要组件的定义,包括:节点(Node)、容器、POD、 外部网络

节点:是K8s中最小的计算硬件单元。它是集群中单个机器的表示。在大多数生产系统中,节点很可能是数据中心中的物理机器,或者是托管在像谷歌云平台这样的云供应商上的虚拟机。

容器:在K8s上运行的程序被打包成Linux容器。容器是一个被广泛接受的标准,因此已经有许多预先构建的映像可以部署在K8s上。容器化允许你创建自足式的Linux执行环境。任何程序和它的所有依赖项都可以打包成一个文件,然后在网络上共享。任何人都可以下载该容器并在其基础设施上部署它,所需的设置非常少。

POD:是K8s中最小的可部署和管理单元。换句话讲,如果需要在K8s中运行单个容器,那么你就得为这个容器创建一个Pod。同时,一个Pod可以包含多个容器,这些容器往往是紧耦合的。怎么样个紧耦合法呢?试着想象这么一个场景,一个Pod中的多个容器代表需要运行在同一个服务器上的多个进程。这种类比是合理的,因为在许多方面,Pod就类似于一台服务器。

外部网络:容器应用部署完成后,需要对外提供服务,这里的外部可能是互联网、也可能是内部网络。

那么容器网络是如何实现在:POD内部通信、同节点的POD之间通信、不同节点的POD之间通信、外部网络与POD之间通信的呢?下面我们分别来介绍:


1、POD内部通信:同一Pod中的任何容器都将共享相同的名称空间和本地网络,容器可以很容易地与其他容器在相同的容器中进行通信,k8s中每个Pod中管理着一组容器,这些容器共享同一个网络命名空间,Pod中的每个容器拥有与Pod相同的IP和port地址空间,并且由于他们在同一个网络命名空间,他们之间可以通过localhost相互访问(可见POD内部的通信是不经过数据IP数据通信通信网络的)。

2、同节点的POD之间通信:不同pod之间的通信,就是使用linux虚拟以太网设备或者说是由两个虚拟接口组成的以太网接口对使不同的网络命名空间链接起来,这些虚拟接口分布在多个POD上,通过网桥把不同的POD组成为一个以太网,直接进行二层以太网通信。

3、不同节点的POD之间通信:当跨POD通信时,本节点内无法找到目的POD的MAC地址,则会查找三层路由表转发,这需要依靠不同节点间的网路配置来实现,对于如何来配置网络,k8s在网络这块自身并没有实现网络规划的具体逻辑,而是制定了一套CNI接口规范,开放给社区来实现,目前主流的网络配置方案有:Flannel、weave、calico,Macvlan等,其中Flannel和weave方案都采用VXLAN网络模型,calico采用的BGP三层路由网络模型,Macvlan是Linux自带的虚拟网卡实现简单的二层通信。

4、外部网络与POD之间通信:Pod之间通过他们自己的ip地址进行通信,但是pod的ip地址是不持久的,当集群中pod的规模缩减或者pod故障或者node故障重启后,新的pod的ip就可能与之前的不一样的。所以k8s中衍生出来Service来解决这个问题。k8s中 Service管理了一系列的Pods,每个Service有一个虚拟的ip,要访问service管理的Pod上的服务只需要访问你这个虚拟ip就可以了,这个虚拟ip是固定的,当service下的pod规模改变、故障重启、node重启时候,对使用service的用户来说是无感知的,因为他们使用的service的ip没有变。当数据包到达Service虚拟ip后,数据包会被通过k8s给该servcie自动创建的负载均衡器路由到背后的pod容器。

以上就是K8S容器网络通信的基本原理,欢迎关注本账号,带你了解有意思的IT技术。

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

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

相关文章

tps 数据库写并发衡量_硬核干货!抗住百万高并发的 6 个关键技术!

一、什么是高并发高并发(High Concurrency)是互联网分布式系统架构设计中必须考虑的因素之一,它通常是指,通过设计保证系统能够同时并行处理很多请求。高并发相关常用的一些指标有响应时间(Response Time)&…

ioc spring 上机案例_抛开Spring去理解IOC思想 - 原来IOC容器这么简单

很多小伙伴们看到标题可能就会想到抛开Spring就不会存在IOC思想了,其实不然在接下来的文章中就会讲述到。很多小伙伴在理解IOC的时候通常会和Spring放到一起去学习,首先呢Spring设计的非常之巧妙而且里面包含了很多除去IOC的其他功能。这样会导致我们在S…

余弦信号频谱表达式_信号傅里叶变换系列文章(1):傅里叶级数、傅里叶系数以及傅里叶变换...

傅里叶级数是周期信号的时域表达式,而傅里叶变换是非周期信号或周期信号的频谱(频域函数),要想了解它们之间的关系,需要你耐心看完下面内容。学过"信号与系统"等课程的人往往会被许多问题所困惑,…

5s的app显示无法连接服务器,苹果iphone5s手机无法连接App Store问题解决方法汇总...

iphone5s无法连接App Store怎么办?大家在使用iphone5s过程中可能会遇到无法连接app store的问题,那怎么办呢?本文小编就主要给大家讲解一下如何解决iphone5s无法连接App Store的问题。iphone5s无法连接App Store解决方法如下:1)还…

变频器输出功率_100米的深井泵,如何接变频器,怎样控制

深井水泵的控制上,不外是为了保证负载水流的恒定性,一般可以通过恒压闭环方式来完成,如果有储水池的,液位闭环也可以。而深井水泵选用变频器,变频器装地面,你的线路有100米这么长,一般需要考虑加…

云服务器cvm系统,云服务器 cvm 自带系统

云服务器 cvm 自带系统 内容精选换一换如果Linux操作系统云服务器未安装密码重置插件,可以参见本节内容重新设置密码。本节操作重置的是root用户的密码,您可以重置完root密码后登录云服务器后再更换秘钥或重置非root用户的密码。Windows操作系统请参见重…

js距离单位换算_英语中常用的度量衡等单位,与我们用的不一样,这些差异点快收藏...

在日常生活中,我们几乎每天都会用到度量衡等度量单位,比如:去市场买菜,会用到几斤几两,量距离要知道多长,卖房子必须知道房屋的面积等等。度量单位在我们的生活中是非常重要的,可以说已经到了你…

开发缺点_开发移动端手机APP有哪些优缺点?

在当今移动互联网高速发达的现在,如果非要说什么工具最重要,那么一定要数手机APP了。企业可以借助它来进行移动端的营销,提高企业品牌推广力度和盈利;用户也可以借助它解决日常生活衣食住行等各方面的问题,因此备受人们…

用户修改了信息jwt服务器怎么识别,jwt验证登录信息

为什么要告别session?有这样一个场景,系统的数据量达到千万级,需要几台服务器部署,当一个用户在其中一台服务器登录后,用session保存其登录信息,其他服务器怎么知道该用户登录了?(单点登录)&…

获取朋友圈照片_朋友圈可以发 30 秒视频啦!用微视这个新功能就能办到

对于许多热爱分享生活中所见所闻的朋友来说,在发朋友圈时可能都会有这样的感觉:只能分享 15 秒以内的视频,完全不够用啊。如果你也有同样的困扰,今天,A 君就给你介绍一个实用新功能,让你能够在朋友圈中尽情…

苹果手机更改照片大小kb_苹果手机照片视频删除了怎样恢复?专业人士建议你这样做...

照片视频记录我们的点点滴滴,成长中的酸甜苦辣。当我们手机相册中的照片视频误删了我们该怎么做呢?如何才能挽回我们的损失?来看看专家让你怎么做。方法一:【最近删除】苹果自带有一个照片回收站【最近删除】恢复功能可以恢复里面…

复制过去格式不一样_不一样的立春节气:一个新的轮回开启,万物更新,疫情终将过去...

今天是立春,二十四节气中第一个节气,也是一个充满希望的节气。我国自古是农业大国,春种秋收,二十四节气是我国劳动人民独创的,也是先辈们了解自然的智慧结晶。它反映了季节的变化,影响着千家万户的衣食住行…

字符去多余空格_【Excel技巧】批量去空格删换行,用这两个函数简单又快速

今天分享两个函数TRIM函数和CLEAN函数。估计有些人还没见过这两个函数吧,不知道它们是用来干嘛的。跟你说啊,这两个函数都是用来清理、规范数据的。别不信,现在我们一起来看看他们的用法。一、TRIM函数比如,从网页上复制一份数据粘…

逗号后面统一加空格_用99个空格来提取Excel单元格数据,真的是脑洞大开!!!...

回复[目录]学习113篇Excel教程全套Excel视频教程,微信扫码观看需要从规格型号中提取容值、封装、耐压三组数据,如下: 数据源在A列,数据量很大,需要提取的容值、封装和耐压三项数据在单元格中的字节位置不固定。能找到的…

微服务 注册中心_4.微服务架构的第二个组件:注册中心

在微服务架构下,主要有三种角色:服务提供者(RPC Server)服务消费者(RPC Client)服务注册中心(Registry)RPC Server:服务提供者,启动时根据服务发布文件server.xml中的配置信息向Registry注册自身服务,并定期向Registry…

2018怎么打开2019_2019 年,我还是没有摆脱 Micro USB

时间回到 2017 年春,那时候的我想买一块移动硬盘。当时乐视的超级手机已经发布一年多了,苹果也在前一年发布了新款 MacBook Pro,USB Type-C 这个新鲜的接口已经进入大众的视野。移动硬盘常用的 Micro USB 3.0 接口的质量良莠不齐,…

中添加复选框_Word/excel中在方框中打钩/叉的符号,简单方便快捷

方法1:插入特殊符号将光标定位于需要打钩的地方,选择【插入】——【符号】——【其他符号】——更改字体为【Windings2】方法2:使用快捷键从上面的截图中可以看到设置快捷键,所以在插入特殊符号的时候就可以输入数字2611后按住【A…

2 数据源配置_如何在程序运行中动态切换数据源?架构师必读秘笈

说起动态数据源,大家应该也不陌生。例如在读写分离系统中,则要对请求中的读写操作进行分离,让读和写落在不同的数据库上;例如在多租户系统中,则要根据请求来源租户的不同,让其落在不同租户的数据库上&#…

数字滚动_告别单调!让PPT数字滚动起来。

大家好,我是三石。在PPT的制作过程中,数字是不可缺少的元素。如何设计制作,才能使简单的数字变得有活力。废话不多说看效果~其实制作方式很简单,跟着我的步骤你也能做出来。制作步骤:1、首先要制作出数字条可以通过Exc…

mysql字段是否存在_mysql判断列是否存在

本篇文章将通过存储过程来判断列(字段)是否存在。请看详情。推荐课程:MySQL教程。判断字段是否存在:DROP PROCEDURE IF EXISTS schema_change;DELIMITER //CREATE PROCEDURE schema_change() BEGINDECLARE CurrentDatabase VARCHAR(100);SELECT DATABASE…