Kubernetes网络模型

栏目: 服务器 · 发布时间: 5年前

内容简介:【编者的话】今天许多WEB应用由各类容器组成,使用不同模块的服务。Kubernetes使多容器环境下的的应用流程编排更加高效精简。使用Kubernetes容器编排工具可精确定义一个应用内多个不同容器相互配合的特性,并控制应用流程的发布、维护及数据同步。此外Kubernetes还有以下优点:

Kubernetes网络模型

【编者的话】今天许多WEB应用由各类容器组成,使用不同模块的服务。Kubernetes使多容器环境下的的应用流程编排更加高效精简。使用Kubernetes容器编排 工具 可精确定义一个应用内多个不同容器相互配合的特性,并控制应用流程的发布、维护及数据同步。

此外Kubernetes还有以下优点:

  • 扩展基于容器的应用

WEB应用的特点是会根据访问用户数扩展或回缩。应用扩展至少需要确保访问的负载均衡及用户的资源分配。而Kubernetes可自动实现这些功能。在Kubernetes内部,扩展发生在两个级别:容器和基础设施级别扩展特性例如水平或垂直的POD自动扩展(HPA & VPA),就像集群自动扩展(CA),按需为完整的部件自动扩展(详情请参阅历史博文:Kubernetes 水平POD和集群自动扩展)。

  • 实现无中断版本更新

应用容器技术最大的诉求之一是应用开发持续集成和持续发布,Kubernetes 可完成应用灰度更新,无需应用中断。

  • 在任何环境下运行

Kubernetes不受运行环境或者技术的限制。任何支持容器技术的平台均可运行Kubernetes,具备平台通用性。Kubernetes致力于成为云环境下的容器编排平台,提供出色的云平台支持,让开发者用起来像一个真正的原生云平台一样具备无限发展的潜力。

Kubernetes网络状况

Kubernetes可满足POD的特定网络环境需求:

1、Pod之间无需设置网络地址转换(NAT)即可实现相互的网络通讯。

2、运行Kubernetes集群的节点,可支持物理机或者虚拟机,或任何支持运行Kubernetes的环境,这些节点也可无需设置网络地址转换(NAT)实现同其他POD上节点相互通讯。

3、每个POD都会看到自己和其他POD一样可看到自身的IP地址。

以上是Kubernetes网络模型的核心,因此为了更好的发挥Kubernetes的优势,需要解决以下三个网络挑战:

1、容器到容器网络;

2、POD到POD的网络;

3、POD到服务的网络;

Kubernetes网络模型

容器到容器网络

通常情况下,虚拟机组网的是由一组相互通讯的以太网络设备组成,但实际情况还会有所偏差。

Linux环境下,每个正在运行的进程之间是通过网络命名空间来通讯,命名空间为归属此命名空间下的进程间通讯提供了新的网络堆栈。Linux默认将root用户的网络命名空间分配给运行的进程,便于实现对外的网络访问。

Pod是一组容器的模型,其中的容器共享网络命名空间,所有对外提供一个特定服务的容器均共享一个相同的IP地址和端口,而此地址是由POD的网络命名空间实现分配。由于容器存在于同一个网络命名空间下,因此容器之间的通讯是通过localhost来实现。

Kubernetes网络模型

在Kubernetes集群内每个POD被分配一个IP地址,而且每个POD之间的IP地址相互可见。为了理解POD如何通过实地址通讯,首先考虑在同一个物理机上共享同一个节点的两个POD之间通讯的场景。

一旦POD之间连接上,他们便存在于自身的以太网命名空间内,这个命名空间需要同相同节点上的其他网络命名空间实现通讯,Linux提供了一种使用虚拟以太网设备实现命名空间之间通讯的机制(VED或veth pair),VED由一对虚拟端口组成。为实现两个POD命名空间之间的通讯,VED的一端分配给root的网络命名空间,另一端分配给POD的网络命名空间。

VED就像一根虚拟的线缆,用于连接root和POD的命名空间,实现网络数据交换。

Kubernetes网络模型

Kubernetes内POD的IP地址并不是持久化的,当应用实现扩容或缩容,或者遇到故障重启后,IP地址会消失并需要重新分配,这种IP地址变更发生时是没有告警信息的,对此,Kubernetes采用了服务。

服务在Kubernetes内管理了一组当前状态的POD,服务为用户提供了一种跟踪IP地址和随时间变化属性的方法。服务是在POD之上抽象的一层,用于给特定一组POD分配单独虚拟IP地址的技术,一但这些POD被分配了虚拟IP地址,便会产生对特定POD网络路由的寻址。连接到服务的POD组的地址可以随时发生变化,而服务的IP地址却是静态的。

Kubernetes使多容器应用的管理前所未有的方便,利用POD发挥容器技术的优势。尽管需要一定的学习成本,但Kubernetes使用更为直接方便。理解容器网络特性后,您可将将应用开发提升到新的层面。

作者:STEFAN THORPE

原文链接: The Kubernetes Networking Model


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

BSD Hacks

BSD Hacks

Dru Lavigne / O'Reilly Media, Inc. / 2004-05-24 / USD 24.95

If you want more than your average BSD user--you want to explore and experiment, unearth shortcuts, create useful tools, and come up with fun things to try on your own--BSD Hacks is a must-have. This ......一起来看看 《BSD Hacks》 这本书的介绍吧!

随机密码生成器
随机密码生成器

多种字符组合密码

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码