注意:目前只支持的kubernetes版本为1.15.x ,高版本能使用,但是会有部分资源无法显示。目前官方暂无支持高版本的计划日期。
简介
Wayne 是一个通用的、基于 Web 的 Kubernetes 多集群管理平台。通过可视化 Kubernetes 对象模板编辑的方式,降低业务接入成本,拥有完整的权限管理系统,适应多租户场景,是一款适合企业级集群使用的发布平台。
Wayne 已大规模服务于 360 搜索,承载了内部绝大部分业务,稳定管理了近千个业务,上万个容器,运行了两年多时间,经受住了生产的考验。
命名的起源:360 搜索私有云团队多数项目命名都来源于 DC 漫画的角色,Wayne 也不例外,Wayne 是声名显赫的超级英雄蝙蝠侠 Bruce Wayne 的名字。
项目地址:https://github.com/Qihoo360/wayne.git
架构图
整体采用前后端分离的方案,其中前端采用 Angular 框架进行数据交互和展示,使用 Ace 编辑器进行 Kubernetes 资源模版编辑。后端采用 Beego 框架做数据接口处理,使用 Client-go 与 Kubernetes 进行交互,数据使用 MySQL 存储。
[
Wayne 平台涉及到的基本概念如下:
Wayne | Kubernetes |
---|---|
部门 | Namespace, 为 Kubernetes 集群提供虚拟的隔离作用,详细参考 Namespace 。Wayne 的部门可以对应 Kubernetes 的任意 Namespace, 具体参见配置文档。 |
项目 | 无 Kubernetes 对应概念。是 Wayne 平台为了组织 Kubernetes 的资源虚拟出来的概念。项目下可以包含 Kubernetes 的资源,例如 Deployment,Service 等 |
部署 | Deployment,您在 Deployment 对象中描述了所需的状态,Deployment 控制器以受控速率将实际状态更改为所需状态。详细参考 Deployment 。 |
状态副本集 | StatefulSet,用来管理有状态应用,可以保证部署和 scale 的顺序,详细参考 StatefulSet 。 |
守护进程集 | DaemonSet,保证在每个 Node 上都运行一个容器副本,常用来部署一些集群的日志、监控或者其他系统管理应用,详细参考 Daemonset 。 |
计划任务 | CronJob,Job负责批处理任务,即仅执行一次的任务,它保证批处理任务的一个或多个容器成功结束。CronJob是基于调度的Job执行将会自动产生多个job,调度格式参考Linux的cron系统,详细参考 CronJob 。 |
负载均衡 | Service,Kubernetes Service 是一个抽象,它定义了一组逻辑 Pod 和一个访问它们的策略。详细参考 Service 。 |
路由 | Ingress,是用来聚合集群内服务的方式,对应的是 Kubernetes 的 Ingress 资源,后端使用了 Nginx Controller 来处理具体规则。Ingress 可以给 service 提供集群外部访问的 URL、负载均衡、SSL termination、HTTP 路由等。详细参考 Ingress 。 |