构建这么一个以用户为中心的 Kubernetes,需要做几个层级的事情。 应用层驱动首先来看最核心的部分,上图中蓝色部分,也就是 Kubernetes。可以在 Kubernetes 之上定义一组 CRD 和 Controller。可以在 CRD 来做用户这一侧的 API,比如说 pipeline 就是一个 API,应用也是一个 API。像运维侧的扩容策略这些都是可以通过 CRD 的方式安装起来。 应用层抽象所以我们的需要解决第一个问题是应用抽象。如果在 Kubernetes 去做应用层抽象,就等同于定义 CRD 和 Controller,所以 Controller 可以叫做应用层的抽象。本身可以是社区里的,比如 Tekton,istio 这些,可以作为你的应用驱动层。这是第一个问题,解决的是抽象的问题。不是特别难。 插件能力管理很多功能不是 K8s 提供的,内置的 Controller 还是有限的,大部分能力来自于社区或者是自己开发的 Controller。这时我的集群里面就会安装好多好多插件。如果要构建以应用为中心的 Kubernetes,那我必须能够管理起来这些能力,否则整个集群就会脱管了。用户想要这么一个能力,我需要告诉他有或者是没有。需要暴露出一个 API 来告诉他,集群是否有他需要的能力。假设需要 istio 的流量切分,需要有个接口告诉用户这个能力存不存在。不能指望用户去 get 一下 crd 合不合适,检查 Controller 是否运行。这不叫以应用为中心的 K8s,这叫裸 K8s。 所以必须有个能力,叫做插件能力管理。如果我装了 Tekton,kEDA,istio 这些组件,我必须将这些组件注册到能力注册中心,让用户能够发现这些能力,查询这些能力。这叫做:插件能力管理。 用户体验层有了应用层驱动,应用层抽象,插件能力管理,我们才能更好地去考虑,如何给用户暴露一个友好的 API 或者是界面出来。 有这么几种方式,比如CLI客户端命令行工具,或者是一个 Dashboard,又或者是研发侧的 Docker Compose。或者可以让用户写代码,用 python 或者 go 等实现 DSL,这都是可以的。 用户体验层怎么做,完全取决于用户接受什么样的方式。关键点在于以应用为中心的 Kubernetes,UI 层就可以非常方便的基于应用层抽象去做。比如 CLI 就可以直接创建一个流水线和应用,而不是兜兜转转去创建 Deployment 和 Pod,这两个的衔接方式是完全不一样的。pipeline 只需要生成一下就结束了。然后去把 Pod 和 Deployment 组成一个 Pipeline,那这个工作就非常繁琐了。这是非常重要的一点,当你有了应用层驱动,应用层抽象,插件能力管理,再去构建用户体验层就会非常非常简单。 阿里云服务器_阿里云数据库_阿里云代理分销商 典名科技
阿里云服务器,阿里云数据库,阿里云代理,ecs,阿里云代理商,阿里云分销商
阿里云代理商 我们是阿里云授权服务中心,也是阿里云代理商分销商能够提供阿里云服务器、阿里云数据库、阿里云安全等云产品的配置推荐、费用报价、折扣申请、购买售后等一站式服务
|