Careful!

You are browsing documentation for a version of Kuma that is not the latest release.

Docker

To install and run Kuma on Docker execute the following steps:

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.0", "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.0", "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.0", "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.0", "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 memory store, 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:

docker ps # copy kuma-cp container id

export KUMA_CP_CONTAINER_ID='...'

Configure kumactl:

TOKEN=$(bash -c "docker exec -it $KUMA_CP_CONTAINER_ID wget -q -O - http://localhost:5681/global-secrets/admin-user-token" | jq -r .data | base64 -d)

kumactl config control-planes add \
 --name my-control-plane \
 --address http://localhost:5681 \
 --auth-type=tokens \
 --auth-conf token=$TOKEN \
 --skip-verify

3. Use Kuma

Kuma (kuma-cp) is now running! Now that Kuma has been installed you can access the control-plane via either the GUI, the HTTP API, or the CLI:

Kuma ships with a read-only GUI that you can use to retrieve Kuma resources. By default the GUI listens on the API port and defaults to :5681/gui.

To access Kuma you can navigate to 127.0.0.1:5681/gui to see the GUI.

You will notice that Kuma automatically creates a Mesh entity with name default.

4. Quickstart

Congratulations! You have successfully installed Kuma on Docker 🚀.

In order to start using Kuma, it’s time to check out the quickstart guide for Universal deployments. If you are using Docker you may also be interested in checking out the Kubernetes quickstart as well.

Last Updated: 11/7/2024, 12:55:21 PM