- K8S集群已创建,若无可参考sealos快速安装k8s集群;
- 为K8S集群准备一个存储类,若无可参考K8S对接NFS共享存储;
- 已在K8S的一个master节点安装Helm,若无可参考官网安装;
- 部署SCOW的K8S集群节点挂载一个相同的共享目录,例如
/scow
。
# k8s-node01为规划中k8s中部署scow的节点,若有多个,请分别执行。
# app=scow 标签用于k8s的节点亲和性选择
kubectl label nodes k8s-node01 app=scow
-
为部署scow的节点设置到登录节点的root免密(操作略);
-
挂载共享目录,挂载点为
/scow
,并创建如下目录。# config用于存放scow部署配置 # portal用于存放门户自定义入口数据 # public用于存放自定义公共资源,如图片等 mkdir /scow/{config,portal,public}
通过scow-cli生成配置文件:
# 下载
wget https://github.com/PKUHPC/SCOW/releases/download/latest/cli-x64
# 重命名
mv cli-x64 cli
#修改文件权限
chmod +x cli
#生成配置sample
./cli init
根据实际情况修改config
目录中的配置文件(可不用配置install.yaml文件),如何修改请参照SCOW文档网站,此处略。
配置完成后将config
目录中的文件按照文件目录拷贝到/scow/config/
。
下载该项目,在安装了Helm的master节点执行:
git clone https://github.com/PKUHPC/scow-k8s.git
修改values.yaml
配置文件,重点关注以下参数:
配置项 | 说明 | 备注 |
---|---|---|
storageClass | 为SCOW提供的存储类名称 | 根据实际存储类名称修改 |
image.repository | SCOW镜像仓库 | |
image.tag | SCOW镜像tag | SCOW版本 |
gateway.nodePort | SCOW服务外部访问端口 | k8s nodeport端口,大于30000,默认30080 |
gateway.resolver | k8s dns解析地址 | 默认kube-dns.kube-system.svc.cluster.local |
***.db.db_password | ***服务mysql数据库密码 | 默认为aWNvZGVAMjAyNA==,base64编码(icode@2024) |
安装:
helm install scow . -n scow --create-namespace
# 查看SCOW的Deployment
[root@k8s-master ~]# kubectl get deploy -n scow
NAME READY UP-TO-DATE AVAILABLE AGE
ai-db-deployment 1/1 1 1 29h
ai-deployment 1/1 1 1 29h
audit-db-deployment 1/1 1 1 29h
audit-server-deployment 1/1 1 1 29h
auth-deployment 1/1 1 1 29h
db-deployment 1/1 1 1 29h
gateway-deployment 1/1 1 1 29h
mis-server-deployment 1/1 1 1 29h
mis-web-deployment 1/1 1 1 29h
novnc-deployment 1/1 1 1 29h
portal-server-deployment 1/1 1 1 29h
portal-web-deployment 1/1 1 1 29h
redis-deployment 1/1 1 1 29h
# 查看SCOW的Pod
[root@k8s-master ~]# kubectl get po -n scow
NAME READY STATUS RESTARTS AGE
ai-db-deployment-5c96958564-chgs6 1/1 Running 0 29h
ai-deployment-6c48758c66-ddq8h 1/1 Running 0 29h
audit-db-deployment-95d757cb8-n28mw 1/1 Running 0 29h
audit-server-deployment-9bbbcf89-kjgbk 1/1 Running 3 (29h ago) 29h
auth-deployment-84b9bdc47d-sdvw5 1/1 Running 0 29h
db-deployment-7645577f46-mlm2w 1/1 Running 0 29h
gateway-deployment-769f99fd9f-8b9mr 1/1 Running 0 29h
mis-server-deployment-7665bfb564-rkbcs 1/1 Running 3 (29h ago) 29h
mis-web-deployment-6cd8dc495c-g62wq 1/1 Running 2 (29h ago) 29h
novnc-deployment-545dc54956-24q6h 1/1 Running 0 29h
portal-server-deployment-858d96d6c-vs55k 1/1 Running 0 29h
portal-web-deployment-7ccffc89f9-zzvgc 1/1 Running 1 (29h ago) 29h
redis-deployment-5b778d7fb8-6p466 1/1 Running 0 29h
# 查看SCOW的Service
[root@k8s-master ~]# kubectl get svc -n scow
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ai ClusterIP 10.96.3.2 <none> 3000/TCP 29h
ai-adapter ClusterIP 10.96.1.13 <none> 8972/TCP 29h
ai-db ClusterIP 10.96.1.26 <none> 3306/TCP 29h
audit-db ClusterIP 10.96.1.91 <none> 3306/TCP 29h
audit-server ClusterIP 10.96.3.185 <none> 5000/TCP 29h
auth ClusterIP 10.96.2.5 <none> 5000/TCP 29h
db ClusterIP 10.96.1.216 <none> 3306/TCP 29h
gateway NodePort 10.96.3.141 <none> 80:30080/TCP 29h
mis-server ClusterIP 10.96.1.79 <none> 5000/TCP 29h
mis-web ClusterIP 10.96.2.75 <none> 3000/TCP 29h
novnc ClusterIP 10.96.2.224 <none> 80/TCP 29h
portal-server ClusterIP 10.96.2.24 <none> 5000/TCP 29h
portal-web ClusterIP 10.96.3.19 <none> 3000/TCP 29h
redis ClusterIP 10.96.1.187 <none> 6379/TCP 29h
# 查看SCOW各数据库的密码配置
[root@k8s-master ~]# kubectl get secret -n scow
NAME TYPE DATA AGE
mysql-info Opaque 3 29h
SCOW日志收集与查看请参考:EFK部署与使用。