闲暇之余,我们来聊聊kubernetes的可视化界面。虽然技术人员都喜欢命令行,但是可视化的管理无疑在有些时候可以提供更大的便捷在pod的部署,回收等资源的CRUD的操作,因此我们需要了解一下kubernetes的可视化界面的使用。
kubernetes Dashboard是kubernetes集群的基于Web的通用UI。它允许用户管理在群集中运行的应用程序并对其进行故障排除,以及管理群集本身。默认请款修改安装kubernetes dashboard会拉取国外的镜像,因此我们在使用的过程中需要修改为国内的镜像,或者下载tar包然后自动化导入到集群环境中去。
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v1.10.1/src/deploy/recommended/kubernetes-dashboard.yaml
在经过使用一段时间后发现并没有带来使用上的便捷,并且在不同的Kubernetes环境中需要部署多套dashboard资源,浪费资源消耗,切伴随着kubernetes集群版本的更新也要进行相对应的dashboard版本更新,对于非业务化的服务来说是一件很痛苦的事情。所以进行调研了其他的集群可视化管理平台的解决方案。
Kubernetes
官方本身就提供了一个管理集群的 Dashboard 插件,但是官方的 Dashboard 插件还是有一些局限性,近日360开源了内部使用的 Kubernetes Dashboard 插件:Wayne。Wayne
是一个通用的、基于 Web 的 Kubernetes 多集群管理平台。通过可视化 Kubernetes 对象模板编辑的方式,降低业务接入成本, 拥有完整的权限管理系统,适应多租户场景,是一款适合企业级集群使用的发布平台。
Wayne 已大规模服务于 360 搜索,承载了公司绝大部分业务,稳定管理了上万个容器
命名的起源:360 搜索私有云团队多数项目命名都来源于 DC 漫画的角色,Wayne 也不例外,Wayne 是声名显赫的超级英雄蝙蝠侠 Bruce Wayne 的名字。
wayne项目实际上是前后端分离的实现方案:
wayne功能特性
说的再好,自己先跑起来用用再说,用了才知道好不好。
我们先把wayne项目从github上克隆下来
git clone https://github.com/Qihoo360/wayne /root/workspace/15-wayne
在代码仓库中的hack/kubernetes
目录下面就是我们需要部署的 Wayne 的资源清单文件:
我在使用wayne的时候将其部署在名为kube-ops的namespace下,可根据需要修改即可
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所以来的数据存储服务,我们先来部署一下
> 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
开始部署项目组件
> 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
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
> cat /root/.kube/config# 把config中的内容复制到wayne中,添加集群即可结束
到此,我们就完成了wayne可视化平台的部署了,相当的简单,我这里会添加dev,stage两个集群一起管理,相对比较方便。希望能帮助你…