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:1.2.1
  • kuma-dp: at docker.io/kumahq/kuma-dp:1.2.1
  • kumactl: at docker.io/kumahq/kumactl:1.2.1
  • kuma-prometheus-sd: at docker.io/kumahq/kuma-prometheus-sd:1.2.1

You can freely docker pull these images to start using Kuma, as we will demonstrate in the following steps.

2. Run Kuma

Finally we can run Kuma in either standalone or multi-zone mode:

Standalone mode is perfect when running Kuma in a single cluster across one environment:

  1. docker run \
  2. -p 5681:5681 \
  3. docker.io/kumahq/kuma-cp:1.2.1 run

To learn more, read about the deployment modes available.

Multi-zone mode is perfect when running one deployment of Kuma that spans across multiple Kubernetes clusters, clouds and VM environments under the same Kuma deployment.

This mode also supports hybrid Kubernetes + VMs deployments.

To learn more, read the multi-zone installation instructions.

Note: By default this will run Kuma with a memory backend, but you can use a persistent storage like PostgreSQL by updating the conf/kuma-cp.conf file.

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/guiDocker - 图1 (opens new window) to see the GUI.

Kuma ships with a read and write HTTP API that you can use to perform operations on Kuma resources. By default the HTTP API listens on port 5681.

To access Kuma you can navigate to 127.0.0.1:5681Docker - 图2 (opens new window) to see the HTTP API.

You can use the kumactl CLI to perform read and write operations on Kuma resources. The kumactl binary is a client to the Kuma HTTP API. For example:

  1. docker run \
  2. --net="host" \
  3. docker.io/kumahq/kumactl: kumactl get meshes
  4. # NAME mTLS METRICS LOGGING TRACING
  5. # default off off off off

or you can enable mTLS on the default Mesh with:

  1. echo "type: Mesh
  2. name: default
  3. mtls:
  4. enabledBackend: ca-1
  5. backends:
  6. - name: ca-1
  7. type: builtin" | docker run -i --net="host" \
  8. docker.io/kumahq/kumactl: kumactl apply -f -

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:

  1. curl -L https://kuma.io/installer.sh | sh -

or you can download the distribution manually:

and extract the archive with:

  1. tar xvzf kuma-*.tar.gz

You will then find the kumactl executable in the kuma-1.2.1/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 🚀.

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.