容器技术助“新基建”加速 实现实时数据交互新启发

网站首页    科技前沿    容器技术助“新基建”加速 实现实时数据交互新启发

2020注定是不平凡的一年,对于ICT行业而言,更是如此。新基建大势风起云涌,经历了抗击疫情艰苦斗争的市场也即将“迎春回暖”。

“新基建”不是一个新概念。早在2018年,中央经济工作会议就提出要“加快5G商用步伐,加强人工智能、工业互联网、物联网等新型基础设施建设”。2019年7月至今,中央的密集部署带动了全国多个省区市发布了为数众多、数额庞大的新基建相关重点项目投资计划。新基建也逐渐成为了市场的热点。2020年4月20日,国家发改委首次表示,将以新发展理念为引领,以技术创新为驱动,以信息网络为基础,面向高质量发展需要,提供数字转型、智能升级、融合创新等服务的基础设施体系。在4月28日的国务院常务会议上,李克强总理表示将加快推进信息网络等新型基础设施建设,同时强调当前市场主体要着眼国内需求,以应用为导向,积极拓展新型基础设施应用场景,瞄准产业升级和智能制造发展,各方合力建设工业互联网。

一系列的细化与实施标志着中国新基建的不断深化,其势必将成为加速各行业数字化步伐、深化数字经济建设的新引擎,作为底层逻辑的数字化基础架构也将迎来新的挑战与机遇。

容器构筑数字交互优势凸显

年初至今的疫情阻击战让我们进一步意识到了基础设施创新的重要性及广阔前景:智能医疗设施助力精准防控、智能化的无接触作业提升了防控效率、远程办公加速企业复工复产,国民经济在夯实的基础设施保障中逐渐恢复平稳运行。

与此同时,随着新基建和疫情防控要求下众多新型工作负载的普及和深化,数据量必将迎来大幅增长,为升级数字基础架构,更多的企业组织会把目光投向性能更强、更安全、更高效的云平台。

因此,即便在疫情对各行业造成巨大冲击的大环境下,数字基础架构仍然保持着有力的增长势头。这时候容器可以说以云计算为平台而飞速发展,容器是一种轻量级的虚拟化技术,在同等配置的服务器上,容器技术能够轻松更多的应用。对于每一个容器,他们其实是使用同一个宿主机的内核和系统库文件。对于容器的其它优点,比如它是软件工业内的集装箱技术,它将是改变世界的那只箱子,数字孪生概念应运而出,在虚拟计算的环境中,形成现实生活中某一环境的完全模拟,也就是说,在云计算环境中,有了同现实一样的模拟环境和数据,这就如同阿凡达一样。

显然,这一技术广泛应用于工业物联网,工业控制,国防军工,5G,通信、医疗领域、医疗保健、能源行业、电力系统等行业。

低延迟、更安全、更高效 时实数据交互成重点

实际上,RTI公司提供事实进展、数据交换,无论在企业层面还是人与人沟通方面,都可实现快速数据交换。可以让数据进展最快速,作为RTI研究团队内工作的一部分,Real-Time Innovations(RTI)的高级研究工程师Kyoungho An介绍说,系统管理员一致认为:部署和管理大型分布式系统非常复杂。如果您有数百个应用程序,则很难手动执行所有操作。为了克服这个问题,容器技术已被广泛应用于各种行业的大规模分布式系统中。容器是打包应用程序及其依存关系的软件部署单元。容器技术对于数据分发服务(Data Distribution Service™)系统可能很有用,尤其是在您拥有大型系统并且需要远程部署、更新和扩展它的情况下。在这方面,RTI公司已经探索Docker和Kubernetes已有相当一段时间了。

 “我们还一直在评估Kubernetes集群内DDS的性能,以帮助确定客户是否应该注意任何问题。在我的两部分博客的第一部分中,这里将讨论什么是Kubernetes,以及它与DDS的关系。

