Documentation. Docker and Kubernetes deployment

Hi. I am new to CockroachDB. I was reading the docs about deployment options for production and got a bit confused:
In this section, you say that using Docker for CockroachDB is more complex and can be error-prone and you recommend other deployment methods:

But on another page you say that orchestration (i.e. Kubernetes, that implies usage of Docker) can lower the operation overhead to almost nothing:

So that is the general recommendation for production deployment for multi regional cluster. Docker and Kubernetes or bare GCE instances?

Another question about local development and testing:
Is it okay to run a single node cluster locally? Will it support all features of the real multi-node CockroachDB cluster. I am asking because, e.g. MongoDB doesn’t support transactions in a single node server and you need to run a replica set (3 nodes minimum) locally to work with transactions.

Hi @georgysavva,

Question 1: For production deployment, what is the general recommendation for a multi regional cluster?

On the referenced page, the full warning is:

Running a stateful application like CockroachDB in Docker is more complex and error-prone than most uses of Docker. Unless you are very experienced with Docker, we recommend starting with a different installation and deployment method.

To clarify, if you are just getting started with CockroachDB, it may be advisable to try a non-Docker install first.

For production deployment, between Docker/Kubernetes or bare GCE instances - we recommend using what your resources have experience with. Please refer to the documentation on whichever method you use.

Question 2: For local development and testing, does a single node cluster support all features of the multi-node CockroachDB cluster?

A single-node cluster is all you need for quick SQL testing or app development. Running a multi-node cluster gives you replicated data for availability and consistency. The Get Started documentation gives steps to run a 3 node cluster locally.

CockroachDB distributes a single binary that contains both core and enterprise features. You can use core features without any license key. However, to use the enterprise features, you need either a trial or an enterprise license key. With a license, you can use the enterprise features on your local instance.

In addition to the Self-Hosted option, there is also the Cockroach Cloud hosted option. Compare their features here.

Hope this info helps!

Technical Support Engineer

Thanks for the information, everything is clear.
Quick follow up on the first question: what deployment type do you use on the cockroach cloud service, docker + kubernetes or without containerization?

Hi @georgysavva,

The CockroachCloud Service (formerly called Managed CockroachDB) is run on Kubernetes and Docker. Read more about how this choice was made in this blog post.


Thanks for the article. It’s definitely that I was looking for.