其他分享
首页 > 其他分享> > KubeVela 1.4:让应用交付更安全、上手更简单、过程更透明

KubeVela 1.4:让应用交付更安全、上手更简单、过程更透明

作者:互联网

作者:孙健波,曾庆国

KubeVela 是一个现代化的软件交付控制平面,目标是让应用的部署和运维在如今的混合多云环境下更简单、敏捷、可靠。自 1.1 版本发布以来,KubeVela 架构上天然打通了企业面向混合多云环境的交付难题,且围绕 OAM 模型提供了充分的可扩展性,赢得了大量企业开发者的喜爱,这也使得 KubeVela 的迭代速度不断加快。

1.2 版本我们发布了开箱即用的可视化控制台,终端用户可以通过界面发布和管理多样化的工作负载;1.3 版本 的发布则完善了以 OAM 模型为核心的扩展体系,提供了丰富的插件功能,并给用户提供了包括 LDAP 权限认证在内的大量企业级功能,同时为企业集成提供了巨大的便利。至今为止,你已经可以在 KubeVela 社区的插件中心里获得 30 多种插件,其中不仅包含了 argocd、istio、traefik 这样的 CNCF 知名项目,更有 flink、mysql 等数据库中间件,以及上百种不同云厂商资源可供直接使用。

在这次发布的 1.4 版本中,我们围绕让应用交付更安全、上手更简单、过程更透明三个核心,加入了包括多集群权限认证和授权、复杂资源拓扑展示、一键安装控制平面等核心功能,全面加固了多租户场景下的交付安全性,提升了应用开发和交付的一致性体验,也让应用交付过程更加透明化。

核心功能解读

开箱即用的认证和授权,对接 Kubernetes RBAC,天然支持多集群

在全面解决了架构升级、扩展性等挑战之后,我们观察到应用交付的安全性是如今整个业界亟需解决的难题。从接触到的用户案例中,我们发现许多安全隐患:

KubeVela 1.4 中加入了认证和授权能力,且天然支持多集群混合环境,对于每一个 KubeVela 的平台管理员而言,他们不仅可以细粒度的定制任意的 API 权限组合、对接 Kubernetes RBAC 体系,将这些权限模块授权给开发者用户,严格限制其权限;还可以简便的使用 KubeVela 平台预置的权限模块,如直接授予用户某个集群的特定命名空间权限,授予某个用户“只读”权限等,极大的简化了用户的学习成本和心智负担,全面加固了应用交付的安全性。对于使用 UI 的用户,系统针对项目可用的资源范围和类型自动完成底层授权并严格校验,从而使得业务层 RBAC 权限与底层 Kubernetes RBAC 体系打通并协同工作,做到从外到内的安全,不在任何环节扩大权限。

1.jpg

具体而言,平台管理员对一个用户授权完成以后,用户的请求会经过如图所示的几个阶段。

  1. KubeVela 的 webhook 首先会拦截用户的请求,将用户的权限信息(ServiceAccount)打到 Application 对象上。
  2. KubeVela Controller 在执行 Application 的部署计划时,会基于 Kubernetes 的 角色扮演机制(impersonate) 转换为对应用户的权限去执行。
  3. KubeVela 多集群模块(ClusterGateway)会传递对应的权限到子集群,子集群的 Kubernetes APIServer 会根据子集群的权限做认证。子集群的权限则是由 KubeVela 的授权流程创建的。

简而言之,KubeVela 的多集群认证和授权功能保证了每一个最终用户的权限都被严格约束,不会被交付系统放大,同时 KubeVela 自身的权限也收敛至最小,而且整个使用体验很简单。

如果你想了解更多功能及其背后的实现原理,欢迎阅读官方的权限认证和授权文档深入了解背后的运行机制。

参考案例

分布式云容器平台ACK One(Alibaba Cloud Distributed Cloud Container Platform)是阿里云面向混合云、多集群、分布式计算、容灾等场景推出的企业级云原生平台。KubeVela 多集群控制面是 ACK One 的核心实现,在 ACK One 中基于该 Feature 实现了基于角色扮演的应用多集群分发。

参考文档:https://help.aliyun.com/document_detail/419336.html

轻量便捷的应用开发控制平面,本地开发和生产部署一致体验

随着生态的不断繁荣,我们也看到越来越多的开发者开始关注云原生技术,但经常苦于没有好的入门方式,主要原因有如下两点:

我们在社区中也观察到,越来越多的公司开始意识到内部自建的平台跟不上社区生态发展的速度,期望通过 KubeVela 和 OAM 模型提供一致体验、又不丢失生态的可扩展性,但是苦于 KubeVela 的控制平面依赖 Kubernetes、上手门槛依旧不低。针对这个问题,社区一直在思考并寻找解决方案,最终我们的结论是需要一款工具来满足,且具备这几个特性:

