You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
432 lines
13 KiB
YAML
432 lines
13 KiB
YAML
{{- $pdSize := .Values.pd.size | int }}
|
|
{{- $tikvSize := .Values.tikv.size | int }}
|
|
{{- $pdPort := .Values.pd.port | int }}
|
|
{{- $pdPeerPort := add $pdPort 10000 }}
|
|
{{- $tikvPort := .Values.tikv.port | int -}}
|
|
{{- $pumpSize := .Values.pump.size | int }}
|
|
{{- $pumpPort := .Values.pump.port | int }}
|
|
{{- $zooSize := .Values.zookeeper.size | int }}
|
|
{{- $zooPort := .Values.zookeeper.port | int }}
|
|
{{- $kafkaSize := .Values.kafka.size | int }}
|
|
{{- $kafkaPort := .Values.kafka.port | int }}
|
|
version: '2.1'
|
|
|
|
services:
|
|
{{- range until $pdSize }}
|
|
pd{{ . }}:
|
|
{{- if $.Values.pd.image }}
|
|
image: {{ $.Values.pd.image }}
|
|
{{- else }}
|
|
image: pd:latest
|
|
build:
|
|
context: {{ $.Values.pd.buildPath | default "./pd" }}
|
|
dockerfile: {{ $.Values.pd.dockerfile | default "Dockerfile" }}
|
|
{{- end }}
|
|
{{- if eq $.Values.networkMode "host" }}
|
|
network_mode: host
|
|
{{- else }}
|
|
ports:
|
|
- "2379"
|
|
{{- end }}
|
|
volumes:
|
|
- ./config/pd.toml:/pd.toml:ro
|
|
- {{ $.Values.dataDir }}:/data
|
|
- {{ $.Values.logsDir }}:/logs
|
|
command:
|
|
- --name=pd{{ . }}
|
|
{{- if eq $.Values.networkMode "host" }}
|
|
- --client-urls=http://0.0.0.0:{{ add $pdPort . }}
|
|
- --peer-urls=http://0.0.0.0:{{ add $pdPeerPort . }}
|
|
- --advertise-client-urls=http://127.0.0.1:{{ add $pdPort . }}
|
|
- --advertise-peer-urls=http://127.0.0.1:{{ add $pdPeerPort . }}
|
|
{{- else }}
|
|
- --client-urls=http://0.0.0.0:2379
|
|
- --peer-urls=http://0.0.0.0:2380
|
|
- --advertise-client-urls=http://pd{{ . }}:2379
|
|
- --advertise-peer-urls=http://pd{{ . }}:2380
|
|
{{- end }}
|
|
- --initial-cluster={{- template "initial_cluster" $ }}
|
|
- --data-dir=/data/pd{{ . }}
|
|
- --config=/pd.toml
|
|
- --log-file=/logs/pd{{ . }}.log
|
|
# sysctls:
|
|
# net.core.somaxconn: 32768
|
|
# ulimits:
|
|
# nofile:
|
|
# soft: 1000000
|
|
# hard: 1000000
|
|
restart: on-failure
|
|
{{ end }}
|
|
|
|
{{- range until $tikvSize }}
|
|
tikv{{ . }}:
|
|
{{- if $.Values.tikv.image }}
|
|
image: {{ $.Values.tikv.image }}
|
|
{{- else }}
|
|
image: tikv:latest
|
|
build:
|
|
context: {{ $.Values.tikv.buildPath | default "./tikv" }}
|
|
dockerfile: {{ $.Values.tikv.dockerfile | default "Dockerfile" }}
|
|
{{- end }}
|
|
{{- if eq $.Values.networkMode "host" }}
|
|
network_mode: host
|
|
{{- end }}
|
|
volumes:
|
|
- ./config/tikv.toml:/tikv.toml:ro
|
|
- {{ $.Values.dataDir }}:/data
|
|
- {{ $.Values.logsDir }}:/logs
|
|
command:
|
|
{{- if eq $.Values.networkMode "host" }}
|
|
- --addr=0.0.0.0:{{ add $tikvPort . }}
|
|
- --advertise-addr=127.0.0.1:{{ add $tikvPort . }}
|
|
{{- else }}
|
|
- --addr=0.0.0.0:20160
|
|
- --advertise-addr=tikv{{ . }}:20160
|
|
{{- end }}
|
|
- --data-dir=/data/tikv{{ . }}
|
|
- --pd={{- template "pd_list" $ }}
|
|
- --config=/tikv.toml
|
|
- --log-file=/logs/tikv{{ . }}.log
|
|
depends_on:
|
|
{{- range until $pdSize }}
|
|
- "pd{{.}}"
|
|
{{- end }}
|
|
# sysctls:
|
|
# net.core.somaxconn: 32768
|
|
# ulimits:
|
|
# nofile:
|
|
# soft: 1000000
|
|
# hard: 1000000
|
|
restart: on-failure
|
|
{{ end }}
|
|
|
|
{{- if .Values.tidb }}
|
|
{{- if .Values.tidb.enableBinlog }}
|
|
{{- range until $pumpSize }}
|
|
pump{{ . }}:
|
|
{{- if $.Values.pump.image }}
|
|
image: {{ $.Values.pump.image }}
|
|
{{- else }}
|
|
image: tidb-binlog:latest
|
|
build:
|
|
context: {{ $.Values.pump.buildPath | default "./tidb-binlog" }}
|
|
dockerfile: {{ $.Values.pump.dockerfile | default "Dockerfile" }}
|
|
{{- end }}
|
|
{{- if eq $.Values.networkMode "host" }}
|
|
network_mode: host
|
|
{{- end }}
|
|
volumes:
|
|
- ./config/pump.toml:/pump.toml:ro
|
|
- {{ $.Values.dataDir }}:/data
|
|
- {{ $.Values.logsDir }}:/logs
|
|
command:
|
|
- /pump
|
|
{{- if eq $.Values.networkMode "host" }}
|
|
- --addr=0.0.0.0:{{ add $pumpPort . }}
|
|
- --advertise-addr=127.0.0.1:{{ add $pumpPort . }}
|
|
{{- else }}
|
|
- --addr=0.0.0.0:8250
|
|
- --advertise-addr=pump{{ . }}:8250
|
|
{{- end }}
|
|
- --data-dir=/data/pump{{ . }}
|
|
- --log-file=/logs/pump{{ . }}.log
|
|
- --node-id=pump{{ . }}
|
|
- --pd-urls={{- template "pd_urls" $ }}
|
|
- --config=/pump.toml
|
|
depends_on:
|
|
{{- range until $pdSize }}
|
|
- "pd{{.}}"
|
|
{{- end }}
|
|
restart: on-failure
|
|
{{ end }}
|
|
drainer:
|
|
{{- if $.Values.drainer.image }}
|
|
image: {{ $.Values.drainer.image }}
|
|
{{- else }}
|
|
image: tidb-binlog:latest
|
|
build:
|
|
context: {{ $.Values.drainer.buildPath | default "./tidb-binlog" }}
|
|
dockerfile: {{ $.Values.drainer.dockerfile | default "Dockerfile" }}
|
|
{{- end }}
|
|
{{- if eq $.Values.networkMode "host" }}
|
|
network_mode: host
|
|
{{- end }}
|
|
volumes:
|
|
- ./config/drainer.toml:/drainer.toml:ro
|
|
- {{ $.Values.dataDir }}:/data
|
|
- {{ $.Values.logsDir }}:/logs
|
|
command:
|
|
- /drainer
|
|
- --addr=0.0.0.0:8249
|
|
- --data-dir=/data/data.drainer
|
|
- --log-file=/logs/drainer.log
|
|
- --pd-urls={{- template "pd_urls" $ }}
|
|
- --config=/drainer.toml
|
|
- --initial-commit-ts=0
|
|
{{- if eq $.Values.drainer.destDBType "kafka" }}
|
|
- --dest-db-type=kafka
|
|
{{- end }}
|
|
depends_on:
|
|
{{- range until $pdSize }}
|
|
- "pd{{ . }}"
|
|
{{- end }}
|
|
{{- if eq $.Values.drainer.destDBType "kafka" }}
|
|
{{- range until $kafkaSize }}
|
|
- "kafka{{ . }}"
|
|
{{- end }}
|
|
{{- end }}
|
|
restart: on-failure
|
|
|
|
{{- if eq $.Values.drainer.destDBType "kafka" }}
|
|
{{ range until $zooSize }}
|
|
zoo{{ . }}:
|
|
image: zookeeper:latest
|
|
{{- if eq $.Values.networkMode "host" }}
|
|
network_mode: host
|
|
{{- else }}
|
|
ports:
|
|
- "{{ add $zooPort . }}:{{ add $zooPort . }}"
|
|
{{- end }}
|
|
environment:
|
|
ZOO_MY_ID: {{ add . 1 }}
|
|
ZOO_PORT: {{ add $zooPort . }}
|
|
ZOO_SERVERS: {{ template "zoo_servers" $ }}
|
|
volumes:
|
|
- {{ $.Values.dataDir }}/zoo{{ . }}/data:/data
|
|
- {{ $.Values.dataDir }}/zoo{{ . }}/datalog:/datalog
|
|
restart: on-failure
|
|
{{ end }}
|
|
|
|
{{- range until $kafkaSize }}
|
|
kafka{{ . }}:
|
|
image: {{ $.Values.kafka.image }}
|
|
{{- if eq $.Values.networkMode "host" }}
|
|
network_mode: host
|
|
{{- else }}
|
|
ports:
|
|
- "{{ add . $kafkaPort }}:{{ add . $kafkaPort }}"
|
|
{{- end }}
|
|
environment:
|
|
KAFKA_BROKER_ID: {{ add . 1 }}
|
|
KAFKA_LOG_DIRS: /data/kafka-logs
|
|
{{- if $.Values.kafka.advertisedHostName }}
|
|
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://{{ $.Values.kafka.advertisedHostName }}:{{ add . $kafkaPort }}
|
|
{{- else }}
|
|
{{- if eq $.Values.networkMode "host" }}
|
|
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:{{ add . $kafkaPort }}
|
|
{{- else }}
|
|
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka{{ . }}:{{ add . $kafkaPort }}
|
|
{{- end }}
|
|
{{- end }}
|
|
KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:{{ add . $kafkaPort }}
|
|
KAFKA_ZOOKEEPER_CONNECT: {{ template "zoo_connect" $ }}
|
|
volumes:
|
|
- {{ $.Values.dataDir }}/kafka-logs/kafka{{ . }}:/data/kafka-logs
|
|
- {{ $.Values.logsDir }}/kafka{{ . }}:/opt/kafka/logs
|
|
- /var/run/docker.sock:/var/run/docker.sock
|
|
depends_on:
|
|
{{- range until $zooSize }}
|
|
- "zoo{{ . }}"
|
|
{{- end }}
|
|
restart: on-failure
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{ end }}
|
|
|
|
{{- if .Values.tidb }}
|
|
tidb:
|
|
{{- if .Values.tidb.image }}
|
|
image: {{ .Values.tidb.image }}
|
|
{{- else }}
|
|
image: tidb:latest
|
|
build:
|
|
context: {{ .Values.tidb.buildPath | default "./tidb" }}
|
|
dockerfile: {{ .Values.tidb.dockerfile | default "Dockerfile" }}
|
|
{{- end }}
|
|
{{- if eq .Values.networkMode "host" }}
|
|
network_mode: host
|
|
{{- else }}
|
|
ports:
|
|
- "{{ .Values.tidb.mysqlPort }}:4000"
|
|
- "{{ .Values.tidb.statusPort }}:10080"
|
|
{{- end }}
|
|
volumes:
|
|
- ./config/tidb.toml:/tidb.toml:ro
|
|
- {{ .Values.logsDir }}:/logs
|
|
command:
|
|
- --store=tikv
|
|
- --path={{- template "pd_list" $ }}
|
|
- --config=/tidb.toml
|
|
- --log-file=/logs/tidb.log
|
|
- --advertise-address=tidb
|
|
{{- if .Values.tidb.enableBinlog }}
|
|
- --enable-binlog=true
|
|
{{- end }}
|
|
depends_on:
|
|
{{- range until $tikvSize }}
|
|
- "tikv{{.}}"
|
|
{{- end }}
|
|
{{- if .Values.tidb.enableBinlog }}
|
|
{{- range until $pumpSize }}
|
|
- "pump{{.}}"
|
|
{{- end }}
|
|
{{- end }}
|
|
# sysctls:
|
|
# net.core.somaxconn: 32768
|
|
# ulimits:
|
|
# nofile:
|
|
# soft: 1000000
|
|
# hard: 1000000
|
|
restart: on-failure
|
|
{{ end }}
|
|
|
|
{{- if .Values.tispark }}
|
|
tispark-master:
|
|
{{- if .Values.tispark.image }}
|
|
image: {{ .Values.tispark.image }}
|
|
{{- else }}
|
|
image: tispark:latest
|
|
build:
|
|
context: {{ .Values.tispark.buildPath | default "./tispark" }}
|
|
dockerfile: {{ .Values.tispark.dockerfile | default "Dockerfile" }}
|
|
{{- end }}
|
|
command:
|
|
- /opt/spark/sbin/start-master.sh
|
|
volumes:
|
|
- ./config/spark-defaults.conf:/opt/spark/conf/spark-defaults.conf:ro
|
|
environment:
|
|
SPARK_MASTER_PORT: {{ .Values.tispark.masterPort }}
|
|
SPARK_MASTER_WEBUI_PORT: {{ .Values.tispark.webuiPort }}
|
|
ports:
|
|
- "{{ .Values.tispark.masterPort }}:7077"
|
|
- "{{ .Values.tispark.webuiPort }}:8080"
|
|
depends_on:
|
|
{{- range until $tikvSize }}
|
|
- "tikv{{.}}"
|
|
{{- end }}
|
|
restart: on-failure
|
|
{{- range until ( .Values.tispark.workerCount | int ) }}
|
|
tispark-slave{{ . }}:
|
|
{{- if $.Values.tispark.image }}
|
|
image: {{ $.Values.tispark.image }}
|
|
{{- else }}
|
|
image: tispark:latest
|
|
build:
|
|
context: {{ $.Values.tispark.buildPath | default "./tispark" }}
|
|
dockerfile: {{ $.Values.tispark.dockerfile | default "Dockerfile" }}
|
|
{{- end }}
|
|
command:
|
|
- /opt/spark/sbin/start-slave.sh
|
|
- spark://tispark-master:7077
|
|
volumes:
|
|
- ./config/spark-defaults.conf:/opt/spark/conf/spark-defaults.conf:ro
|
|
environment:
|
|
SPARK_WORKER_WEBUI_PORT: {{ add $.Values.tispark.workerWebUIPort . }}
|
|
ports:
|
|
- "{{ add $.Values.tispark.workerWebUIPort . }}:{{ add $.Values.tispark.workerWebUIPort . }}"
|
|
depends_on:
|
|
- tispark-master
|
|
restart: on-failure
|
|
{{- end }}
|
|
{{ end }}
|
|
|
|
{{- if .Values.tidbVision }}
|
|
tidb-vision:
|
|
{{- if .Values.tidbVision.image }}
|
|
image: {{ .Values.tidbVision.image }}
|
|
{{- else }}
|
|
image: tidb-vision:latest
|
|
build:
|
|
context: {{ .Values.tidbVision.buildPath | default "./tidb-vision" }}
|
|
dockerfile: {{ .Values.tidbVision.dockerfile | default "Dockerfile" }}
|
|
{{- end }}
|
|
environment:
|
|
PD_ENDPOINT: {{if eq .Values.networkMode "host"}}127.0.0.1:{{.Values.pd.port}}{{else}}pd0:2379{{end}}
|
|
{{- if eq .Values.networkMode "host" }}
|
|
PORT: {{ .Values.tidbVision.port }}
|
|
network_mode: host
|
|
{{- else }}
|
|
ports:
|
|
- "{{ .Values.tidbVision.port }}:8010"
|
|
{{- end }}
|
|
restart: on-failure
|
|
{{- end }}
|
|
|
|
{{- if .Values.prometheus }}
|
|
pushgateway:
|
|
image: {{ .Values.pushgateway.image }}
|
|
{{- if eq .Values.networkMode "host" }}
|
|
command:
|
|
- --web.listen-address=0.0.0.0:{{.Values.pushgateway.port}}
|
|
- --log.level={{ .Values.pushgateway.logLevel }}
|
|
network_mode: host
|
|
{{- else }}
|
|
command:
|
|
- --log.level={{ .Values.pushgateway.logLevel }}
|
|
{{- end }}
|
|
restart: on-failure
|
|
|
|
prometheus:
|
|
user: root
|
|
image: {{ .Values.prometheus.image }}
|
|
command:
|
|
- --log.level={{ .Values.prometheus.logLevel }}
|
|
- --storage.tsdb.path=/data/prometheus
|
|
- --config.file=/etc/prometheus/prometheus.yml
|
|
{{- if eq .Values.networkMode "host" }}
|
|
- --web.listen-address=0.0.0.0:{{.Values.prometheus.port}}
|
|
network_mode: host
|
|
{{- else }}
|
|
ports:
|
|
- "{{ .Values.prometheus.port }}:9090"
|
|
{{- end }}
|
|
volumes:
|
|
- ./config/prometheus.yml:/etc/prometheus/prometheus.yml:ro
|
|
- ./config/pd.rules.yml:/etc/prometheus/pd.rules.yml:ro
|
|
- ./config/tikv.rules.yml:/etc/prometheus/tikv.rules.yml:ro
|
|
- ./config/tidb.rules.yml:/etc/prometheus/tidb.rules.yml:ro
|
|
- {{ .Values.dataDir }}:/data
|
|
restart: on-failure
|
|
{{- end }}
|
|
|
|
{{- if .Values.grafana }}
|
|
grafana:
|
|
image: {{ .Values.grafana.image }}
|
|
user: "0"
|
|
{{- if eq .Values.networkMode "host" }}
|
|
network_mode: host
|
|
environment:
|
|
GF_SERVER_HTTP_PORT: {{ .Values.grafana.port }}
|
|
GF_LOG_LEVEL: {{ .Values.grafana.logLevel }}
|
|
{{- else }}
|
|
environment:
|
|
GF_LOG_LEVEL: {{ .Values.grafana.logLevel }}
|
|
GF_PATHS_PROVISIONING: /etc/grafana/provisioning
|
|
GF_PATHS_CONFIG: /etc/grafana/grafana.ini
|
|
ports:
|
|
- "{{ .Values.grafana.port }}:3000"
|
|
{{- end }}
|
|
volumes:
|
|
- ./config/grafana:/etc/grafana
|
|
- ./config/dashboards:/tmp/dashboards
|
|
- ./data/grafana:/var/lib/grafana
|
|
restart: on-failure
|
|
dashboard-installer:
|
|
{{- if .Values.dashboardInstaller.image }}
|
|
image: {{ .Values.dashboardInstaller.image }}
|
|
{{- else }}
|
|
image: tidb-dashboard-installer:latest
|
|
build:
|
|
context: {{ .Values.dashboardInstaller.buildPath | default "./dashboard-installer" }}
|
|
dockerfile: {{ .Values.dashboardInstaller.dockerfile | default "Dockerfile" }}
|
|
{{- end }}
|
|
{{- if eq .Values.networkMode "host" }}
|
|
network_mode: host
|
|
command: ["127.0.0.1:{{.Values.grafana.port}}"]
|
|
{{- else }}
|
|
command: ["grafana:3000"]
|
|
{{- end }}
|
|
restart: on-failure
|
|
{{- end -}}
|