Kubernetes

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

Finally you can follow the Quickstart to take it from here and continue your Kuma journey.

1. Download Kuma

To run Kuma on Kubernetes, you need to download a compatible version of Kuma for the machine from which 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 -

You can also download the distribution manually. Download a distribution for the client host from where you will be executing the commands to access Kubernetes:

and extract the archive with:

  1. $ tar xvzf kuma-0.5.1*.tar.gz

2. Run Kuma

Once downloaded, you will find the contents of Kuma in the kuma-0.5.1 folder. In this folder, you will find - among other files - the bin directory that stores the executables for Kuma, including the CLI client kumactl.

Note: On Kubernetes - of all the Kuma binaries in the bin folder - we only need kumactl.

So we enter the bin folder by executing:

  1. $ cd kuma-0.5.1/bin

And we can then proceed to install Kuma on Kubernetes with:

  1. $ ./kumactl install control-plane | kubectl apply -f -

We suggest adding the kumactl executable to your PATH so that it’s always available in every working directory. Or - alternatively - you can also create link in /usr/local/bin/ by executing:

  1. ln -s ./kumactl /usr/local/bin/kumactl

It may take a while for Kubernetes to start the Kuma resources, you can check the status by executing:

  1. $ kubectl get pod -n kuma-system

3. Use Kuma

Kuma (kuma-cp) will be installed in the newly created kuma-system namespace! Now that Kuma has been installed, you can access the control-plane via either the GUI, kubectl, 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 port 5683.

To access Kuma we need to first port-forward the GUI service with:

  1. $ kubectl port-forward svc/kuma-control-plane -n kuma-system 5683:5683

And then you can navigate to 127.0.0.1:5683Kubernetes - 图6 to see the GUI.

You can use Kuma with kubectl to perform read and write operations on Kuma resources. For example:

  1. $ kubectl get meshes
  2. NAME AGE
  3. default 1m

or you can enable mTLS on the default Mesh with:

  1. echo "apiVersion: kuma.io/v1alpha1
  2. kind: Mesh
  3. metadata:
  4. name: default
  5. spec:
  6. mtls:
  7. enabledBackend: ca-1
  8. backends:
  9. - name: ca-1
  10. type: builtin" | kubectl apply -f -

Kuma ships with a read-only HTTP API that you can use to retrieve Kuma resources.

By default the HTTP API listens on port 5681. To access Kuma we need to first port-forward the API service with:

  1. $ kubectl port-forward svc/kuma-control-plane -n kuma-system 5681:5681

And then you can navigate to 127.0.0.1:5681Kubernetes - 图7 to see the HTTP API.

You can use the kumactl CLI to perform read-only operations on Kuma resources. The kumactl binary is a client to the Kuma HTTP API, you will need to first port-forward the API service with:

  1. $ kubectl port-forward svc/kuma-control-plane -n kuma-system 5681:5681

and then run kumactl, for example:

  1. $ kumactl get meshes
  2. NAME mTLS METRICS LOGGING TRACING
  3. default off off off off

You can configure kumactl to point to any remote kuma-cp instance by running:

  1. $ kumactl config control-planes add --name=XYZ --address=http://{address-to-kuma}:5681

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

4. Quickstart

Congratulations! You have successfully installed Kuma on Kubernetes 🚀.

In order to start using Kuma, it’s time to check out the quickstart guide for Kubernetes deployments.