经过几个月的努力孵化,我们终于可以在 1.4 中正式发布这个工具: VelaD ,D 既代表 Daemon 也代表 Developer,它可以帮助 KubeVela 在单机上运行,不依赖任何现有的 Kubernetes 集群,同时与 KubeVela 整体作为一个轻量级的应用开发控制平面,帮助开发者获得一体化的开发、测试、交付体验,简化云原生应用部署和管理的复杂度。

你可以通过 Demo 文档安装并试用这个工具,了解更多的实现细节,安装初始化仅需 3 分钟。

2.gif

展示资源拓扑和状态,让交付过程变得透明化

在应用交付中另一个很大的诉求是对资源交付流程的透明化管理,比如社区里很多用户喜欢使用 Helm Chart ,把一大堆复杂的 YAML 打包在一起,但是一旦部署出现问题,如底层存储未正常提供、关联资源未正常创建、底层配置不正确等,即使是一个很小的问题也会因为整体黑盒化而难以排查。尤其是在现代混合的多集群混合环境下,资源类型众多、错综复杂,如何从中获取到有效信息并解决问题是一个非常大的难题。

在 1.4 版本中,我们加入了资源拓扑图查询功能,进一步完善了 KubeVela 以应用为中心的交付体验。开发者在发起应用交付时只需要关心简单一致的 API ,需要排查问题或者关注交付过程时,可以通过资源拓扑功能,快速获取资源在不同集群的编排关系,从应用一直追踪到 Pod 实例运行状态,自动化地获取资源的关联关系,包括复杂且黑盒化的 Helm Chart

3.jpg

以上图所示的应用为例,用户通过 Helm Chart 包交付了一个 Redis 集群,图的第一层为应用名称,第二层为集群,第三层为应用直接渲染出来的资源,后续的三层,四层则根据不同的资源追踪的下级关联资源。

用户在交付应用过程中,可以通过图形来观测其衍生出的资源以及状态,不正常时节点会显示为黄色或红色状态并显示具体原因。比如下图所示应用,是一个基础的 Webservice 服务交付到了2个集群,开发者可以发现该应用实际在两个集群分别创建了Deployment 和 Service 资源,而 ask-hongkong 这个集群中的 Deployment 资源显示黄色,是因为 Pod 实例还没有完全启动。

4.jpg

该功能也支持通过不同集群,不同组件进行搜索筛选查询,帮助开发者快速聚焦并发现问题,以极低的门槛了解应用底层的交付运转状态。

如果你想了解更多功能及其背后的实现原理,欢迎阅读官方博客  追踪和可视化多集群 Kubernetes 资源拓扑  深入了解背后的运行机制。

其他关键变更

除了核心功能和插件生态之外,1.4 版本也对工作流等核心功能做了增强:

感谢来自阿里云、招商银行、Napptive 等三十多个海内外组织和个人的持续贡献,正是你们的不断努力,在短短 2 个月的时间内完成了 200 多个功能特性和修复,才使得这次迭代为社区交付出如此多优秀的功能!

更多的变更细节,请参考 Release 说明

插件生态(Addon)

随着 1.3 插件体系的完善,我们的插件生态也在快速扩充中:

非常欢迎开发者们参与到社区,制作插件扩展 KubeVela 的系统能力。

5.jpg

如何参与社区

6.png

KubeVela 是 CNCF 基金会中全球 Top 级活跃度的开源项目,在这里有超过 300 位国内外贡献者、40 多位社区成员和 Maintainer,从代码、文档到社区沟通交流均为中英双语国际化运作方式,有超过 4000 多位社群成员。

如果你对参与到开源社区感兴趣,我们非常欢迎你加入到 KubeVela 的社区中来,你可以通过 KubeVela 社区的开发者文档详细的了解参与到开源社区的方式和方法,社区的工程师们也会耐心指导你入门。

近期的规划

KubeVela 将围绕两个月一个迭代周期持续演进,接下来的版本中,我们将聚焦这三个维度:

如果你想了解更多的规划、成为贡献者或者合作伙伴,可以通过参与社区沟通( https://github.com/kubevela/community )联系我们,期待你的加入!

您可以通过如下材料了解更多关于 KubeVela 以及 OAM 项目的细节:

7.png

点击“此处”,查看 KubeVela 项目官网。

标签:1.4,插件,应用,KubeVela,集群,交付,上手,权限
来源: https://www.cnblogs.com/alisystemsoftware/p/16428007.html