在规划集群拓扑后,可以在 Kubernetes 中部署 Doris 集群。

部署集群

使用 Custom Resource 文件部署

在线部署

在线署集群需要经过以下步骤:

  1. 创建 namespace:
  1. kubectl create namespace ${namespace}
  1. 部署 Doris 集群
  1. kubectl apply -f ./${cluster_sample}.yaml -n ${namespace}

离线部署

离线部署 Doris 集群需要在有外网的机器上将 Doris 集群用到的 docker 镜像,上传到所有的 node 节点上。然后使用 docker load 将镜像安装到服务器上。离线部署需要经历以下步骤:

  1. 下载所需的镜像

部署 Doris 集群需要以下镜像:

  1. selectdb/doris.fe-ubuntu:2.0.2
  2. selectdb/doris.be-ubuntu:2.0.2

将镜像下载到本地后打包成 tar 文件

  1. ## download docker image
  2. docker pull selectdb/doris.fe-ubuntu:2.0.2
  3. docker pull selectdb/doris.be-ubuntu:2.0.2
  4. ## save docker image as a tar package
  5. docker save -o doris.fe-ubuntu-v2.0.2.tar selectdb/doris.fe-ubuntu:2.0.2
  6. docker save -o doris.be-ubuntu-v2.0.2.tar docker pull selectdb/doris.be-ubuntu:2.0.2

将 image tar 包上传到服务器上,执行 docker load 命令:

  1. ## load docker image
  2. docker load -i doris.fe-ubuntu-v2.0.2.tar
  3. docker load -i doris.be-ubuntu-v2.0.2.tar
  1. 创建 namespace:
  1. kubectl create namespace ${namespace}
  1. 部署 Doris 集群
  1. kubectl apply -f ./${cluster_sample}.yaml -n ${namespace}

使用 Helm 部署

在线部署

在安装开始前,需要添加部署仓库,若已经添加则可直接进行 Doris Cluster 的安装,否则请参考添加部署 Doris Operator添加部署仓库 的操作

  1. 安装 Doris Cluster

安装 doriscluster,使用默认配置此部署仅部署 3 个 FE 和 3 个 BE 组件,使用默认 storageClass 实现 PV 动态供给。

  1. helm install doriscluster doris-repo/doris

如果需要自定义资源和集群形态,请根据 values.yaml 的各个资源配置的注解自定义资源配置,并执行如下命令:

  1. helm install -f values.yaml doriscluster doris-repo/doris
  1. 验证 doris 集群安装结果

通过 kubectl get pods 命令可以查看 pod 部署状态。当 doriscluster 的 Pod 处于 Running 状态且 Pod 内所有容器都已经就绪,即部署成功。

  1. kubectl get pod --namespace doris

返回结果如下:

  1. NAME READY STATUS RESTARTS AGE
  2. doriscluster-helm-fe-0 1/1 Running 0 1m39s
  3. doriscluster-helm-fe-1 1/1 Running 0 1m39s
  4. doriscluster-helm-fe-2 1/1 Running 0 1m39s
  5. doriscluster-helm-be-0 1/1 Running 0 16s
  6. doriscluster-helm-be-1 1/1 Running 0 16s
  7. doriscluster-helm-be-2 1/1 Running 0 16s

离线部署

  1. 下载 Doris Cluster Chart 资源

下载 doris-{chart_version}.tgz 安装 Doris Cluster chart。如需要下载 2.0.6 版本的 Doris 集群可以使用以下命令:

  1. wget https://charts.selectdb.com/doris-2.0.6.tgz
  1. 安装 Doris 集群

通过 helm install 命令可以安装 Doris 集群。

  1. helm install doriscluster doris-1.4.0.tgz

如果需要自定义装配 values.yaml ,可以参考如下命令:

  1. helm install -f values.yaml doriscluster doris-1.4.0.tgz
  1. 验证 doris 集群安装结果

通过 kubectl get pods 命令可以查看 pod 部署状态。当 doriscluster 的 Pod 处于 Running 状态且 Pod 内所有容器都已经就绪,即部署成功。

  1. kubectl get pod --namespace doris

返回结果如下:

  1. NAME READY STATUS RESTARTS AGE
  2. doriscluster-helm-fe-0 1/1 Running 0 1m39s
  3. doriscluster-helm-fe-1 1/1 Running 0 1m39s
  4. doriscluster-helm-fe-2 1/1 Running 0 1m39s
  5. doriscluster-helm-be-0 1/1 Running 0 16s
  6. doriscluster-helm-be-1 1/1 Running 0 16s
  7. doriscluster-helm-be-2 1/1 Running 0 16s

查看集群状态

检查集群状态

集群部署资源下发后,可以通过以下命令检查集群状态。

  1. kubectl get pods -n ${namespace}

返回结果如下:

  1. NAME READY STATUS RESTARTS AGE
  2. doriscluster-sample-fe-0 1/1 Running 0 20m
  3. doriscluster-sample-be-0 1/1 Running 0 19m

当所有 pod 的 STATUS 都是 Running 状态, 且所有组件的 pod 中所有容器都 READY 表示整个集群部署正常。

检查部署资源状态

Doris Operator 会收集集群服务的状态显示到下发的资源中。Doris Operator 定义了 DorisCluster 类型资源名称的简写 dcr,在使用资源类型查看集群状态时可用简写替代。

  1. kubectl get dcr

返回结果如下:

  1. NAME FESTATUS BESTATUS CNSTATUS BROKERSTATUS
  2. doriscluster-sample available available

当配置的相关服务的 STATUS 都为 available 时,集群部署成功。