架构解密从分布式到微服务,微服务和分布式最大区别

首页 > 经验 > 作者:YD1662022-10-28 06:22:00

Kubernetes 分区与租户可以有多种对应的设计,上面所说的一个分区一个租户的设计是一种典型的设计,也可以将租户分为大客户与普通客户,每个大客户都有一个单独的资源分区,而普通客户可以以N个为一组,共享同一个分区的资源。

PaaS 平台的领域模型设计

我们知道,微服务架构下的一个应用通常是由多个微服务所组成的,而我们的Kubernetes通常会部署多个独立的应用,因此,如果用 Kubernetes建模微服务应用,则我们需要在 PaaS平台的领域模型中设计出 Application这个领域对象,一个Application包括多个微服务,并且最终在发布(部署)时会生成对应的Pod、Deployment 及 Service对象,如下图所示。

架构解密从分布式到微服务,微服务和分布式最大区别(13)

如下所示是有更多细节的领域模型图,Kubernetes中的 Node、Namespace分别被建模为K8sNode与TanentNS,分区则被建模为ResPartition对象,每个分区都可以包括1到N个TanentNS,即一个或多个租户(Tanent〉使用。每个租户都包括一些用户账号(User),用来定义和维护本租户的应用(Application)。为了分离权限,可以使用用户组(User Group)的方式,同时可以增加标准的基于角色的权限模型。

架构解密从分布式到微服务,微服务和分布式最大区别(14)

上图中的Service领域对象并不是Kubernetes Service,而是包括了Kubernetes Service及相关RC/Deployment的一个“复合结构”。在Service领域对象中只包括了必要的全部属性,在部署应用时会生成对应的Kubernetes Service和RC/Deployment实例。下图给出了Service的定义界面(原型)。

架构解密从分布式到微服务,微服务和分布式最大区别(15)

我们在界面上完成对一个Application的定义后,就可以发布应用了。在发布应用的过程中,先要选择某个分区,然后程序调用Kubernetes的 API接口,创建此 Application相关的所有Kubernetes资源对象,然后查询Pod的状态即可判断是否发布成功及失败的具体原因。下面给出了Application从定义到发布的关键模块的设计示意图。

架构解密从分布式到微服务,微服务和分布式最大区别(16)

上一页12345下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.