部署Bio-OS

circle-info

在开始Bio-OS部署前,请确保您已经在环境中获取了Bio-OS的开源helm charts(https://github.com/Bio-OS/helm-chartsarrow-up-right),Bio-OS支持部署在ARM64及x86_64架构。

另外Bio-OS的部署需要基于Kubernetes,您可以选择部署Kubernetes社区版或Minikube。本文档内容基于x86架构,如您使用环境为arm架构,请注意对应镜像和工具需选择arm版本安装。(请查看部署准备

一. 部署前K8S环境准备

1.1 启动Minikube

此处已假定您已安装Minikube,Minikube的安装可见:Minikube Startarrow-up-right这里以 minikube 为例进行本地环境的构建,生产环境建议选择 kubespray 进行高可用部署。

# root 用户执行
minikube start \
    --image-mirror-country=cn \
    --image-repository=registry.cn-hangzhou.aliyuncs.com/google_containers \
    --force \
    --addons ingress \
    --cni flannel \
    --kubernetes-version 1.24.15 \
    --nodes 4 \
    --ports 80,443 \
    --service-cluster-ip-range '10.255.0.0/16' \# 可自行修改
    --subnet '10.254.0.0/16' # 可执行修改

# 快捷键配置
echo 'alias kubectl="minikube kubectl -- "' >> ~/.bashrc
source ~/.bashrc

1.2 安装helm

安装helm部署包(注意:helm 版本必须大于 2.0 版本,如已有helm则可跳过这步)。如果在arm架构下,需将helm地址修改为:https://get.helm.sh/helm-v3.12.0-linux-arm64.tar.gz

1.3 NFS-Server 部署参考

  • 这里以 Ubuntu 为例部署 NFS 服务,变量 NFS_PATH 对应 NFS 存储目录。(root 用户执行)

安装后检查:

1.4 安装 NFS-CSI 存储服务

安装 storageClass,nfs-csi 默认不提供 sc 资源,需要我们手动安装 sc(参考文档:https://github.com/kubernetes-csi/csi-driver-nfs/blob/master/deploy/example/storageclass-nfs.yaml) 将以下命令复制并在shell中执行。

1.5 检测是否可以正常挂载 PVC

复制以下命令并在shell中执行。

查看pod状态

二. 安装 Bio-OS相关服务

circle-info

Bio-OS 的部署依赖 mysql 数据库、jupyterhub以及cromwell,安装 bioos 服务前需先安装mysql、jupyterhub和cromwell。安装顺序:MySQL -> Jupyterhub -> Cromwell -> Bioos(必须遵从

2.1 安装 mysql 服务

命令中的rootPassword可改成自己需要的密码,但是后续步骤中都要做对应的修改。

2.2 安装 Jupyterhub

Bioos 使用 helm 打包,目前分为四个子包,需要注意的是 Jupyterhub 部署之后,打开浏览器获取新的 token 才能继续部署 bioos-server、web 服务。 使用 Helm 安装jupyterhub(请注意选择符合环境架构的镜像):

打开浏览器访问:http://服务器IP/jupyterhub, 申请新 token.

2.3 安装 cromwell

安装cromwell有两种方式,分别是通过helm安装以及通过jar包部署,如使用helm进行安装,则安装简单但是工作流运行中无法使用docker镜像,如果是jar包部署则工作流运行可以使用docker镜像。

  1. helm安装

  1. jar包安装

从下面的链接下载cromwell-85.jar:https://github.com/broadinstitute/cromwell/releases/tag/85arrow-up-right

为了cromwell能够和mysql通信,需要修改mysql的连接方式:

通过以下命令获取InternalIP:

获取InternalIP如下所示

编辑application.conf,使用上面获取到的InternalIP和Port更新mysql的连接串

application.conf如下所示

使用java运行cromwell(此处注意需要有nohup确保cromwell在后台运行):

2.4 安装 Bioos 服务

三. 环境验收

执行命令 `kubectl get po ,pv,pvc,ing` 查看应用部署状态,bioos 使用了两块存储,一块用于 Mysql,一块用于 bioos 存储,并提供了若干 ingress 规则,方便子路径引用服务。

命令状态应该如下所示:

打开浏览器访问 http://服务器IP/workspace,至此完成 bioos 安装.

Last updated