Browse Source
Refactored k8s configs (made 'basic' and 'high-availability' deployment modes)pull/2878/head
committed by
GitHub
24 changed files with 425 additions and 131 deletions
@ -0,0 +1,26 @@ |
|||
# |
|||
# Copyright © 2016-2020 The Thingsboard Authors |
|||
# |
|||
# Licensed 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: ConfigMap |
|||
metadata: |
|||
name: tb-node-cache-config |
|||
namespace: thingsboard |
|||
labels: |
|||
name: tb-node-cache-config |
|||
data: |
|||
CACHE_TYPE: redis |
|||
REDIS_HOST: tb-redis |
|||
@ -0,0 +1,181 @@ |
|||
# |
|||
# Copyright © 2016-2020 The Thingsboard Authors |
|||
# |
|||
# Licensed 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: apps/v1 |
|||
kind: Deployment |
|||
metadata: |
|||
name: zookeeper |
|||
namespace: thingsboard |
|||
spec: |
|||
selector: |
|||
matchLabels: |
|||
app: zookeeper |
|||
template: |
|||
metadata: |
|||
labels: |
|||
app: zookeeper |
|||
spec: |
|||
containers: |
|||
- name: server |
|||
imagePullPolicy: Always |
|||
image: zookeeper:3.5 |
|||
ports: |
|||
- containerPort: 2181 |
|||
readinessProbe: |
|||
periodSeconds: 5 |
|||
tcpSocket: |
|||
port: 2181 |
|||
livenessProbe: |
|||
initialDelaySeconds: 15 |
|||
periodSeconds: 5 |
|||
tcpSocket: |
|||
port: 2181 |
|||
env: |
|||
- name: ZOO_MY_ID |
|||
value: "1" |
|||
- name: ZOO_SERVERS |
|||
value: "server.1=0.0.0.0:2888:3888;0.0.0.0:2181" |
|||
restartPolicy: Always |
|||
--- |
|||
apiVersion: v1 |
|||
kind: Service |
|||
metadata: |
|||
name: zookeeper |
|||
namespace: thingsboard |
|||
spec: |
|||
type: ClusterIP |
|||
selector: |
|||
app: zookeeper |
|||
ports: |
|||
- name: zk-port |
|||
port: 2181 |
|||
--- |
|||
apiVersion: apps/v1 |
|||
kind: Deployment |
|||
metadata: |
|||
name: tb-kafka |
|||
namespace: thingsboard |
|||
spec: |
|||
selector: |
|||
matchLabels: |
|||
app: tb-kafka |
|||
template: |
|||
metadata: |
|||
labels: |
|||
app: tb-kafka |
|||
spec: |
|||
containers: |
|||
- name: server |
|||
imagePullPolicy: Always |
|||
image: wurstmeister/kafka:2.12-2.2.1 |
|||
ports: |
|||
- containerPort: 9092 |
|||
readinessProbe: |
|||
periodSeconds: 20 |
|||
tcpSocket: |
|||
port: 9092 |
|||
livenessProbe: |
|||
initialDelaySeconds: 25 |
|||
periodSeconds: 5 |
|||
tcpSocket: |
|||
port: 9092 |
|||
env: |
|||
- name: KAFKA_ZOOKEEPER_CONNECT |
|||
value: "zookeeper:2181" |
|||
- name: KAFKA_LISTENERS |
|||
value: "INSIDE://:9093,OUTSIDE://:9092" |
|||
- name: KAFKA_ADVERTISED_LISTENERS |
|||
value: "INSIDE://:9093,OUTSIDE://tb-kafka:9092" |
|||
- name: KAFKA_LISTENER_SECURITY_PROTOCOL_MAP |
|||
value: "INSIDE:PLAINTEXT,OUTSIDE:PLAINTEXT" |
|||
- name: KAFKA_INTER_BROKER_LISTENER_NAME |
|||
value: "INSIDE" |
|||
- name: KAFKA_CREATE_TOPICS |
|||
value: "js_eval.requests:100:1:delete --config=retention.ms=60000 --config=segment.bytes=26214400 --config=retention.bytes=104857600,tb_transport.api.requests:30:1:delete --config=retention.ms=60000 --config=segment.bytes=26214400 --config=retention.bytes=104857600,tb_rule_engine:30:1:delete --config=retention.ms=60000 --config=segment.bytes=26214400 --config=retention.bytes=104857600" |
|||
- name: KAFKA_AUTO_CREATE_TOPICS_ENABLE |
|||
value: "false" |
|||
- name: KAFKA_LOG_RETENTION_BYTES |
|||
value: "1073741824" |
|||
- name: KAFKA_LOG_SEGMENT_BYTES |
|||
value: "268435456" |
|||
- name: KAFKA_LOG_RETENTION_MS |
|||
value: "300000" |
|||
- name: KAFKA_LOG_CLEANUP_POLICY |
|||
value: "delete" |
|||
restartPolicy: Always |
|||
--- |
|||
apiVersion: v1 |
|||
kind: Service |
|||
metadata: |
|||
name: tb-kafka |
|||
namespace: thingsboard |
|||
spec: |
|||
type: ClusterIP |
|||
selector: |
|||
app: tb-kafka |
|||
ports: |
|||
- name: tb-kafka-port |
|||
port: 9092 |
|||
--- |
|||
apiVersion: apps/v1 |
|||
kind: Deployment |
|||
metadata: |
|||
name: tb-redis |
|||
namespace: thingsboard |
|||
spec: |
|||
selector: |
|||
matchLabels: |
|||
app: tb-redis |
|||
template: |
|||
metadata: |
|||
labels: |
|||
app: tb-redis |
|||
spec: |
|||
containers: |
|||
- name: server |
|||
imagePullPolicy: Always |
|||
image: redis:4.0 |
|||
ports: |
|||
- containerPort: 6379 |
|||
readinessProbe: |
|||
periodSeconds: 5 |
|||
tcpSocket: |
|||
port: 6379 |
|||
livenessProbe: |
|||
periodSeconds: 5 |
|||
tcpSocket: |
|||
port: 6379 |
|||
volumeMounts: |
|||
- mountPath: /data |
|||
name: redis-data |
|||
volumes: |
|||
- name: redis-data |
|||
emptyDir: {} |
|||
restartPolicy: Always |
|||
--- |
|||
apiVersion: v1 |
|||
kind: Service |
|||
metadata: |
|||
name: tb-redis |
|||
namespace: thingsboard |
|||
spec: |
|||
type: ClusterIP |
|||
selector: |
|||
app: tb-redis |
|||
ports: |
|||
- name: tb-redis-port |
|||
port: 6379 |
|||
--- |
|||
@ -0,0 +1,98 @@ |
|||
# |
|||
# Copyright © 2016-2020 The Thingsboard Authors |
|||
# |
|||
# Licensed 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: apps/v1 |
|||
kind: Deployment |
|||
metadata: |
|||
name: tb-node |
|||
namespace: thingsboard |
|||
spec: |
|||
replicas: 2 |
|||
selector: |
|||
matchLabels: |
|||
app: tb-node |
|||
template: |
|||
metadata: |
|||
labels: |
|||
app: tb-node |
|||
spec: |
|||
volumes: |
|||
- name: tb-node-config |
|||
configMap: |
|||
name: tb-node-config |
|||
items: |
|||
- key: conf |
|||
path: thingsboard.conf |
|||
- key: logback |
|||
path: logback.xml |
|||
containers: |
|||
- name: server |
|||
imagePullPolicy: Always |
|||
image: thingsboard/tb-node:latest |
|||
ports: |
|||
- containerPort: 8080 |
|||
name: http |
|||
- containerPort: 9001 |
|||
name: rpc |
|||
env: |
|||
- name: TB_SERVICE_ID |
|||
valueFrom: |
|||
fieldRef: |
|||
fieldPath: metadata.name |
|||
- name: TB_SERVICE_TYPE |
|||
value: "monolith" |
|||
- name: TB_QUEUE_TYPE |
|||
value: "kafka" |
|||
- name: ZOOKEEPER_ENABLED |
|||
value: "true" |
|||
- name: ZOOKEEPER_URL |
|||
value: "zookeeper:2181" |
|||
- name: TB_KAFKA_SERVERS |
|||
value: "tb-kafka:9092" |
|||
- name: JS_EVALUATOR |
|||
value: "remote" |
|||
- name: TRANSPORT_TYPE |
|||
value: "remote" |
|||
- name: HTTP_LOG_CONTROLLER_ERROR_STACK_TRACE |
|||
value: "false" |
|||
envFrom: |
|||
- configMapRef: |
|||
name: tb-node-db-config |
|||
- configMapRef: |
|||
name: tb-node-cache-config |
|||
volumeMounts: |
|||
- mountPath: /config |
|||
name: tb-node-config |
|||
livenessProbe: |
|||
httpGet: |
|||
path: /login |
|||
port: http |
|||
initialDelaySeconds: 300 |
|||
timeoutSeconds: 10 |
|||
restartPolicy: Always |
|||
--- |
|||
apiVersion: v1 |
|||
kind: Service |
|||
metadata: |
|||
name: tb-node |
|||
namespace: thingsboard |
|||
spec: |
|||
type: ClusterIP |
|||
selector: |
|||
app: tb-node |
|||
ports: |
|||
- port: 8080 |
|||
name: http |
|||
@ -0,0 +1,27 @@ |
|||
# |
|||
# Copyright © 2016-2020 The Thingsboard Authors |
|||
# |
|||
# Licensed 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: ConfigMap |
|||
metadata: |
|||
name: tb-node-cache-config |
|||
namespace: thingsboard |
|||
labels: |
|||
name: tb-node-cache-config |
|||
data: |
|||
CACHE_TYPE: redis |
|||
REDIS_CONNECTION_TYPE: cluster |
|||
REDIS_NODES: tb-redis:6379 |
|||
Loading…
Reference in new issue