1. 程式人生 > >Qihoo360/wayne安裝部署管理Kubernetes(k8s)叢集

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

 

 

啟動結果
360

登入

您可以從通過 http://ip:8080/admin 訪問本地 Wayne, 預設管理員賬號admin:admin。

120

叢集配置
進入後臺
11

在左側選單中點選叢集 -> 列表 -> +建立叢集,可以新建一個叢集: 

12


名字隨便填寫即可,Master填寫叢集的apiserver地址,然後下面的KubeConfig是最重要的,如果我們經常使用 kubectl 工具的話就應該知道這個工具的配置檔案其實就是一個KubeConfig,我們只需要把需要管理的叢集的KubeConfig檔案複製到這裡即可,預設路徑是~/.kube/config檔案,建立完成後就可以看到新增的叢集資訊了: 

新增例子

在這裡插入圖片描述

111

111

搭建完成