299 lines
9.6 KiB
YAML
299 lines
9.6 KiB
YAML
kind: StatefulSet
|
|
apiVersion: apps/v1
|
|
metadata:
|
|
name: doris-cluster-be
|
|
namespace: bj-sh-uas-260511
|
|
labels:
|
|
app.kubernetes.io/component: doris-cluster-be
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app.kubernetes.io/component: doris-cluster-be
|
|
template:
|
|
metadata:
|
|
name: doris-cluster-be
|
|
labels:
|
|
app.kubernetes.io/component: doris-cluster-be
|
|
spec:
|
|
imagePullSecrets:
|
|
- name: harborsecret
|
|
volumes:
|
|
- name: podinfo
|
|
downwardAPI:
|
|
items:
|
|
- path: labels
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.labels
|
|
- path: annotations
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.annotations
|
|
defaultMode: 420
|
|
- name: doris-cluster-be-conf
|
|
configMap:
|
|
name: doris-cluster-be-conf
|
|
defaultMode: 420
|
|
- name: be-storage
|
|
hostPath:
|
|
path: /var/lib/docker/be-storage/
|
|
type: ""
|
|
- name: be-log
|
|
hostPath:
|
|
path: /data/be-log/
|
|
type: ""
|
|
initContainers:
|
|
- name: default-init
|
|
image: '192.168.3.31:8033/cmii/tools:1.0'
|
|
command:
|
|
- /bin/sh
|
|
args:
|
|
- '-c'
|
|
- sysctl -w vm.max_map_count=2000000 && swapoff -a
|
|
resources:
|
|
limits:
|
|
cpu: '1'
|
|
memory: 1Gi
|
|
requests:
|
|
cpu: '0.5'
|
|
memory: 500Mi
|
|
terminationMessagePath: /dev/termination-log
|
|
terminationMessagePolicy: File
|
|
imagePullPolicy: IfNotPresent
|
|
securityContext:
|
|
privileged: true
|
|
containers:
|
|
- name: be
|
|
image: '192.168.3.31:8033/cmii/doris.be-ubuntu:2.1.6'
|
|
command:
|
|
- /opt/apache-doris/be_entrypoint.sh
|
|
args:
|
|
- $(ENV_FE_ADDR)
|
|
ports:
|
|
- name: be-port
|
|
containerPort: 9060
|
|
protocol: TCP
|
|
- name: webserver-port
|
|
containerPort: 8040
|
|
protocol: TCP
|
|
- name: heartbeat-port
|
|
containerPort: 9050
|
|
protocol: TCP
|
|
- name: brpc-port
|
|
containerPort: 8060
|
|
protocol: TCP
|
|
env:
|
|
- name: POD_NAME
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.name
|
|
- name: POD_IP
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: status.podIP
|
|
- name: HOST_IP
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: status.hostIP
|
|
- name: POD_NAMESPACE
|
|
valueFrom:
|
|
fieldRef:
|
|
apiVersion: v1
|
|
fieldPath: metadata.namespace
|
|
- name: CONFIGMAP_MOUNT_PATH
|
|
value: /etc/doris
|
|
- name: USER
|
|
value: root
|
|
- name: DORIS_ROOT
|
|
value: /opt/apache-doris
|
|
- name: ENV_FE_ADDR
|
|
value: doris-cluster-fe-service
|
|
- name: FE_QUERY_PORT
|
|
value: '9030'
|
|
resources:
|
|
limits:
|
|
cpu: '8'
|
|
memory: 8Gi
|
|
requests:
|
|
cpu: '4'
|
|
memory: 4Gi
|
|
volumeMounts:
|
|
- name: podinfo
|
|
mountPath: /etc/podinfo
|
|
- name: be-storage
|
|
mountPath: /opt/apache-doris/be/storage
|
|
- name: be-log
|
|
mountPath: /opt/apache-doris/be/log
|
|
- name: doris-cluster-be-conf
|
|
mountPath: /etc/doris
|
|
livenessProbe:
|
|
tcpSocket:
|
|
port: 9050
|
|
initialDelaySeconds: 80
|
|
timeoutSeconds: 180
|
|
periodSeconds: 5
|
|
successThreshold: 1
|
|
failureThreshold: 3
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /api/health
|
|
port: 8040
|
|
scheme: HTTP
|
|
timeoutSeconds: 1
|
|
periodSeconds: 5
|
|
successThreshold: 1
|
|
failureThreshold: 3
|
|
startupProbe:
|
|
tcpSocket:
|
|
port: 9050
|
|
timeoutSeconds: 1
|
|
periodSeconds: 5
|
|
successThreshold: 1
|
|
failureThreshold: 60
|
|
lifecycle:
|
|
preStop:
|
|
exec:
|
|
command:
|
|
- /opt/apache-doris/be_prestop.sh
|
|
terminationMessagePath: /dev/termination-log
|
|
terminationMessagePolicy: File
|
|
imagePullPolicy: IfNotPresent
|
|
restartPolicy: Always
|
|
terminationGracePeriodSeconds: 30
|
|
dnsPolicy: ClusterFirst
|
|
securityContext: {}
|
|
affinity:
|
|
nodeAffinity:
|
|
requiredDuringSchedulingIgnoredDuringExecution:
|
|
nodeSelectorTerms:
|
|
- matchExpressions:
|
|
- key: doris.cluster
|
|
operator: In
|
|
values:
|
|
- "true"
|
|
podAntiAffinity:
|
|
preferredDuringSchedulingIgnoredDuringExecution:
|
|
- weight: 100
|
|
podAffinityTerm:
|
|
labelSelector:
|
|
matchExpressions:
|
|
- key: app.kubernetes.io/component
|
|
operator: In
|
|
values:
|
|
- doris-cluster-be
|
|
topologyKey: kubernetes.io/hostname
|
|
schedulerName: default-scheduler
|
|
# volumeClaimTemplates:
|
|
# - kind: PersistentVolumeClaim
|
|
# apiVersion: v1
|
|
# metadata:
|
|
# name: be-storage
|
|
# spec:
|
|
# accessModes:
|
|
# - ReadWriteOnce
|
|
# resources:
|
|
# requests:
|
|
# storage: '10'
|
|
# storageClassName: nfs-prod-distribute
|
|
# volumeMode: Filesystem
|
|
# - kind: PersistentVolumeClaim
|
|
# apiVersion: v1
|
|
# metadata:
|
|
# name: be-log
|
|
# spec:
|
|
# accessModes:
|
|
# - ReadWriteOnce
|
|
# resources:
|
|
# requests:
|
|
# storage: '10'
|
|
# storageClassName: nfs-prod-distribute
|
|
# volumeMode: Filesystem
|
|
serviceName: doris-cluster-be-internal
|
|
podManagementPolicy: Parallel
|
|
---
|
|
kind: ConfigMap
|
|
apiVersion: v1
|
|
metadata:
|
|
name: doris-cluster-be-conf
|
|
namespace: bj-sh-uas-260511
|
|
labels:
|
|
app.kubernetes.io/component: be
|
|
data:
|
|
be.conf: >
|
|
CUR_DATE=`date +%Y%m%d-%H%M%S`
|
|
|
|
# Log dir
|
|
LOG_DIR="${DORIS_HOME}/log/"
|
|
|
|
# For jdk 8
|
|
JAVA_OPTS="-Dfile.encoding=UTF-8 -Xmx2048m -DlogPath=$LOG_DIR/jni.log -Xloggc:$LOG_DIR/be.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives"
|
|
|
|
# Set your own JAVA_HOME
|
|
# JAVA_HOME=/path/to/jdk/
|
|
|
|
# https://github.com/apache/doris/blob/master/docs/zh-CN/community/developer-guide/debug-tool.md#jemalloc-heap-profile
|
|
# https://jemalloc.net/jemalloc.3.html jemalloc 内存分配器设置参数
|
|
JEMALLOC_CONF="percpu_arena:percpu,background_thread:true,metadata_thp:auto,muzzy_decay_ms:15000,dirty_decay_ms:15000,oversize_threshold:0,prof:false,lg_prof_interval:32,lg_prof_sample:19,prof_gdump:false,prof_accum:false,prof_leak:false,prof_final:false"
|
|
JEMALLOC_PROF_PRFIX=""
|
|
|
|
# ports for admin, web, heartbeat service
|
|
be_port = 9060
|
|
webserver_port = 8040
|
|
heartbeat_service_port = 9050
|
|
brpc_port = 8060
|
|
arrow_flight_sql_port = -1
|
|
|
|
# HTTPS configures
|
|
enable_https = false
|
|
# path of certificate in PEM format.
|
|
#ssl_certificate_path = "$DORIS_HOME/conf/cert.pem"
|
|
# path of private key in PEM format.
|
|
#ssl_private_key_path = "$DORIS_HOME/conf/key.pem"
|
|
|
|
# Choose one if there are more than one ip except loopback address.
|
|
# Note that there should at most one ip match this list.
|
|
# If no ip match this rule, will choose one randomly.
|
|
# use CIDR format, e.g. 10.10.10.0/24 or IP format, e.g. 10.10.10.1
|
|
# Default value is empty.
|
|
# priority_networks = 10.10.10.0/24;192.168.0.0/16
|
|
|
|
# data root path, separate by ';'
|
|
# You can specify the storage type for each root path, HDD (cold data) or SSD (hot data)
|
|
# eg:
|
|
# storage_root_path = /home/disk1/doris;/home/disk2/doris;/home/disk2/doris
|
|
# storage_root_path = /home/disk1/doris,medium:SSD;/home/disk2/doris,medium:SSD;/home/disk2/doris,medium:HDD
|
|
# /home/disk2/doris,medium:HDD(default)
|
|
#
|
|
# you also can specify the properties by setting '<property>:<value>', separate by ','
|
|
# property 'medium' has a higher priority than the extension of path
|
|
#
|
|
# Default value is ${DORIS_HOME}/storage, you should create it by hand.
|
|
# storage_root_path = ${DORIS_HOME}/storage
|
|
|
|
# Default dirs to put jdbc drivers,default value is ${DORIS_HOME}/jdbc_drivers
|
|
# jdbc_drivers_dir = ${DORIS_HOME}/jdbc_drivers
|
|
|
|
# Advanced configurations
|
|
# INFO, WARNING, ERROR, FATAL
|
|
sys_log_level = INFO
|
|
# sys_log_roll_mode = SIZE-MB-1024
|
|
# sys_log_roll_num = 10
|
|
# sys_log_verbose_modules = *
|
|
# log_buffer_level = -1
|
|
|
|
# aws sdk log level
|
|
# Off = 0,
|
|
# Fatal = 1,
|
|
# Error = 2,
|
|
# Warn = 3,
|
|
# Info = 4,
|
|
# Debug = 5,
|
|
# Trace = 6
|
|
# Default to turn off aws sdk log, because aws sdk errors that need to be cared will be output through Doris logs
|
|
#aws_log_level=0
|
|
## If you are not running in aws cloud, you can disable EC2 metadata
|
|
#AWS_EC2_METADATA_DISABLED=false |