动手搓一个kubernetes管理平台(1)-需求和框架

先拍个脑袋

市面上对于kubernetes集群的管理平台其实不算少,但常用的就那么几个,比如厚重的rancher,比如老而弥坚的kube-dashboard,以及集成了很多其他功能的kubeSphere等,但和其他开源项目一样,为了满足大多数使用场景,所以会做的相对较重,导致了对其进行二次开发会比较困难,所以在阅读了一些优秀的k8s管理平台的源码后,为什么不自己手搓 一个呢?

1. 需求

在考虑深度需求的时候 ,不妨先想想基础的需求,一个最简单的kubernetes 管理平台,需要哪些功能?

  • 全类型资源展示
  • 监控数据展示
  • 容器TTY
  • 容器日志
  • 权限管理和审计
  • yaml的编辑
  • 基本的控制封装(扩容/缩容,排水,打污点等)

上述可以说是对集群管理最基本的功能了,在满足上述功能后,可以再根据业务实际需求进行新需求的封装,比如报表等,这个后面再说。

2. 框架和语言

还是使用常见的MVVM的设计模式,前端使用vue3,后端考虑到需要调用k8s,考虑到client-go的便捷性,所以使用golang作为后端语言,大致的框架如下:

  • 前端: Arco Design(字节框架,基于Vue3 + Vite + TS进行封装)
  • 后端: Golang+Iris
  • 动手搓一个kubernetes管理平台(1)-需求和框架_第1张图片
个人公众号, 分享一些日常开发,运维工作中的日常以及一些学习感悟,欢迎大家互相学习,交流

在这里插入图片描述

你可能感兴趣的:(从零开始写一个k8s管理平台,kubernetes,容器,云原生,golang)