前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >最好的Kubernetes集群可视化管理平台

最好的Kubernetes集群可视化管理平台

作者头像
公众号: 云原生生态圈
发布2021-11-15 17:30:32
2.8K0
发布2021-11-15 17:30:32
举报
文章被收录于专栏:云原生生态圈

kubernetes Dashboard

闲暇之余,我们来聊聊kubernetes的可视化界面。虽然技术人员都喜欢命令行,但是可视化的管理无疑在有些时候可以提供更大的便捷在pod的部署,回收等资源的CRUD的操作,因此我们需要了解一下kubernetes的可视化界面的使用。

kubernetes本身集成的Dashboard插件

kubernetes Dashboard是kubernetes集群的基于Web的通用UI。它允许用户管理在群集中运行的应用程序并对其进行故障排除,以及管理群集本身。默认请款修改安装kubernetes dashboard会拉取国外的镜像,因此我们在使用的过程中需要修改为国内的镜像,或者下载tar包然后自动化导入到集群环境中去。

快速的安装

代码语言:javascript
复制
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml

在经过使用一段时间后发现并没有带来使用上的便捷,并且在不同的Kubernetes环境中需要部署多套dashboard资源,浪费资源消耗,切伴随着kubernetes集群版本的更新也要进行相对应的dashboard版本更新,对于非业务化的服务来说是一件很痛苦的事情。所以进行调研了其他的集群可视化管理平台的解决方案。

360开源kubernetes多集群管理平台Wayne

Kubernetes 官方本身就提供了一个管理集群的 Dashboard 插件,但是官方的 Dashboard 插件还是有一些局限性,近日360开源了内部使用的 Kubernetes Dashboard 插件:Wayne。Wayne 是一个通用的、基于 Web 的 Kubernetes 多集群管理平台。通过可视化 Kubernetes 对象模板编辑的方式,降低业务接入成本, 拥有完整的权限管理系统,适应多租户场景,是一款适合企业级集群使用的发布平台。

Wayne 已大规模服务于 360 搜索,承载了公司绝大部分业务,稳定管理了上万个容器

命名的起源:360 搜索私有云团队多数项目命名都来源于 DC 漫画的角色,Wayne 也不例外,Wayne 是声名显赫的超级英雄蝙蝠侠 Bruce Wayne 的名字。

wayn架构图

wayne项目实际上是前后端分离的实现方案:

  1. 前端采用 Angular 框架进行数据交互和展示,使用 Ace 编辑器进行 Kubernetes 资源模版编辑。
  2. 后端采用 Beego 框架做数据接口处理,持久层采用 MySQL 存储,使用rabbitmq做消息中间件,主要用户扩展审计功能使用,使用 client-go 与 Kubernetes 进行交互。

wayne功能特性

  • 视化操作:提供直观、简便的方式操作 Kubernetes 集群,减小学习成本,快速上线业务。
  • 多样的编辑模式:支持图形化编辑,也支持 Json、Yaml 两种高级定制化编辑模式。
  • 微内核架构:采用可扩展的插件化方式开发,定制化选择特性功能,更方便的集成符合企业需求的新功能。
  • 多集群管理:可以同时管理多个 Kubernetes 集群,更方便的管理多个集群。
  • 丰富的权限管理:将资源抽象化为部门、项目级别,角色的权限可以更细化的控制,适用于多部门、多项目的统一集中管理。
  • 多种登录模式:支持企业级 LDAP 登录、支持 OAuth2 登录,支持数据库登录多种模式。
  • 完备的审计:所有操作都会有完整的审计功能,方便追踪操作历史。
  • 开放平台:支持 APIKey 开放平台,用户可自主申请相关 APIKey 并管理自己的项目。
  • 多层次监控:提供多级别的监控统计信息,实时关注集群的运行状态。

跑起来…

说的再好,自己先跑起来用用再说,用了才知道好不好。

wayne的运行组件
  • Web UI: 提供完整的业务开发和平台运维功能体验。
  • Worker: 扩展一系列基于消息队列的功能,例如 audit 和 webhook 等审计组件。
