关于k8s之上的一些平台的梳理

一些杂思

k8s 是一个云原生操作系统,和传统的操作系统所做的事类似,都是对资源进行虚拟化,并提供一系列通用场景的模型来抽象这些资源。 传统操作系统主要在 cpu、mem、持久化、进程、网络、权限 方面做了抽象和虚拟,k8s 主要在 node、workload、持久化、网络、权限 方面做了抽象和虚拟,突出的地方在于 将传统操作系统对于一台机器的管理 变成了 对集群中所有机器的管理

以往,在操作系统之上诞生了 Iaas、paas、saas 的服务体系,那么在 k8s 的体系下,又会有什么变化吗?

k8s 可以认为是在 Iaas 和 Paas 之间的一层,一定程度上可以对标 openstack (但实际上属于这之上,毕竟 k8s 不能对基础设施做控制,维度不同,但 openstack 也能做容器的编排,所以层次比较交叉)。

一般认为,paas 提供的是在基础设施之上,能降低业务应用开发和维护成本的一系列辅助系统的集合,例如 paas 能提供业务需要的 存储空间、CICD流、常用中间件、数据库等等…… 从这个角度看,k8s 不属于 paas,也不属于 iaas,而是夹在这两者之间。

那么,自然而然的,至少会诞生这三类生态形态: ① 在 Iaas 之上的,用于维护和管理 k8s 的平台 ② 在 k8s 之上的 paas 平台 ③ 在特定领域扩展 k8s 能力的应用

实际上,我们也确确实实看到了这些形态的项目,以下举一些例子:

  1. kubeless
  2. kubesphere
  3. openkruise
  4. kubevela
  5. istio

k8s 诞生的历史使命,实际上是解决大规模服务部署与维护的问题。无论 k8s 之上建立起了多少强大的生态,也一定是为更好地实现这个目标而服务的。从一个角度看,不管 paas 还是 saas,实际上都是应用,那么只有真正把 应用部署和维护 的事做好,才算是最大化地发挥了 k8s 的价值。

应用部署和维护有什么特别难解的问题?

  • 流量治理
    • 金丝雀发布
    • 可观测性建设 (eg: ebpf)
  • 有状态服务维护
  • 跨区域集群调度和维护
  • 工程上操作友好 (理解成本)
    • flow (kubevela、argoCD、airflow……)
    • control (admin、kubesphere、spinnaker……)

看看如何把这几件事做好!


A man sees in the world what he carries in his heart.
Johann Wolfgang von Goethe


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!