Use Kuma

After Kuma is installed, you can access the control plane via the following methods:

Access methodModePermissions
Kuma user interfaceKubernetes and UniversalRead-only
HTTP APIKubernetes and UniversalRead-only
kumactlKubernetesRead-only
kumactlUniversalRead and write
kubectlKubernetesRead and write

By accessing the control plane using one of these methods, you can see the current Kuma configuration or with some methods, you can edit the configuration.

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 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 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.

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 -

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

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:5681 to see the HTTP API.

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

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 zone 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.

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.

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:5681 to see the HTTP API.

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

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. kumactl get meshes
  2. # NAME mTLS METRICS LOGGING TRACING
  3. # 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" | kumactl apply -f -

You can configure kumactl to point to any zone 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.

Kuma - being an application that wants to improve the underlying connectivity between your services by making the underlying network more reliable - also comes with some networking requirements itself.

Control Plane ports

First and foremost, the kuma-cp application is a server that offers a number of services - some meant for internal consumption by kuma-dp data-planes, some meant for external consumption by kumactl, the HTTP API, the GUI or other systems.

The number and type of exposed ports depends on the mode in which the control plane is running as:

Standalone Control Plane

This is the default, single zone mode, in which all of the following ports are enabled in kuma-cp

  • TCP
    • 5443: The port for the admission webhook, only enabled in Kubernetes
    • 5676: the Monitoring Assignment server that responds to discovery requests from monitoring tools, such as Prometheus, that are looking for a list of targets to scrape metrics from, e.g. a list of all dataplanes in the mesh.
    • 5678: the server for the control-plane to data-planes communication (bootstrap configuration, xDS to retrieve their configuration, SDS to retrieve mTLS certificates).
    • 5680: the HTTP server that returns the health status and metrics of the control-plane.
    • 5681: the HTTP API server that is being used by kumactl, and that you can also use to retrieve Kuma’s policies and - when running in universal - that you can use to apply new policies. It also exposes the Kuma GUI at /gui
    • 5682: HTTPS version of the services available under 5681
    • 5683: gRPC Intercommunication CP server used internally by Kuma to communicate between CP instances.

Global Control Plane

When Kuma is run as a distributed service mesh, the Global control plane exposes the following ports:

  • TCP
    • 5443: The port for the admission webhook, only enabled in Kubernetes
    • 5680: the HTTP server that returns the health status of the control-plane.
    • 5681: the HTTP API server that is being used by kumactl, and that you can also use to retrieve Kuma’s policies and - when running in universal - that you can use to apply new policies. Manipulating the dataplane resources is not possible. It also exposes the Kuma GUI at /gui
    • 5682: HTTPS version of the services available under 5681
    • 5683: gRPC Intercommunication CP server used internally by Kuma to communicate between CP instances.
    • 5685: the Kuma Discovery Service port, leveraged in multi-zone deployment

Zone Control Plane

When Kuma is run as a distributed service mesh, the Zone control plane exposes the following ports:

  • TCP
    • 5443: The port for the admission webhook, only enabled in Kubernetes
    • 5676: the Monitoring Assignment server that responds to discovery requests from monitoring tools, such as Prometheus, that are looking for a list of targets to scrape metrics from, e.g. a list of all dataplanes in the mesh.
    • 5678: the server for the control-plane to data-planes communication (bootstrap configuration, xDS to retrieve their configuration, SDS to retrieve mTLS certificates).
    • 5680: the HTTP server that returns the health status of the control-plane.
    • 5681: the HTTP API server that is being used by kumactl, and that you can also use to retrieve Kuma’s policies and - when running in universal - you can only manage the dataplane resources.
    • 5682: HTTPS version of the services available under 5681
    • 5683: gRPC Intercommunication CP server used internally by Kuma to communicate between CP instances.