Hi V 友们,给大家介绍一个项目。
这次带来的是 CasOS:一个跑在 Kubernetes 之上的「云操作系统」,但和你以往用过的 K8s 管理面板不太一样——它不需要你先有一个 Kubernetes 集群。它自己就内嵌了控制面。支持 Linux / macOS ,甚至在 Windows 原生下也可以直接运行。
起因:搭一个 K8s 太重了
如果你只是想要一个能管 Pod 、管 Deployment 、能看日志能进终端的可视化平台,传统路径大概是这样的:
- 装 etcd
kubeadm init,调一堆参数- 装 API Server 、Controller Manager 、Scheduler ,确认它们都互相认识
- 再装一个 Dashboard 或者第三方管理面板
- 证书、网络插件、RBAC……一个都不能少
折腾完一圈,光是为了"能点开一个网页看 Pod 列表",就已经先和 etcd 的 TLS 配置斗智斗勇了一下午。
CasOS 想解决的就是这个问题:把 API Server 、Controller Manager 、Scheduler 这些控制面组件内嵌进服务本身,部署的时候不用再单独去拉起一套 Kubernetes 控制面、不用再为了状态存储单独运维一套 etcd 。
它是怎么做到的
- API Server 、Controller Manager 、Scheduler 都内嵌在同一个服务里,不需要单独部署
- 状态数据落到 MySQL ,跟着你现有的数据库运维体系走,不用再多维护一套 etcd
- 证书首次启动自动生成
- Web UI 和控制面是同一套部署单元,配好数据库连接就能跑起来
结果就是:配一个数据库连接,几分钟内就能拉起一个完整可用的 Kubernetes 环境,而不是几个小时。
能干什么
从 Web UI 上可以管理 Kubernetes 工作负载的完整生命周期:
- 工作负载:Deployment / StatefulSet / CronJob 的创建、扩缩容、镜像滚动更新
- 存储与网络:PVC 、ConfigMap 、Secret 、Service 、Ingress 、NetworkPolicy
- 运维体验:Pod 实时日志抽屉、基于 xterm.js 的浏览器内终端(走 K8s exec WebSocket )、容器文件浏览器——不用再开一个 SSH 窗口
- 权限管理:ClusterRoleBinding (集群级)和 RoleBinding (命名空间级)都能在 UI 里直接配置,不用敲
kubectl create rolebinding - 安全加固:内置准入策略 webhook 拦截危险操作,授权策略 webhook 控制谁能读写哪些资源,还集成了 Trivy 镜像扫描,部署前就能看到镜像里的已知 CVE
- 证书自动化:刚加了 Let's Encrypt HTTP-01 自动签发和手动证书上传,给 Ingress 配 HTTPS 不用再手动折腾 cert-manager 的一堆 CRD (当然想用 cert-manager 也支持)
- 身份认证走可插拔的 OAuth2/OIDC ,接入企业现有的 IdP ( Google 、GitHub 、LDAP 、SAML 等)基本零改动
技术栈
| 层级 | 技术 |
|---|---|
| 后端 | Go 1.26 、Beego 、MySQL |
| 前端 | React 18 、Ant Design 6 、recharts |
| 控制面 | 内嵌 API Server / Controller Manager / Scheduler |
支持 Linux / macOS / Windows 三端运行。
链接
- GitHub: https://github.com/casosorg/casos
- 官网: https://www.casos.net
- 文档:随仓库一起开源,欢迎 PR 和 issue
如果你也烦透了为了跑个 Dashboard 先要搭一整套 K8s ,欢迎来试试,也欢迎来吐槽。