内容简介:【编者的话】今天许多WEB应用由各类容器组成,使用不同模块的服务。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到服务的网络;
容器到容器网络
通常情况下,虚拟机组网的是由一组相互通讯的以太网络设备组成,但实际情况还会有所偏差。
Linux环境下,每个正在运行的进程之间是通过网络命名空间来通讯,命名空间为归属此命名空间下的进程间通讯提供了新的网络堆栈。Linux默认将root用户的网络命名空间分配给运行的进程,便于实现对外的网络访问。
Pod是一组容器的模型,其中的容器共享网络命名空间,所有对外提供一个特定服务的容器均共享一个相同的IP地址和端口,而此地址是由POD的网络命名空间实现分配。由于容器存在于同一个网络命名空间下,因此容器之间的通讯是通过localhost来实现。
在Kubernetes集群内每个POD被分配一个IP地址,而且每个POD之间的IP地址相互可见。为了理解POD如何通过实地址通讯,首先考虑在同一个物理机上共享同一个节点的两个POD之间通讯的场景。
一旦POD之间连接上,他们便存在于自身的以太网命名空间内,这个命名空间需要同相同节点上的其他网络命名空间实现通讯,Linux提供了一种使用虚拟以太网设备实现命名空间之间通讯的机制(VED或veth pair),VED由一对虚拟端口组成。为实现两个POD命名空间之间的通讯,VED的一端分配给root的网络命名空间,另一端分配给POD的网络命名空间。
VED就像一根虚拟的线缆,用于连接root和POD的命名空间,实现网络数据交换。
Kubernetes内POD的IP地址并不是持久化的,当应用实现扩容或缩容,或者遇到故障重启后,IP地址会消失并需要重新分配,这种IP地址变更发生时是没有告警信息的,对此,Kubernetes采用了服务。
服务在Kubernetes内管理了一组当前状态的POD,服务为用户提供了一种跟踪IP地址和随时间变化属性的方法。服务是在POD之上抽象的一层,用于给特定一组POD分配单独虚拟IP地址的技术,一但这些POD被分配了虚拟IP地址,便会产生对特定POD网络路由的寻址。连接到服务的POD组的地址可以随时发生变化,而服务的IP地址却是静态的。
Kubernetes使多容器应用的管理前所未有的方便,利用POD发挥容器技术的优势。尽管需要一定的学习成本,但Kubernetes使用更为直接方便。理解容器网络特性后,您可将将应用开发提升到新的层面。
作者:STEFAN THORPE
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 深入浅出-网络七层模型网络数据包
- Kubernetes网络模型原理
- os-网络IO模型
- 我的模型能跑多快——神经网络模型速度调研(一)
- 拒绝网络暴力!动手开发基于深度学习的网络欺凌检测模型
- 如何理解高性能网络模型
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
UML基础、案例与应用
施穆勒 / 李虎、赵龙刚 / 人民邮电出版社 / 2004-7-1 / 42.00元
本书教读者循序渐进地、系统地学习UML基础知识和应用技术。和前一版相比,本书内容根据UML 2.0进行了补充和更新,随书光盘包含了建模工具Poseidon的试用版。 全书分为三部分24章。第一部分“基础知识”包括第1章到第15章,主要是介绍UML语言的基础知识以及面向对象的概念和思想,还简单介绍了UML在开发过程的应用方法。第二部分“学习案例”包括第16章到第22章,结合实例详细分析了UML的应用......一起来看看 《UML基础、案例与应用》 这本书的介绍吧!