跳转至

1.2.3.2.1 快速部署

本章节介绍如何在测试 Kubernetes 集群中部署 Doris OperatorDoris 集群。部署操作如下:

  1. 创建 Kubernetes 测试集群

  2. 部署 Doris Operator

  3. 部署 Doris 集群

  4. 连接访问 Doris 集群

1 创建 Kubernetes 测试集群

此步骤简述在没有 k8s 集群的情况下如何快速搭建一套单节点 k8s 集群,如果已有 k8s 集群,此步骤请跳过。

Kind 是目前比较通用的创建本地 Kubernetes 测试环境的方案。 Kind 使用 Docker 容器作为节点,在本地创建和运行 Kubernetes 集群。

  1. 部署前置条件部署前需要确保环境中具有以下组件:

    组件 版本要求
    Docker >= 18.09
    kubectl >=1.19
    kind >=0.8.0
  2. 使用 kind 部署 Kubernetes 集群本例中使用 kind 0.10.0 版本安装 Kubernetes 集群,命令如下:

    Bash
    1
    kind create cluster --image kindest/node:v1.20.2 --name test-doris
    

    期望输出结果:

    Bash
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Creating cluster "test-doris" ...
     Ensuring node image (kindest/node:v1.20.2)
     Preparing nodes
     Writing configuration
     Starting control-plane
     Installing CNI
     Installing StorageClass
    Set kubectl context to "kind-test-doris"
    You can now use your cluster with:
    
  3. 检查 Kubernetes 集群状态使用以下命令检查 Kubernete 集群状态:

    Bash
    1
    kubectl cluster-info --context kind-test-doris
    

    以下是期望输出结果:

    Bash
    1
    2
    3
    Kubernetes control plane is running at https://127.0.0.1:40075
    KubeDNS is running at https://127.0.0.1:40075/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
    To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
    

2 部署 Doris Operator

部署 Doris Operator 分成安装定义和部署 operator 服务两部分:

  1. 安装 Doris Operator CRD 通过以下命令添加 Doris Operator 的自定义资源( CRD ):

    Bash
    1
    kubectl create -f https://raw.githubusercontent.com/selectdb/doris-operator/master/config/crd/bases/doris.selectdb.com_dorisclusters.yaml
    

    期望输出结果:

    Bash
    1
    customresourcedefinition.apiextensions.k8s.io/dorisclusters.doris.selectdb.com created
    
  2. 安装 Doris Operator 通过以下命令安装 Doris Operator

    Bash
    1
    kubectl apply -f https://raw.githubusercontent.com/selectdb/doris-operator/master/config/operator/operator.yaml
    

    期望输出结果:

    Bash
    1
    2
    3
    4
    5
    6
    7
    namespace/doris created
    role.rbac.authorization.k8s.io/leader-election-role created
    rolebinding.rbac.authorization.k8s.io/leader-election-rolebinding created
    clusterrole.rbac.authorization.k8s.io/doris-operator created
    clusterrolebinding.rbac.authorization.k8s.io/doris-operator-rolebinding created
    serviceaccount/doris-operator created
    deployment.apps/doris-operator created
    
  3. 检查 Doris Operator 状态通过以下命令检查 Doris Operator 的部署状态:

    Bash
    1
    kubectl get pods -n doris
    

    期望输出结果:

    Bash
    1
    2
    NAME                              READY   STATUS    RESTARTS   AGE
    doris-operator-7f578c86cb-nz6jn   1/1     Running   0          19m
    

    Doris Operator 相关配置以及其他部署方式可参考部署 operator 部分。

3 部署 Doris 集群

  1. 下载模板 Doris 部署模板:

    Bash
    1
    curl -O https://raw.githubusercontent.com/apache/doris-operator/master/doc/examples/doriscluster-sample.yaml
    
  2. 根据集群配置章节按需进行定制化配置,配置完成后通过如下命令部署:

    Bash
    1
    kubectl apply -f doriscluster-sample.yaml
    
  3. 检查集群部署状态:通过查看 pods 的状态检查集群的状态:

    Bash
    1
    kubectl get pods
    

    期望结果:

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

    检查部署资源的状态:

    Bash
    1
    kubectl get dcr -n doris
    

    期望结果:

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

4 连接访问 Doris 集群

在测试环境中快速部署的 Doris 集群,可以进入容器 FE 内部使用 MySQL Client 链接 Doris 进行测试操作。其他访问方式可参考集群配置访问章节配置使用。

  1. 获取 FE 容器名称:

    Bash
    1
    2
    kubectl get pod -n doris | grep fe
    doriscluster-sample-fe-0          1/1     Running   0          16m
    

    在本例中, FE 容器名为 doriscluster-sample-fe-0

  2. 进入 FE 容器内部:

    Bash
    1
    kubectl -n doris exec -it doriscluster-sample-fe-0 /bin/bash
    
  3. FE 容器内部使用 MySQL Client 链接 Doris 集群:

    Bash
    1
    mysql -uroot -P9030 -h127.0.0.1