网站首页 > 技术教程 正文
Wayne是笔者无意之间刷文章了解到的,简单使用之后发现能解决当前眼下诸多问题,出于推动公司容器化进程的原因选择开始使用,当前所有环境都已经在使用中。借助官方的介绍Wayne 是一个通用的、基于 Web 的 Kubernetes 多集群管理平台。通过可视化 Kubernetes 对象模板编辑的方式,降低业务接入成本,拥有完整的权限管理系统,适应多租户场景,是一款适合企业级集群使用的发布平台。
附上:
喵了个咪的博客:w-blog.cn
wayne官方Git地址:https://github.com/Qihoo360/wayne/blob/master/README-CN.md
PS:当前最新版本 v1.8.6,官方暂时不支持版本升级能力,不要轻易尝试版本升级;
Wayne 已大规模服务于 360 搜索,承载了内部绝大部分业务,稳定管理了近千个业务,上万个容器,运行了两年多时间,经受住了生产的考验。
一、Wayne介绍
要引入任何一个工具首先需要看到问题,如果盲目的引入工具提出要求,有时候不但达不到效果还增加了研发成本。
当时笔者在公司推动容器化陷入了一个僵局,环境都已经准备好了,但是有很多遗留的包袱需要迁移里面就涉及到如下的难点了:
- 基础yaml文件难以管理,之前使用git维护不便/更新迟滞
- 开发水平不一,编写yaml文件经常出现各种问题
- 开发环境需要排查问题登录容器shell,需要查看日志
- 使用K8S-Dashbord权限无法把控,开发人员会不小心删除了别人内容
- 强制资源限制,避免开发使用资源过度,优化不足
- 和CI/CD对接,自动化更新不依赖于kubectl避免控制权泄露
- 测试/集成/预发/生产,多环境管理难,原生Dashbord使用繁琐
当面临到一定规模的容器化场景都会多多少少遇到这些问题,估计360也是遇到了这些问题但是并没有特别好的解决方案才开发了这套系统。
多租户隔离支持LDAP,完备权限体系,命名空间 -> 项目 -> 资源
我们已团队建设出多个命名空间对应K8S的命名空间,项目作为团队内部的项目分组,在到对应不同的资源
PS:这里推荐两种区分环境的方法:
一种是多环境绑定在一起,通过部署名称来区分环境,并且分离测试集成(开发自助)和预发生产(运维管理)Wayne实例,保障不越权,避免误操作(推荐);
另外一种就是全部运维管理,通过一套模板控制所有环境;
基于独立数据库的Yaml配置存储,强制资源限制
OpenApi+Token校验机制提供足够灵活性
支持多集群同时管理,在线WebShell+日志查看能力
Wayne架构图
Wayne整体采用前后端分离的方案,其中前端采用 Angular 框架进行数据交互和展示,使用 Ace 编辑器进行 Kubernetes 资源模版编辑。后端采用 Beego 框架做数据接口处理,使用 Client-go 与 Kubernetes 进行交互,数据使用 MySQL 存储。
二、Wayne安装
需要准备好 docker 环境 和 docker-compose 可以参考笔者之前的文章:
git clone https://github.com/Qihoo360/wayne.git
cd wayne/hack/docker-compose
配置文件修改
wayne分为两个组件 wayne-backend 和 wayne-frontend
- wayne-backend:主要API
- wayne-frontend:WEB界面
锁定版本,如果使用latest可能会遇到版本更新导致的不兼容,最新版本 v1.8.6 上一稳定版本 v1.7.1都可以选择
vim docker-compose.yaml
image: 360cloud/wayne-backend:v1.8.6
image: 360cloud/wayne-frontend:v1.8.6
Wayne采用前后端分离方式,如果需要在内网或外网访问wayne系统需要访问地址配置,本地测试可以先用localhost
vim conf/config.js
window.CONFIG = {
URL: 'http://yourip:8080',
RAVEN: false,
RAVEN_DSN: 'RAVEN_DSN'
};
运行程序
docker-compose up -d
Creating docker-compose_mysql_1 ... done
Creating docker-compose_wayne-backend_1 ... done
Creating docker-compose_wayne-frontend_1 ... done
访问 http://localhost:4200/ 即可,默认用户名密码admin:
配置独立Mysql运行
一般来说我们会使用独立mysql来存储元数据保障数据的稳定,如果Wayne丢失了数据库回复会非常的麻烦
删除配置文件中的mysql和 link
vim docker-compose.yaml
mysql:
image: mysql:5.6.41
environment:
MYSQL_ROOT_PASSWORD: "root"
networks:
- default
expose:
- "3306"
ports:
- "3306:3306"
rabbitmq:
environment:
RABBITMQ_NODENAME: "rabbit"
RABBITMQ_DEFAULT_USER: "guest"
RABBITMQ_DEFAULT_PASS: "guest"
image: rabbitmq:3.7.8-management
networks:
- default
expose:
- "5672"
ports:
- "5672:5672"
depends_on:
- mysql
修改配置文件
vim conf/app.conf
# database configuration:
## mysql
DBName = "wayne"
DBTns = "tcp(mysql:3306)"
DBUser = "root"
DBPasswd = "root"
DBLoc = "Asia%2FShanghai"
DBConnTTL = 30
OAuth2 OR LDAP
vim conf/app.conf
# oauth2
[auth.oauth2]
enabled = false
redirect_url = "https://www.wayne.cloud"
client_id = client
client_secret = secret
auth_url = https://example.com/oauth2/v1/authorize
token_url = https://example.com/oauth2/v1/token
api_url = https://example.com/oauth2/v1/userinfo
# If your OAuth 2.0-based authorization service does not have email, name, and dispaly fields, use mapping criteria.
api_mapping = name:name,email:email,display:display
# ldap config
# enable ldap login
[auth.ldap]
enabled = false
ldap_url = ldap://127.0.0.1
ldap_search_dn = "cn=admin,dc=example,dc=com"
ldap_search_password = admin
ldap_base_dn = "dc=example,dc=com"
ldap_filter =
ldap_uid = cn
ldap_scope = 2
ldap_connection_timeout = 30
- 上一篇: 搭着360也能打造自己的智能安全卫士
- 下一篇: 游玩聚会的好拍档 怡可拍360°全景相机评测
猜你喜欢
- 2025-01-31 马鞍山长江段美成啥样?360°全景镜头带你去打卡
- 2025-01-31 360集团与创业黑马达成战略合作 成立GPT联盟赋能百万企业客户
- 2025-01-31 360创始人周鸿祎:很多人嘲笑我不务正业当网红,我根本不是要当网红,我是要做流量!大家都已经不信广告了
- 2025-01-31 文临公路文昌段预计年底通车(文临高速公路线路图)
- 2025-01-31 惬意栖居!360度无死角复古公寓装修设计
- 2025-01-31 360文库会员升级,享免费下载数亿热门文档等多项权益
- 2025-01-31 兰州城关区:“民生就业360”打造全方位就业服务样板
- 2025-01-31 文献调研三六零:拓展360安全大脑覆盖面保障朝阳网络空间安全
- 2025-01-31 只是“精神股东”?360公司、哪吒汽车声明:自媒体恶意诋毁
- 2025-01-31 游玩聚会的好拍档 怡可拍360°全景相机评测
你 发表评论:
欢迎- 最近发表
-
- linux CentOS检查见后门程序的shell
- 网络安全工程师演示:黑客是如何使用Nmap网络扫描工具的?
- Linux中ftp服务修改默认21端口等(linux修改ftp配置文件)
- Linux系统下使用Iptables配置端口转发,运维实战收藏!
- 谈谈TCP和UDP源端口的确定(tcp和udp的端口号相同吗)
- Linux 系统 通过端口号找到对应的服务及相应安装位置
- 快速查找NAS未占用端口!Docker端口秒级排查+可视化占坑双杀技
- 【知识杂谈#2】如何查看Linux的(本地与公网)IP地址与SSH端口号
- 如何在Linux中查询 DNS 记录,这三个命令可谓是最常用、最经典的
- 【Linux系统编程】特殊进程之守护进程
- 标签列表
-
- 下划线是什么 (87)
- 精美网站 (58)
- qq登录界面 (90)
- nginx 命令 (82)
- nginx .http (73)
- nginx lua (70)
- nginx 重定向 (68)
- Nginx超时 (65)
- nginx 监控 (57)
- odbc (59)
- rar密码破解工具 (62)
- annotation (71)
- 红黑树 (57)
- 智力题 (62)
- php空间申请 (61)
- 按键精灵 注册码 (69)
- 软件测试报告 (59)
- ntcreatefile (64)
- 闪动文字 (56)
- guid (66)
- abap (63)
- mpeg 2 (65)
- column (63)
- dreamweaver教程 (57)
- excel行列转换 (56)
本文暂时没有评论,来添加一个吧(●'◡'●)