您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 合肥分类信息网,免费分类信息发布

Kubernetes:如何改善大型DDS系统中的软件交付

2020/5/30 9:33:20发布172次查看

系统管理员一致认为:部署和管理大型分布式系统非常复杂。如果您有数百个应用程序,则很难手动执行所有操作。为了克服这个问题,容器技术已被广泛应用于各种行业的大规模分布式系统中。
容器是打包应用程序及其依存关系的软件部署单元。容器技术对于数据分发服务(data distribution service)系统可能很有用,尤其是在您拥有大型系统并且需要远程部署、更新和扩展它的情况下。在这方面,rti公司已经探索docker和kubernetes已有相当一段时间了。
作为rti研究团队内工作的一部分,我们还一直在评估kubernetes集群内dds的性能,以帮助确定客户是否应该注意任何问题。在我的两部分博客的第一部分中,这里将讨论什么是kubernetes,以及它与dds的关系。
什么是kubernetes?
kubernetes(k8s)是用于容器化应用程序的编排平台。什么是业务流程平台?编排平台是一组服务,可帮助部署和管理分布式节点和应用程序。具体来说,它通过向上和向下缩放、执行更新和回滚,自我修复等方法来帮助管理分布式应用程序。目前,k8s是容器编排的实际标准,它是google开发的一个开源项目,并且目前由cloud native computing foundation(cncf)管理。
您可能听说过docker。k8与docker有何关系?k8和docker是互补技术。docker是当前使用最广泛的容器引擎技术,因此使用docker开发和打包然后使用k8来管理这些容器是很常见的。
kubernetes体系结构
要使用k8s,首先需要设置k8s集群,否则,如果已经有一个集群,则需要访问该集群。如果您没有集群,请签出kubeadm来设置分布式集群,或者查看minikube来本地设置。使用这些工具非常容易。
k8s集群是什么样的?如图1所示,每个k8s集群至少由一个主节点和多个工作节点组成。主服务器充当集群的控制平面。每个工作程序节点管理一个容器运行时,例如docker;它处理容器的生命周期操作,例如拉容器图像,启动和停止容器。每个工作节点还具有一个称为kubelet的代理,该代理与主服务器进行通信以进行容器编排。
一旦您的k8s集群启动并运行,就可以通过k8s命令行工具kubectl将k8s清单文件发送到主服务器来部署容器。
图1. kubernetes的概念和架构
kubernetes网络
现在,让我解释一下k8的网络模型,因为这将是与dds最为相关的主题。k8s使用docker作为默认的容器引擎,但是其联网方法不同于docker的默认方法。
k8s引入了一个称为“ pod”的新概念作为其可部署单元。容器是具有共享存储/网络的一个或多个容器的集合。每个pod都有自己直接可访问的ip地址,因此,您无需像处理docker那样处理容器与主机之间的映射端口。
该网络模型创建了一个干净的,向后兼容的模型,在其中可以将pod视为物理主机。kubernetes的网络模型具有以下基本要求:
· 所有容器无需网络地址转换(nat)即可与所有其他容器通信。
· 所有节点都可以在没有nat的情况下与所有容器通信(反之亦然)。
· 容器所看到的ip与其他人所看到的ip是相同的。
从中我们得到的启发
与单独使用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应用程序吗?我会说并不是每个系统都需要它。但是,如果您的系统是:
1. 大规模的数百个节点和应用程序。
2. 利用容器包装应用程序。
3. 需要自动缩放和自我修复功能。
使用k8s的自我修复功能的一个问题是,检测和启动新容器可能要花费一分钟或更长时间。此恢复时间不会影响群集的无状态应用程序,但是会严重影响有状态的应用程序。作为rti研究团队当前工作的一部分,我们一直在研究为关键应用程序支持自我修复的机制,这些机制有可能将恢复时间缩短到100毫秒以下。
在本博客的下一部分中,我将以rti perftest为例,分享在k8s集群中部署dds应用程序的特定说明和配置。如果您对此主题感兴趣,请检查一下!
关于作者
kyoungho an是real-time innovations(rti)的高级研究工程师。他在分布式实时嵌入式系统方面拥有10年的经验。他的研究兴趣包括发布/订阅中间件,以及分布式系统的部署和监视。他曾担任首席研究员,领导过多个由dod和doe资助的研究项目。他在期刊和会议上发表了针对分布式基于事件的系统,中间件和网络物理系统的研究论文。他拥有博士学位。范德比尔特大学计算机科学博士学位。

合肥分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录