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 ':', 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