Deploy Konnect Managed Control Plane

Uses: Kong Mesh
Related Documentation
TL;DR

Install Kong Mesh zone Control plane in your environment and let Konnect take care of the global Control plane.

Prerequisites

This is a Konnect tutorial and requires a Konnect Plus account. If you don’t have a Konnect account, you can get started quickly with our onboarding wizard.

  1. After creating your Konnect account, create the Kong Mesh Control plane and your first Mesh zone. Follow the instructions in Konnect to deploy your data plane.

  2. The Konnect onboarding process will guide you through the steps below, automatically injecting you System Access Token, Control plane URL and Control plane ID. If you want to follow the steps here, export the generated token, Control plane URL and Control plane ID:

     export KONNECT_TOKEN='YOUR KONNECT TOKEN'
     export KONNECT_CONTROL_PLANE_URL='YOUR KONNECT CONTROL PLANE'
     export KONNECT_CONTROL_PLANE_ID='YOUR CONTROL PLANE ID'
    

Install Kong Mesh

Deploy the demo application

To start learning how Kong Mesh works, you can use our simple and secure demo application that consists of two services:

  • demo-app: A web application that lets you increment a numeric counter. It listens on port 5000
  • redis: The data store for the counter
 
flowchart LR
  demo-app(demo-app :5000)
  redis(redis :6379)
  demo-app --> redis
  

When using the Konnect managed Control Plane, all changes to the Mesh must be applied using kumactl. You can configure kumactl connectivity by clicking on Actions from the Mesh overview in Konnect Mesh Manager.

Forward ports

Port-forward the service to the namespace on port 5000:

kubectl port-forward svc/demo-app -n kuma-demo 5000:5000

Validate

Navigate to 127.0.0.1:5000/ in your web browser and increment the counter.

Now that you have you workloads up and running, we can secure them with Mutual TLS.

Introduce zero-trust security

By default, service-to-service traffic in the mesh is not encrypted. You can change this in Kong Mesh by enabling the Mutual TLS (mTLS) policy, which provisions a dynamic Certificate Authority (CA) on the default Mesh. This CA automatically issues TLS certificates to all dataplanes.

To enable mTLS using a built-in CA:

Do not enable mTLS in an environment with existing workloads until you define a MeshTrafficPermission policy. Without it, service-to-service communication will be blocked.

cat <<EOF | kumactl apply -f -
type: Mesh
name: default
mtls:
  enabledBackend: ca-1
  backends:
    - name: ca-1
      type: builtin
EOF

After enabling mTLS, service communication will be denied by default. To restore connectivity, apply a fully permissive MeshTrafficPermission policy:

cat <<EOF | kumactl apply -f -
type: MeshTrafficPermission
name: allow-all
mesh: default
spec:
  from:
    - targetRef:
        kind: Mesh
      default:
        action: Allow
EOF
Something wrong?

Help us make these docs great!

Kong Developer docs are open source. If you find these useful and want to make them better, contribute today!