You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/content/Deployment/Overview.mdx
+1-78Lines changed: 1 addition & 78 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,15 +15,11 @@ production. You can find platform-specific guides for:
15
15
-[Cube Cloud][ref-deploy-cubecloud]
16
16
-[Docker][ref-deploy-docker]
17
17
18
-
For information on how to deploy Cube using Kubernetes, please check out the examples for
19
-
[Kubernetes][gh-cube-examples-k8s]. You can also check out [Helm Charts](https://artifacthub.io/packages/search?repo=gadsme) from our community members. Please note these examples are community-contributed, and not
20
-
officially supported by Cube.
21
-
22
18
If you are moving Cube to production, check out the [Production
23
19
Checklist][ref-deploy-prod-list].
24
20
25
21
As shown in the diagram below, a typical production Cube cluster consists of one
26
-
or multiple API instances, a Refresh Worker, Redis and a Cube Store cluster.
22
+
or multiple API instances, a Refresh Worker and a Cube Store cluster.
27
23
28
24
<divstyle="text-align: center">
29
25
<img
@@ -40,10 +36,6 @@ Worker** builds and refreshes pre-aggregations in the background. **Cube Store**
40
36
ingests pre-aggregations built by Refresh Worker and responds to queries from
41
37
API instances.
42
38
43
-
**Redis** is used to manage the queue and query-level cache. Please note, we are
44
-
planning to [replace Redis with Cube Store][replace-redis] for in-memory cache
45
-
and queue management in late 2022.
46
-
47
39
API instances and Refresh Worker can be configured via [environment
48
40
variables][ref-config-env] or [cube.js configuration file][ref-config-js]. They
49
41
also need access to the data schema files.
@@ -68,16 +60,13 @@ services:
68
60
69
61
- CUBEJS_CUBESTORE_HOST=cubestore_router
70
62
71
-
- CUBEJS_REDIS_URL=redis://redis:6379
72
-
73
63
- CUBEJS_API_SECRET=secret
74
64
volumes:
75
65
- .:/cube/conf
76
66
depends_on:
77
67
- cubestore_worker_1
78
68
- cubestore_worker_2
79
69
- cube_refresh_worker
80
-
- redis
81
70
82
71
cube_refresh_worker:
83
72
image: cubejs/cube
@@ -89,8 +78,6 @@ services:
89
78
90
79
- CUBEJS_CUBESTORE_HOST=cubestore_router
91
80
92
-
- CUBEJS_REDIS_URL=redis://redis:6379
93
-
94
81
- CUBEJS_API_SECRET=secret
95
82
96
83
- CUBEJS_REFRESH_WORKER=true
@@ -132,13 +119,6 @@ services:
132
119
- .cubestore:/cube/data
133
120
depends_on:
134
121
- cubestore_router
135
-
136
-
redis:
137
-
image: bitnami/redis:latest
138
-
environment:
139
-
- ALLOW_EMPTY_PASSWORD=yes
140
-
logging:
141
-
driver: none
142
122
```
143
123
144
124
## API Instance
@@ -292,63 +272,6 @@ services:
292
272
- cubestore_router
293
273
```
294
274
295
-
## Redis
296
-
297
-
<WarningBox>
298
-
299
-
Cube Store [will replace Redis][replace-redis] for in-memory cache and queue
300
-
management in late 2022.
301
-
302
-
</WarningBox>
303
-
304
-
Cube uses Redis, an in-memory data structure store, for query caching and queue.
305
-
306
-
Set the `CUBEJS_REDIS_URL` environment variable to allow Cube API Instances and
307
-
Refresh Worker to connect to Redis. If your Redis instance also has a password,
308
-
please set it via the `CUBEJS_REDIS_PASSWORD` environment variable. Set the
309
-
`CUBEJS_REDIS_TLS`environment variable to true if you want to enable
310
-
SSL-secured connections. Ensure your Redis cluster allows at least 15 concurrent
311
-
connections.
312
-
313
-
### <--{"id" : "Redis"}--> Redis Sentinel
314
-
315
-
Cube supports Redis Sentinel via `CUBEJS_REDIS_USE_IOREDIS=true` environment
316
-
variable. Then set `CUBEJS_REDIS_URL` to the
317
-
`redis+sentinel://localhost:26379,otherhost:26479/mymaster/5`to allow Cube to
318
-
connect to the Redis Sentinel.
319
-
320
-
Cube server instances used by same tenant environments should have same Redis
321
-
instances. Otherwise they will have different query queues which can lead to
322
-
incorrect pre-aggregation states and intermittent data access errors.
323
-
324
-
### <--{"id" : "Redis"}--> Redis Pool
325
-
326
-
If `CUBEJS_REDIS_URL` is provided Cube, will create a Redis connection pool with
327
-
a minimum of 2 and maximum of 1000 concurrent connections, by default. The
328
-
`CUBEJS_REDIS_POOL_MIN`and `CUBEJS_REDIS_POOL_MAX` environment variables can be
329
-
used to tweak pool size limits. To disable connection pooling, and instead
330
-
create connections on-demand, you can set `CUBEJS_REDIS_POOL_MAX` to 0.
331
-
332
-
If your maximum concurrent connections limit is too low, you may see
333
-
`TimeoutError: ResourceRequest timed out` errors. As a rule of a thumb, you need
334
-
to have `Queue Size * Number of tenants` concurrent connections to ensure the
335
-
best performance possible. If you use clustered deployments, please make sure
336
-
you have enough connections for all Cube server instances. A lower number of
337
-
connections still can work, however Redis becomes a performance bottleneck in
338
-
this case.
339
-
340
-
### <--{"id" : "Redis"}--> Running without Redis
341
-
342
-
If you want to run Cube in production without Redis, you can use
343
-
`CUBEJS_CACHE_AND_QUEUE_DRIVER`environment variable to `memory`.
344
-
345
-
<WarningBox>
346
-
347
-
Clustered deployments can't be run without Redis as it is used to manage the
0 commit comments