The official Docker images are used by default in the Kubernetes and OpenShift distributions.
1. Download Kuma
Kuma provides the following Docker images for all of its executables:
kuma-cp: at docker.io/kumahq/kuma-cp:{"edition"=>"kuma", "version"=>"2.9.1", "release"=>"2.9.x", "latest"=>true, "releaseDate"=>"2024-10-22", "endOfLifeDate"=>"2025-10-22", "branch"=>"release-2.9"}
kuma-dp: at docker.io/kumahq/kuma-dp:{"edition"=>"kuma", "version"=>"2.9.1", "release"=>"2.9.x", "latest"=>true, "releaseDate"=>"2024-10-22", "endOfLifeDate"=>"2025-10-22", "branch"=>"release-2.9"}
kumactl: at docker.io/kumahq/kumactl:{"edition"=>"kuma", "version"=>"2.9.1", "release"=>"2.9.x", "latest"=>true, "releaseDate"=>"2024-10-22", "endOfLifeDate"=>"2025-10-22", "branch"=>"release-2.9"}
kuma-prometheus-sd: at docker.io/kumahq/kuma-prometheus-sd:{"edition"=>"kuma", "version"=>"2.9.1", "release"=>"2.9.x", "latest"=>true, "releaseDate"=>"2024-10-22", "endOfLifeDate"=>"2025-10-22", "branch"=>"release-2.9"}
You can freely docker pull these images to start using Kuma, as we will demonstrate in the following steps.
2. Run Kuma
We can run Kuma:
docker run -p 5681:5681 docker.io/kumahq/kuma-cp:{"edition"=>"kuma", "version"=>"2.9.1", "release"=>"2.9.x", "latest"=>true, "releaseDate"=>"2024-10-22", "endOfLifeDate"=>"2025-10-22", "branch"=>"release-2.9"} run
This example will run Kuma in standalone mode for a “flat” deployment, but there are more advanced deployment modes like “multi-zone”.
Note: By default this will run Kuma with a memorybackend, but you can use a persistent storage like PostgreSQL by updating the conf/kuma-cp.conf file.
2.1 Authentication (optional)
Running administrative tasks (like generating a dataplane token) requires authentication by token or a connection via localhost.
2.1.1 Localhost
For kuma-cp to recognize requests issued to docker published port it needs to run the container in the host network.
To do this, add --network="host" parameter to the docker run command from point 2.
2.1.2 Authenticating via token
You can also configure kumactl to access kuma-dp from the container.
Get the kuma-cp container id:
Note: we are running kumactl from the Docker container on the same network as the host, but most likely you want to download a compatible version of Kuma for the machine where you will be executing the commands.
You can run the following script to automatically detect the operating system and download Kuma:
<a href=”https://packages.konghq.com/public/kuma-legacy/raw/names/kuma-darwin-amd64/versions/{“edition”=>”kuma”, “version”=>”2.9.1”, “release”=>”2.9.x”, “latest”=>true, “releaseDate”=>”2024-10-22”, “endOfLifeDate”=>”2025-10-22”, “branch”=>”release-2.9”}/kuma-{“edition”=>”kuma”, “version”=>”2.9.1”, “release”=>”2.9.x”, “latest”=>true, “releaseDate”=>”2024-10-22”, “endOfLifeDate”=>”2025-10-22”, “branch”=>”release-2.9”}-darwin-amd64.tar.gz”>macOS</a> or run brew install kumactl
and extract the archive with:
tar xvzf kuma-*.tar.gz
You will then find the kumactl executable in the kuma-{"edition"=>"kuma", "version"=>"2.9.1", "release"=>"2.9.x", "latest"=>true, "releaseDate"=>"2024-10-22", "endOfLifeDate"=>"2025-10-22", "branch"=>"release-2.9"}/bin folder.
You will notice that Kuma automatically creates a Mesh entity with name default.
4. Quickstart
Congratulations! You have successfully installed Kuma on Docker 🚀.