2.1 快速安装
本文将指导您以最小化的方式将 SREWorks 安装在Kubernetes集群上。
1. 前提条件
- Kubernetes 的版本需要大于等于 1.20
- 硬件:
- 分布式部署: 建议至少3台节点(配置为4 核 CPU,16G 内存),存储需要300G以上空间,k8s集群至少能够90个以上的Pod。
- 单机完整(数智版)部署: 建议至少 8核/32G内存/300G硬盘。
- 单机基础版部署: 建议至少 4核/16G内存/100G硬盘。
- 安装步骤以及时长(以完整版为例):
- 在Kubernetes集群上部署SREWorks底座
预计_ _1-2 分钟
- 在Kubernetes集群上部署SREWorks底座
- 在SREWorks底座上部署运维应用
预计 5-15 分钟
- 在SREWorks底座上部署运维应用
- 安装完成通过浏览器访问站点
2. 安装部署
推荐使用 Helm 来安装 SREWorks
安装 Helm
使用以下命令安装(如果已安装了 Helm 3,可以跳过这一步骤):
# 适用Mac intel芯片
wget "http://sreworks.oss-cn-beijing.aliyuncs.com/bin/helm-darwin-amd64" -O helm
# 适用Linux intel芯片
# wget https://sreworks.oss-cn-beijing.aliyuncs.com/bin/helm-linux-am64 -O helm
chmod +x ./helm
mv ./helm /usr/local/bin/
选择网络模式: Ingress/NodePort
不熟悉Ingress的同学,可以参考 Kubernetes 文档 / 概念 / 服务、负载均衡和联网 / Ingress
Ingress模式
SREWorks在Ingress模式下的部署必须指定ingress的域名。
- 以阿里云ACK集群为例,域名可以在【基本信息】中可以找到,例如
http://*.ceea604.cn-huhehaote.alicontainer.com
,* 部分用户可以自行填写,比如http://sreworks.c34a60e3c93854680b590b0d5a190310a.cn-zhangjiakou.alicontainer.com
。 - 未使用阿里云ACK集群的也可以自行确定浏览器访问SREWorks控制台的域名,在安装时传入
appmanager.home.url
参数即可。
Ingress网络模式部署参数参考如下:
--set appmanager.home.url="https://your-website.***.com"
NodePort模式
在云厂商购买虚机,运行NodePort模式需要注意被访问节点(NODE_IP)的网络安全组或防火墙,打开该端口(30767)的公网被访问限制。
NodePort网络模式部署参数参考如下:
--set global.accessMode="nodePort"
--set appmanager.home.url="http://NODE_IP:30767"
执行部署命令
- 基础应用包含8个应用: 运维中台/应用管理/团队管理/集群管理/模板中心/帮助中心/文件管理/系统设置
- 数智应用包含7个应用: 数据运维平台/智能运维平台/故障自愈/健康管理/运营中心/作业调度平台/运维搜索
基础版SREWorks在单台4核16G机器上即可正常启动,基础版部署为基础应用,默认完整部署为 基础应用 + 数智应用。
基础版+NodePort网络模式,部署命令参考如下:
# 下载sreworks到本地
git clone http://github.com/alibaba/sreworks.git -b v1.4 sreworks
cd sreworks/chart/sreworks-chart
# 安装SREWorks
# 替换NODE_IP为某个节点的浏览器可访问IP
helm install sreworks ./ \
--create-namespace --namespace sreworks \
--set global.accessMode="nodePort" \
--set appmanager.home.url="http://NODE_IP:30767" \
--set saas.onlyBase=true
如果需要了解更多的安装参数,请参考《安装参数明细》
3. 验证安装
在浏览器中输入上个步骤的域名,如果能够看到页面,说明已经安装完成(大约需等待5分钟左右)。注册并开始使用 SREWorks。默认账号为admin
,默认密码为12345678
4. 卸载
请务必遵循下面顺序执行。千万不能不执行helm uninstall直接删除namespace,这会导致各种crd变成脏数据残留在集群!
helm uninstall sreworks -nsreworks
kubectl delete namespace sreworks
5. 常见问题
- 需要使用非默认的kubeconfig,请在helm命令中加入
--kubeconfig
指定目标集群的kubeconfig文件的路径
- 需要使用非默认的kubeconfig,请在helm命令中加入
- 如果遇到长时间Pod处于ContainerCreating,请执行
kubectl describe pod
命令查看Pod的异常事件
- 异常事件中出现
InvalidInstanceType.NotSupportDiskCategory
,说明当前的Node不支持挂载这种云盘类型,请在helm命令中加入--set global.storageClass="alicloud-disk-essd"
进行指定,默认为sreworks-hostpath
- 如果无法确认可用的storageClass,可以使用
sbin/storage-class.py
脚本检测。
- 如果遇到长时间Pod处于ContainerCreating,请执行
- 如果sreworks需要升级,可以使用
sbin/upgrade-cluster.sh --kubeconfig="****"
来进行执行,该命令的背后原理是触发所有的init-job重新执行,拉取最新的SaaS应用包进行部署。
- 如果sreworks需要升级,可以使用
- 如果不使用默认的存储集,必须使用
--set appmanagerbase.openebs.enabled=false
来关闭openebs,否则可能出现下面类似的报错。
- 如果不使用默认的存储集,必须使用
MountVolume.MountDevice failed for volume "d-2zec7mb0xriw4p64l3r5" : rpc error: code = Unknown desc = Root device /dev/vde is partition, and you should format /dev/vde1 by hands