To install the Kong Mesh components on Universal / VM / Bare metal, follow the instructions here.
Deploy Self Managed Control Plane on Kubernetes
Install Kong Mesh on your environment and manage the Control plane yourself.
Prerequisites
Create a Kubernetes Kong Mesh control plane
The Kong Mesh Control plan and Dataplane deployments are managed as part of the Kong Mesh Helm charts. You will need a Kubernetes cluster to use this quick start.
Install Kong Mesh
Install Kong Mesh control plane and Kubernetes CRDs with Helm:
helm repo add kong-mesh https://kong.github.io/kong-mesh-charts
helm repo update
helm install --create-namespace --namespace kong-mesh-system kong-mesh kong-mesh/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 port5000 -
redis: The data store for the counter
flowchart LR demo-app(demo-app :5000) redis(redis :6379) demo-app --> redis
Deploy the demo application:
kubectl apply -f https://raw.githubusercontent.com/kumahq/kuma-counter-demo/master/demo.yaml
kubectl wait -n kuma-demo --for=condition=ready pod --selector=app=demo-app --timeout=90s
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
MeshTrafficPermissionpolicy. 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