Skip to main content
Version: v1.1

2.1 快速安装

本文会将 SREWorks 以最小化的方式安装在 Kubernetes 上,这样可以帮助你节省资源。

1. 前提条件

  • Kubernetes 的版本需要大于等于 1.20
  • 硬件:
    • 分布式部署: 建议至少3台节点(配置为4 核 CPU,16G 内存),存储需要300G以上空间,90个Pod以上配额
    • 单机部署: 建议至少 8核/32G内存/300G硬盘

2. 安装部署

推荐使用 Helm 来安装 SREWorks

安装 Helm 3

使用以下命令安装(如果已安装了 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/

模式一: 安装 SREWorks - 采用Ingress方式访问

  • SREWorks的部署必须指定ingress的域名,阿里云ACK集群的域名在【基本信息】中可以找到,例如 http://*.ceea604.cn-huhehaote.alicontainer.com ,* 部分用户可以自行填写,比如http://sreworks.c34a60e3c93854680b590b0d5a190310a.cn-zhangjiakou.alicontainer.com。未使用阿里云ACK集群的也可以自行确定浏览器访问SREWorks控制台的域名,在安装时传入appmanager.home.url参数即可。
# 下载sreworks到本地
git clone http://github.com/alibaba/sreworks.git -b v1.2 sreworks
cd sreworks/chart/sreworks-chart

# 安装SREWorks
helm install sreworks ./ \
--kubeconfig="~/.kube/***" \
--create-namespace --namespace sreworks \
--set appmanager.home.url="https://your-website.***.com" \
--set global.storageClass="alicloud-disk-available" \
--set appmanagerbase.openebs.enabled=false

模式二: 安装 SREWorks - 采用NodePort方式访问

  • 在云厂商购买虚机,运行NodePort模式需要注意被访问节点(NODE_IP)的网络安全组或防火墙,打开该端口(30767)的公网被访问限制。
# 下载sreworks到本地
git clone http://github.com/alibaba/sreworks.git -b v1.2 sreworks
cd sreworks/chart/sreworks-chart

# 安装SREWorks
# 替换NODE_IP为某个节点的浏览器可访问IP
# 如果kubectl默认就指向目标k8s集群,kubeconfig参数可以不加
helm install sreworks ./ \
--kubeconfig="~/.kube/***" \
--create-namespace --namespace sreworks \
--set global.accessMode="nodePort" \
--set appmanager.home.url="http://NODE_IP:30767"

注意: 默认的storageClass:sreworks-hostpath 是由OpenEBS的LocalPV方案实现的,仅能用于开发测试环境,如需用于生产,建议使用符合 Kubernetes 要求的持久化存储(如 GlusterFS、Ceph 等分布式存储,或云服务上上的块存储。

单机快速部署案例

案例1: Kubesphere All-in-one 集群部署数智版SREWorks

# 下载并安装kk工具
curl -sfL https://get-kk.kubesphere.io | VERSION=v2.0.0 sh -

# 通过kk工具部署k8s集群
./kk create cluster --with-kubernetes v1.21.5 --with-kubesphere v3.2.1

# 下载sreworks到本地
git clone http://github.com/alibaba/sreworks.git -b v1.2 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 global.storageClass="local" \
--set appmanagerbase.openebs.enabled=false

3. 验证安装

在浏览器中输入上个步骤的域名,如果能够看到页面,说明已经安装完成(大约需等待5分钟左右)。注册并开始使用 SREWorks。默认账号为admin,默认密码为12345678

4. 卸载

请务必遵循下面顺序执行。千万不能不执行helm uninstall直接删除namespace,这会导致各种crd变成脏数据残留在集群!

helm uninstall sreworks -nsreworks
kubectl delete namespace sreworks

5. 常见问题

    1. 需要使用非默认的kubeconfig,请在helm命令中加入--kubeconfig指定目标集群的kubeconfig文件的路径
    1. 如果遇到长时间Pod处于ContainerCreating,请执行 kubectl describe pod 命令查看Pod的异常事件
    • 异常事件中出现 InvalidInstanceType.NotSupportDiskCategory,说明当前的Node不支持挂载这种云盘类型,请在helm命令中加入 --set global.storageClass="alicloud-disk-essd" 进行指定,默认为sreworks-hostpath
    • 如果无法确认可用的storageClass,可以使用 sbin/storage-class.py 脚本检测。
    1. 如果sreworks需要升级,可以使用 sbin/upgrade-cluster.sh --kubeconfig="****"来进行执行,该命令的背后原理是触发所有的init-job重新执行,拉取最新的SaaS应用包进行部署。
    1. 如果不使用默认的存储集,必须使用 --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