Wayne 是一個通用的、基於 Web 的 Kubernetes 多叢集管理平臺。通過視覺化 Kubernetes 物件模板編輯的方式,降低業務接入成本, 擁有完整的許可權管理系統,適應多租戶場景,是一款適合企業級叢集使用的釋出平臺。
Wayne已大規模服務於360搜尋,承載了內部絕大部分業務,穩定管理了近千個業務,上萬個容器,運行了兩年多時間,經受住了生產的考驗。
命名起源:360 搜尋私有云團隊多數專案命名都來源於 DC 漫畫的角色,Wayne 也不例外,Wayne 是聲名顯赫的超級英雄蝙蝠俠 Bruce Wayne 的名字。
Features
基於 RBAC(Role based access control)的許可權管理:使用者通過角色與部門和專案關聯,擁有部門角色允許操作部門資源,擁有專案角色允許操作專案資源,更加適合多租戶場景。簡化 Kubernetes 物件建立:提供基礎 Kubernetes 物件配置檔案新增方式,同時支援高階模式直接編輯 Json/Yaml檔案建立 Kubernetes 物件。LDAP/OAuth 2.0/DB 多種登入模式支援:整合企業級 LDAP 登入及 DB 登入模式,同時還可以實現 OAuth2 登入。支援多叢集、多租戶:可以同時管理多個 Kubernetes 叢集,並針對性新增特定配置,更方便的多叢集、多租戶管理。提供完整審計模組:每次操作都會有完整的審計功能,追蹤用於操作歷史,同時支援使用者自定義 webhook。提供基於 APIKey 的開放介面呼叫:使用者可自主申請相關 APIKey 並管理自己的部門和專案,運維人員也可以申請全域性 APIKey 進行特定資源的全域性管理。保留完整的釋出歷史:使用者可以便捷的找到任何一次歷史釋出,並可輕鬆進行回滾,以及基於特定歷史版本更新 Kubernetes 資源。具備完善的資源報表:使用者可以輕鬆獲取各專案的資源使用佔比和歷史上線頻次(天級)以及其他基礎資料的報表和圖表。提供基於嚴密許可權校驗的 Web shell:使用者可以通過 Web shell 的形式進入釋出的 Pod 進行操作,自帶完整的許可權校驗。提供站內通知系統:方便管理員推送叢集、業務通知和故障處理報告等。架構設計
整體採用前後端分離的方案,其中前端採用 Angular 框架進行資料互動和展示,使用Ace編輯器進行 Kubernetes 資源模版編輯。後端採用 Beego 框架做資料介面處理,使用 Client-go 與 Kubernetes 進行互動,資料使用 MySQL 儲存。
元件
Web UI: 提供完整的業務開發和平臺運維功能體驗。Worker: 擴充套件一系列基於訊息佇列的功能,例如 Audit 和 Webhooks 等審計元件。專案依賴
Golang 1.12+(installation manual)Docker 17.05+ (installation manual)Bee (installation manual) (請務必使用連結版本,不要使用 beego 官方版本,存在一些定製)Node.js 8+ and npm 5+ (installation with nvm)MySQL 5.6+ (Wayne 主要資料都存在 MySQL 中)RabbitMQ (可選,如需擴充套件審計功能,例如操作審計和 Webhooks 等,則需部署)快速啟動
克隆程式碼倉庫$ go get github.com/Qihoo360/wayne啟動服務在 Wayne 的根目錄下,通過 docker-compose 建立服務$ docker-compose -f ./hack/docker-compose/docker-compose.yaml up通過上述命令,您可以從通過 http://127.0.0.1:4200 訪問本地 Wayne, 預設管理員賬號 admin:admin。
注意:專案啟動後還需要配置叢集和Namespace等資訊才可正常使用。詳見 叢集配置
最新評論