Ubuntu

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

    You can download Kuma from here or by running:

    You can extract the archive and check the contents of the folder by running:

    1. $ tar xvzf kuma-0.1.0-ubuntu.tar.gz
    2. $ cd bin/ && ls
    3. envoy kuma-cp kuma-dp kuma-tcp-echo kumactl

    As you can see Kuma already ships with an executable ready to use.

    To run Kuma execute:

    1. $ kuma-cp run

    By default this will run Kuma with a memory backend, but you can change this to use PostgreSQL by updating the conf/kuma-cp.conf file.

    Before starting the sidecar proxy data-plane, the service should already be running. For demo purposes, we can start a sample TCP server that comes bundled with Kuma and that echoes back the requests we are sending to it:

    You can then consume the service by making requests to 127.0.0.1:9000, like: curl or nc 127.0.0.1 9000

    We now have our control-plane and services running. For each service we can now provision a Dataplane Entity that configures the inbound and outbound networking configuration:

    1. $ echo "type: Dataplane
    2. mesh: default
    3. networking:
    4. inbound:
    5. - interface: 127.0.0.1:10000:9000
    6. tags:
    7. service: echo" | kumactl apply -f -

    And run the actual data-plane process with:

    1. $ KUMA_CONTROL_PLANE_BOOTSTRAP_SERVER_URL=http://127.0.0.1:5682 \
    2. KUMA_DATAPLANE_MESH=default \
    3. KUMA_DATAPLANE_NAME=dp-echo-1 \
    4. kuma-dp run

    Now you can start applying to your default Service Mesh, like Mutual TLS:

    1. $ echo "type: Mesh
    2. enabled: true
    3. ca:
    4. builtin: {}" | kumactl apply -f -

    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

    :::w

    If you consume the service again on port 10000, you will now notice that the communication requires now a TLS connection.

    You can now review the entities created by Kuma by using the kumactl CLI. For example you can list the Meshes:

    1. $ kumactl get dataplanes
    2. MESH NAME TAGS
    3. default dp-echo-1 service=echo
    4. $ kumactl inspect dataplanes