开始干起来…

我们先把wayne项目从github上克隆下来

代码语言:javascript
复制
git clone https://github.com/Qihoo360/wayne /root/workspace/15-wayne

在代码仓库中的hack/kubernetes目录下面就是我们需要部署的 Wayne 的资源清单文件:

我在使用wayne的时候将其部署在名为kube-ops的namespace下,可根据需要修改即可

代码语言:javascript
复制
hack/kubernetes
├── dependency
│   ├── mysql.yaml
│   └── rabbitmq.yaml
└── wayne
├── configmap.yaml
├── deployment.yaml
├── ingress.yaml
├── service.yaml
└── service.yaml.bak3 directories, 9 files

wayne项目下的hack/kubernetes/dependency目录下是wayne所以来的数据存储服务,我们先来部署一下

代码语言:javascript
复制
> cd hack/kubernetes/dependency
> kubectl apply -f .
> kubectl get deployment -n kube-ops
NAME                  DESIRED   CURRENT   UP-TO-DATE   AVAILABLE   AGE
mysql-wayne           1         1         1            1           27d
rabbitmq-wayne        1         1         1            1           27d
> kubectl get pods -n kube-ops | egrep 'mysql|rabbitmq'mysql-wayne-76868cd65f-9mt57           1/1       Running   5          27d
rabbitmq-wayne-bcdb685d4-xwwzd         1/1       Running   9          27d

开始部署项目组件

代码语言:javascript
复制
> cd hack/kubernetes/wayne
> kubectl apply -f .
> kubectl get pods -n kube-ops
NAME                                   READY     STATUS    RESTARTS   AGE
alertmanager-84c87cfb86-fxnp5          1/1       Running   3          25d
grafana-65bbcfbdb5-9f6qb               1/1       Running   58         25d
infra-wayne-dd5985c97-7nk8p            1/1       Running   4          25d
infra-wayne-webhook-58cc9dc9bc-v47gl   1/1       Running   5          25d
infra-wayne-woker-84c4774fd4-9z4kh     1/1       Running   3          25d
mysql-wayne-76868cd65f-9mt57           1/1       Running   5          27d
node-exporter-rz7vs                    1/1       Running   7          26d
node-exporter-wtdr7                    1/1       Running   3          26d
node-exporter-zwhmh                    1/1       Running   4          26d
prometheus-7cc7bd5995-zqqtm            1/1       Running   2          25d
rabbitmq-wayne-bcdb685d4-xwwzd         1/1       Running   9          27d
redis-546f6c4c9c-lffb7                 2/2       Running   8          27d

我这里使用的是traefik ingress代理服务的访问,因此多一个ingress.yml

代码语言:javascript
复制
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: wayne-dashboard
namespace: kube-ops
annotations:
kubernetes.io/ingress.class: "traefik"
spec:
rules:
- host: wayne.chinadevops.com
http:
paths:
- path: /
backend:
serviceName: infra-wayne
servicePort: 8080这里我们就已经部署完成了,下面我们看一下运行的状态

这里我们就已经部署完成了,下面我们看一下运行的状态

访问一下: https://wayne.chinadevops.com

登录: admin/admin

  1. 在平台中添加集群
代码语言:javascript
复制
> cat /root/.kube/config# 把config中的内容复制到wayne中,添加集群即可结束

到此,我们就完成了wayne可视化平台的部署了,相当的简单,我这里会添加dev,stage两个集群一起管理,相对比较方便。希望能帮助你…

参考链接

  1. https://github.com/Qihoo360/wayne
  2. https://www.google.com
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云原生生态圈 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • kubernetes Dashboard
  • kubernetes本身集成的Dashboard插件
    • 快速的安装
    • 360开源kubernetes多集群管理平台Wayne
      • wayn架构图
        • 跑起来…
          • wayne的运行组件
          • 开始干起来…
      • 参考链接
      相关产品与服务
      容器服务
      腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档