那么,什么是Kubernetes?Kubernetes(k8s)是用于容器化应用程序的编排平台。什么是业务流程平台?编排平台是一组服务,可帮助部署和管理分布式节点和应用程序。具体来说,它通过向上和向下缩放、执行更新和回滚,自我修复等方法来帮助管理分布式应用程序。目前,k8s是容器编排的实际标准,它是Google开发的一个开源项目,并且目前由Cloud Native Computing Foundation(CNCF)管理。

Kyoungho An您可能听说过Docker。k8与Docker有何关系?k8和Docker是互补技术。Docker是当前使用最广泛的容器引擎技术,因此使用Docker开发和打包然后使用k8来管理这些容器是很常见的。

Kubernetes优势凸显

要使用k8s,首先需要设置k8s集群,否则,如果已经有一个集群,则需要访问该集群。如果您没有集群,请签出kubeadm来设置分布式集群,或者查看minikube来本地设置。使用这些工具非常容易。

k8s集群是什么样的?如图1所示,每个k8s集群至少由一个主节点和多个工作节点组成。主服务器充当集群的控制平面。每个工作程序节点管理一个容器运行时,例如Docker;它处理容器的生命周期操作,例如拉容器图像,启动和停止容器。每个工作节点还具有一个称为kubelet的代理,该代理与主服务器进行通信以进行容器编排。

一旦您的k8s集群启动并运行,就可以通过k8s命令行工具kubectl将k8s清单文件发送到主服务器来部署容器。

 

图1. Kubernetes的概念和架构

Kyoungho An介绍说,现在,让我解释一下k8的网络模型,因为这将是与DDS最为相关的主题。K8s使用Docker作为默认的容器引擎,但是其联网方法不同于Docker的默认方法。k8s引入了一个称为“ pod”的新概念作为其可部署单元。容器是具有共享存储/网络的一个或多个容器的集合。每个Pod都有自己直接可访问的IP地址,因此,您无需像处理Docker那样处理容器与主机之间的映射端口。

该网络模型创建了一个干净的,向后兼容的模型,在其中可以将Pod视为物理主机。Kubernetes的网络模型具有以下基本要求:所有容器无需网络地址转换(NAT)即可与所有其他容器通信。所有节点都可以在没有NAT的情况下与所有容器通信(反之亦然)。容器所看到的IP与其他人所看到的IP是相同的。

新趋势下 k8s的新启发

与单独使用Docker相比,k8s网络模型更适合DDS。 DDS参与者交换其IP地址以进行点对点通信,因此DDS在没有NAT的网络上可以更好地工作。

DDS发现服务对于k8s非常有用。 Pod的IP地址不可靠,因为它们的IP地址是在创建时动态分配的。因此,通常将Pod缝合到具有可靠IP地址和DNS名称的“ k8s服务”中。然后,k8s服务负载平衡了缝合后端后端的网络流量。使用DDS发现服务,您不需要k8s服务,因为DDS窗格可以通过主题发现并建立彼此的连接,从而抽象出基于IP的通信。这将允许DDS Pod在无需k8s服务的情况下进行发现和通信,从而解决了IP不可靠性问题。

k8s提供了一组不错的功能,用于部署,更新,扩展和自我修复分布式应用程序。尽管这是事实,但可能难以完全理解和利用所有功能。我们真的需要k8来管理DDS应用程序吗?我会说并不是每个系统都需要它。但是,如果您的系统是:大规模的数百个节点和应用程序。

利用容器包装应用程序。需要自动缩放和自我修复功能。

使用k8s的自我修复功能的一个问题是,检测和启动新容器可能要花费一分钟或更长时间。此恢复时间不会影响群集的无状态应用程序,但是会严重影响有状态的应用程序。作为RTI研究团队当前工作的一部分,我们一直在研究为关键应用程序支持自我修复的机制,这些机制有可能将恢复时间缩短到100毫秒以下。


2020年5月28日 19:13
浏览量:0