关于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 能力的应用
实际上,我们也确确实实看到了这些形态的项目,以下举一些例子:
- kubeless
- kubesphere
- openkruise
- kubevela
- 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 协议 ,转载请注明出处!