1.2.3.3.1 快速部署¶
在 K8s
上部署存算分离集群需要提前部署好 FDB
。如果是虚机部署需确保部署的虚机能够被 K8s
集群上的服务访问,部署请参考存算分离部署文档中部署前准备阶段介绍;如需要在 K8s
上部署请参考 FDB
在 K8s
上部署。部署 Doris
存算分离集群分为两部分: Doris-Operator
及其相关依赖权限部署; Doris
存算分离集群定制化资源部署。
1 部署 Operator¶
-
下发资源定义:
Bash 1
kubectl create -f https://raw.githubusercontent.com/apache/doris-operator/master/config/crd/bases/crds.yaml
预期结果:
Bash 1 2
customresourcedefinition.apiextensions.k8s.io/dorisdisaggregatedclusters.disaggregated.cluster.doris.com created customresourcedefinition.apiextensions.k8s.io/doris.selectdb.com_dorisclusters.yaml created
-
部署
Doris-Operator
以及依赖的RBAC
规则:Bash 1
kubectl apply -f https://raw.githubusercontent.com/apache/doris-operator/master/config/operator/disaggregated-operator.yaml
预期结果:
Bash 1 2 3
kubectl -n doris get pods NAME READY STATUS RESTARTS AGE doris-operator-6b97df65c4-xwvw8 1/1 Running 0 19s
2 快速部署存算分离集群¶
-
下载
ddc-sample.yaml
部署样例:Bash 1
curl -O https://raw.githubusercontent.com/apache/doris-operator/master/doc/examples/disaggregated/cluster/ddc-sample.yaml
-
根据存算分离
K8s
部署文档中,元数据配置章节配置metaService
;fe
集群配置章节进行fe
终态规格配置;计算资源组配置章节进行相关资源组的配置。配置完成后,使用如下命令部署资源:Bash 1
kubectl apply -f ddc-sample.yaml
部署资源下发后,等待集群自动搭建完成,成功结果预期如下:
Bash 1 2 3
kubectl get ddc NAME CLUSTERHEALTH FEPHASE CGCOUNT CGAVAILABLECOUNT CGFULLAVAILABLECOUNT test-disaggregated-cluster green Ready 2 2 2
Tip
MS
服务需要使用 FDB
作为后端元数据存储,部署 MS
服务必须部署 FDB
服务,请按照部署 FDB
文档提前部署。
3 创建远程存储后端¶
存算分离集群搭建完毕后,需要通过客户端执行相应的 CREATE STORAGE VAULT
SQL语句创建存储后端来实现数据的持久化。集群访问方式可参考访问 Doris
集群来连接 Doris
集群,下文提供其中一种实现方式。
-
获取
Service
在部署集群后,通过以下命令可以查看
Doris Operator
暴露的service
:Bash 1
kubectl get svc
返回结果如下:
Bash 1 2 3 4 5 6
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE test-disaggregated-cluster-fe ClusterIP 10.96.147.97 <none> 8030/TCP,9020/TCP,9030/TCP,9010/TCP 15m test-disaggregated-cluster-fe-internal ClusterIP None <none> 9030/TCP 15m test-disaggregated-cluster-ms ClusterIP 10.96.169.8 <none> 5000/TCP 15m test-disaggregated-cluster-cg1 ClusterIP 10.96.47.90 <none> 9060/TCP,8040/TCP,9050/TCP,8060/TCP 14m test-disaggregated-cluster-cg2 ClusterIP 10.96.50.199 <none> 9060/TCP,8040/TCP,9050/TCP,8060/TCP 14m
-
MySQL
客户端访问使用以下命令,可以在当前的
Kubernetes
集群中创建一个包含mysql client
的pod
:Bash 1
kubectl run mysql-client --image=mysql:5.7 -it --rm --restart=Never -- /bin/bash
在集群内的容器中,可以使用
fe
服务名访问Doris
集群:Bash 1
mysql -uroot -P9030 -h test-disaggregated-cluster-fe
-
创建存储后端
创建语句语法,具体参考管理
Storage Vault
。这里提供S3
协议对象存储的示例:-
创建
S3 Storage Vault
Bash 1 2 3 4 5 6 7 8 9 10 11
CREATE STORAGE VAULT IF NOT EXISTS s3_vault PROPERTIES ( "type"="S3", -- required "s3.endpoint" = "oss-cn-beijing.aliyuncs.com", -- required "s3.region" = "bj", -- required "s3.bucket" = "bucket", -- required "s3.root.path" = "big/data/prefix", -- required "s3.access_key" = "ak", -- required "s3.secret_key" = "sk", -- required "provider" = "OSS" -- required );
-
设置默认数据后端
Bash 1
SET s3_vault AS DEFAULT STORAGE VAULT;
-