官方已更新Operator部署方式,最新部署方式參考 官方文檔
1. 按照官網(wǎng)提供地址下載部署文件
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-612495.html
2. 修改內(nèi)核配置
sysctl -w vm.max_map_count=2000000
3. 根據(jù)服務(wù)器環(huán)境,修改doris_be.yml文件。
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
apiVersion: v1
kind: Service
metadata:
name: doris-be-cluster1
labels:
app: doris-be-cluster1
spec:
ports:
- port: 9060
name: be-port
- port: 8040
name: webserver-port
- port: 9050
name: heartbeat-port #This name should be fixed. Doris will get the port information through this name
- port: 8060
name: brpc-port
clusterIP: None
selector:
app: doris-be-cluster1
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: doris-be-cluster1
labels:
app: doris-be-cluster1
spec:
selector:
matchLabels:
app: doris-be-cluster1
serviceName: doris-be-cluster1
replicas: 3
template:
metadata:
name: doris-be-cluster1
labels:
app: doris-be-cluster1
spec:
containers:
- name: doris-be-cluster1
#Need to change to real mirror information
#image: apache-doris-be:test
# 修改點(diǎn)1: 鏡像地址修改為真實(shí)doris鏡像,可在https://hub.docker.com/r/apache/doris/tags找到需要的鏡像版本
image: apache/doris:2.0.0_alpha-be-x86_64
imagePullPolicy: IfNotPresent
env:
#Specify the startup type as k8s to bypass some restrictions of the official image initialization script
- name: BUILD_TYPE
value: "k8s"
# 修改點(diǎn)2: 增加環(huán)境變量,寫明FE的IP與端口
- name: FE_MASTER_IP
value: "doris-follower-cluster1-0.doris-follower-cluster1.doris.svc.cluster.local"
- name: FE_MASTER_PORT
value: "9030"
ports:
- containerPort: 9060
name: be-port
- containerPort: 8040
name: webserver-port
- containerPort: 9050
name: heartbeat-port
- containerPort: 8060
name: brpc-port
volumeMounts:
#Mount the configuration file in the way of configmap
- name: conf
mountPath: /opt/apache-doris/be/conf
#Ifnot mounted, when enable_profile, error will be reported when querying the data from jdbc catalog
#Error message: error setting certificate verify locations: CAfile:/etc/pki/tls/certs/ca-bundle.crt CApath: none
- name: sys
mountPath: /etc/pki
# 修改點(diǎn)3: 掛載存儲(chǔ)
subPath: pki
readOnly: true
# 同修改點(diǎn)3
- name: sys
mountPath: /opt/apache-doris/be/storage
subPath: storage
volumes:
- name: conf
configMap:
name: be-conf
- name: sys
# 修改點(diǎn)4:不使用hostpath,注釋掉
#hostPath:
#path: /etc/pki
# 修改點(diǎn)5: 增加存儲(chǔ)配置,此處使用longhorn
volumeClaimTemplates:
- metadata:
name: sys
spec:
storageClassName: longhorn
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 50Gi
---
apiVersion: v1
kind: ConfigMap
metadata:
name: be-conf
data:
be.conf: |
PPROF_TMPDIR="$DORIS_HOME/log/"
sys_log_level = INFO
be_port = 9060
webserver_port = 8040
heartbeat_service_port = 9050
brpc_port = 8060
# 修改點(diǎn)6: 修改網(wǎng)段為k8s使用網(wǎng)段,配置數(shù)據(jù)存儲(chǔ)路徑
priority_networks = 10.42.0.0/16
storage_root_path = /opt/apache-doris/be/storage
4. 根據(jù)服務(wù)器環(huán)境,修改doris_follower.yml文件
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
apiVersion: v1
kind: Service
metadata:
name: doris-follower-cluster1
labels:
app: doris-follower-cluster1
spec:
ports:
- port: 8030
name: http-port
- port: 9020
name: rpc-port
- port: 9030
name: query-port
- port: 9010
name: edit-log-port #This name should be fixed. Doris will get the port information through this name
clusterIP: None
selector:
app: doris-follower-cluster1
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: doris-follower-cluster1
labels:
app: doris-follower-cluster1
spec:
selector:
matchLabels:
app: doris-follower-cluster1
serviceName: doris-follower-cluster1
# 修改點(diǎn)1: 修改fe副本為1
replicas: 1
template:
metadata:
name: doris-follower-cluster1
labels:
app: doris-follower-cluster1
spec:
containers:
- name: doris-follower-cluster1
#Need to change to real mirror information
# 修改點(diǎn)2: 鏡像地址修改為真實(shí)doris鏡像,可在https://hub.docker.com/r/apache/doris/tags找到需要的鏡像版本
image: apache/doris:2.0.0_alpha-fe-x86_64
imagePullPolicy: IfNotPresent
env:
# 修改點(diǎn)3: 增加了APP_NAMESPACE與FE_IPADDRESS環(huán)境變量
- name: APP_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: FE_IPADDRESS
valueFrom:
fieldRef:
fieldPath: status.podIP
#Specify the startup type as k8s to bypass some restrictions of the official image initialization script
- name: BUILD_TYPE
value: "k8s"
#Initialize the fe of three nodes
- name: FE_INIT_NUMBER
# 修改點(diǎn)4: 將數(shù)量改為1
value: "1"
#ServiceName of bakend_cn node,(if do not have bakend_cn node,do not configure this environment variable)
# 修改點(diǎn)5: 不使用cn節(jié)點(diǎn),注釋變量CN_SERVICE CN_STATEFULSET
#- name: CN_SERVICE
# value: "doris-cn-cluster1"
#StatefulSetName of bakend_cn node,(if do not have bakend_cn node,do not configure this environment variable)
#- name: CN_STATEFULSET
# value: "doris-cn-cluster1"
#ServiceName of bakend node,(if do not have bakend node,do not configure this environment variable)
- name: BE_SERVICE
value: "doris-be-cluster1"
#StatefulSetName of bakend node,(if do not have bakend node,do not configure this environment variable)
- name: BE_STATEFULSET
value: "doris-be-cluster1"
#ServiceName of follower node,(if do not have follower node,do not configure this environment variable)
- name: FE_SERVICE
value: "doris-follower-cluster1"
##StatefulSetName of follower node,(if do not have follower node,do not configure this environment variable)
- name: FE_STATEFULSET
value: "doris-follower-cluster1"
ports:
- containerPort: 8030
name: http-port
- containerPort: 9020
name: rpc-port
- containerPort: 9030
name: query-port
- containerPort: 9010
name: edit-log-port
volumeMounts:
#Mount the configuration file in the way of configmap
- name: conf
mountPath: /opt/apache-doris/fe/conf
#In order to call the api of k8s
- name: kube
# 使用本地配置則為/root/.kube/config
mountPath: /root/.kube
readOnly: true
# 修改點(diǎn)6: 配置存儲(chǔ),用于元數(shù)據(jù)持久化
- name: metadata
mountPath: /opt/apache-doris/fe/doris-meta
volumes:
- name: conf
configMap:
name: follower-conf
- name: kube
# 修改點(diǎn)7: 修改為使用configMap(此處可以不修改,使用本地配置)
#hostPath:
#path: /root/.kube/config
configMap:
name: kube-conf
# 修改點(diǎn)8: 增加存儲(chǔ)配置,此處使用longhorn
volumeClaimTemplates:
- metadata:
name: metadata
spec:
storageClassName: longhorn
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 10Gi
---
apiVersion: v1
kind: ConfigMap
metadata:
name: follower-conf
data:
fe.conf: |
# 修改點(diǎn)9: 修改網(wǎng)段為k8s使用網(wǎng)段
priority_networks = 10.42.0.0/16
#It can automatically maintain node information by getting the number of replicas of StatefulSet, similar to alter system add/drop back
enable_deploy_manager = k8s
#Automatically adjust the IP of the node according to the domain name (for example, after the pod is restarted, the domain name is still doris-be-cluster1-0-doris-be-cluster1.default.svc.cluster.local, but the IP may change from 172.16.0.9 to 172.16.0.10)
enable_fqdn_mode = true
LOG_DIR = ${DORIS_HOME}/log
sys_log_level = INFO
http_port = 8030
rpc_port = 9020
query_port = 9030
edit_log_port = 9010
#Doris needs to generate the log4j configuration file according to the fe.yml configuration information, which is written in the same directory as fe.yml by default, but the config we mount is readonly, so specify this configuration to write the log4j file to another location
custom_config_dir = /opt/apache-doris/
#when set to false, the backend will not be dropped and remaining in DECOMMISSION state
drop_backend_after_decommission = false
# 修改點(diǎn)10: 增加元數(shù)據(jù)、java等配置
mysql_service_nio_enabled = true
JAVA_OPTS = "-Xmx8192m -XX:+UseMembar -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSClassUnloadingEnabled -XX:-CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xloggc:$DORIS_HOME/log/fe.gc.log.$DATE"
JAVA_OPTS_FOR_JDK_9 = "-Xmx8192m -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=7 -XX:+CMSClassUnloadingEnabled -XX:-CMSParalle=80 -XX:SoftRefLRUPolicyMSPerMB=0 -Xlog:gc*:$DORIS_HOME/log/fe.gc.log.$DATE:time"
meta_dir = /opt/apache-doris/fe/doris-meta
#metadata_failure_recovery = true
---
# 修改點(diǎn)11: 增加kube config的configmap(此處可不修改,直接使用本地節(jié)點(diǎn)配置)
apiVersion: v1
kind: ConfigMap
metadata:
name: kube-conf
data:
config: |
# 此處內(nèi)容復(fù)制配置文件內(nèi)容,如果server地址指向的為127.0.0.1,注意修改為實(shí)際節(jié)點(diǎn)IP
# 一般為 /root/.kube/config 內(nèi)容, rancher安裝的rke2環(huán)境默認(rèn)為/etc/rancher/rke2/rke2.yaml
5. 創(chuàng)建服務(wù)用于外部連接doris-svc.yaml
apiVersion: v1
kind: Service
metadata:
name: doris-svc
namespace: doris
spec:
type: NodePort
ports:
- port: 8030
nodePort: 30803
name: "p8030"
- port: 9030
nodePort: 30903
name: "p9030"
selector:
app: doris-follower-cluster1
6. 部署
kubectl create ns doris
kubectl apply -f doris_be.yml -n doris
kubectl apply -f doris_follower.yml -n doris
kubectl apply -f doris-svc.yaml -n doris
7. 訪問(wèn)及使用, 默認(rèn)賬號(hào)為root,無(wú)密碼
# web端訪問(wèn)地址
http://[節(jié)點(diǎn)IP]:30803/login
# 使用mysql client連接地址
host: [節(jié)點(diǎn)IP]
port: 30903
user: root
pass:
# 使用mysql client連接后可修改root密碼
SET PASSWORD FOR 'root' = PASSWORD('your_password');
文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-612495.html
到了這里,關(guān)于doris on k8s 的安裝部署的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!