Qihoo360/wayne安裝部署管理Kubernetes(k8s)叢集
一、概述
Kubernetes 官方本身就提供了一個管理叢集的 Dashboard 外掛,但是官方的 Dashboard 外掛還是有一些侷限性,近日360開源了內部使用的 Kubernetes Dashboard 外掛:Wayne。 Wayne 是一個通用的、基於 Web 的 Kubernetes 多叢集管理平臺。通過視覺化 Kubernetes 物件模板編輯的方式,降低業務接入成本, 擁有完整的許可權管理系統,適應多租戶場景,是一款適合企業級叢集使用的釋出平臺。
Wayne 已大規模服務於 360 搜尋,承載了公司絕大部分業務,穩定管理了上萬個容器。
命名的起源:360 搜尋私有云團隊多數專案命名都來源於 DC 漫畫的角色,Wayne 也不例外,Wayne 是聲名顯赫的超級英雄蝙蝠俠 Bruce Wayne 的名字。
架構設計
整體採用前後端分離的方案,其中前端採用 Angular 框架進行資料互動和展示,使用Ace編輯器進行 Kubernetes 資源模版編輯。後端採用 Beego 框架做資料介面處理,使用 Client-go 與 Kubernetes 進行互動,資料使用 MySQL 儲存。
特性
基於 RBAC(Role based access control)的許可權管理:使用者通過角色與部門和專案關聯,擁有部門角色允許操作部門資源,擁有專案角色允許操作專案資源,更加適合多租戶場景。
簡化 k8s 物件建立:提供基礎 k8s 物件配置檔案新增方式,同時支援高階模式直接編輯 Json/Yaml檔案建立 k8s 物件。
LDAP/OAuth 2.0/DB 多種登入模式支援:整合企業級 LDAP 登入及 DB 登入模式,同時還可以實現 OAuth2 登入。
支援多叢集、多租戶:可以同時管理多個 Kubernetes 叢集,並針對性新增特定配置,更方便的多叢集、多租戶管理。
提供完整審計模組:每次操作都會有完整的審計功能,追蹤用於操作歷史,同時支援使用者自定義 webhook。
提供基於 APIKey 的開放介面呼叫:使用者可自主申請相關 APIKey 並管理自己的部門和專案,運維人員也可以申請全域性 APIKey 進行特定資源的全域性管理。
保留完整的釋出歷史:使用者可以便捷的找到任何一次歷史釋出,並可輕鬆進行回滾,以及基於特定歷史版本更新 k8s 資源。
具備完善的資源報表:使用者可以輕鬆獲取各專案的資源使用佔比和歷史上線頻次(天級)以及其他基礎資料的報表和圖表。
提供基於嚴密許可權校驗的 web shell:使用者可以通過 web shell 的形式進入釋出的 Pod 進行操作,自帶完整的許可權校驗。
提供站內通知系統:方便管理員推送叢集、業務通知和故障處理報告等。
二 、Docker安裝
# 安裝依賴包
yum install -y yum-utils device-mapper-persistent-data lvm2
# 新增Docker軟體包源
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
# 更新yum包索引
yum makecache fast
# 安裝Docker CE
yum install docker-ce
# 啟動
systemctl start docker
systemctl enable docker
# 解除安裝
yum remove docker-ce
rm -rf /var/lib/docker
三 、docker-compose安裝
yum install epel-release
yum install python-pip -y
pip install pip --upgrade
pip install docker-compose
四、wayne安裝
git clone https://github.com/Qihoo360/wayne.git
cd wayne/
docker-compose up -d mysql
建立資料庫配置檔案
[[email protected] tmp]# cat /tmp/dev.conf
DBName = wayne
# MySQL address,如果MySQL是通過docker-compose啟動的,
# Mac OS 下無法直接通過127.0.0.1訪問,請修改為實際IP
DBTns = tcp(10.39.47.63:3306)
DBUser = root
DBPasswd = root
啟動wayne服務
docker run --rm -e GOPATH=/go -v /tmp/dev.conf:/opt/wayne/conf/dev.conf -p 8080:8080 360cloud/wayne /opt/wayne/backend apiserver
http://172.16.8.200:8080
使用者/密碼: admin/admin
啟動結果
登入
您可以從通過 http://ip:8080/admin 訪問本地 Wayne, 預設管理員賬號admin:admin。
叢集配置
進入後臺
在左側選單中點選叢集 -> 列表 -> +建立叢集,可以新建一個叢集:
名字隨便填寫即可,Master填寫叢集的apiserver地址,然後下面的KubeConfig是最重要的,如果我們經常使用 kubectl 工具的話就應該知道這個工具的配置檔案其實就是一個KubeConfig,我們只需要把需要管理的叢集的KubeConfig檔案複製到這裡即可,預設路徑是~/.kube/config檔案,建立完成後就可以看到新增的叢集資訊了:
新增例子
搭建完成