HTTP support in Kuma

At its core, Kuma distinguishes between 2 major categories of traffic: HTTP traffic and opaque TCP traffic.

It the former case, Kuma can provide deep insights down to application-level transactions, in the latter case the observability is limited to connection-level statistics.

So, as a user of Kuma, you’re highly encouraged to give it a hint whether your service supports HTTP or not.

By doing this,

On Universal

On Universal, to give Kuma a hint that your service supports HTTP protocol, you need to add a protocol tag to the inbound interface of your Dataplane.

E.g.,

  1. type: Dataplane
  2. mesh: default
  3. name: web
  4. networking:
  5. address: 192.168.0.1
  6. inbound:
  7. - port: 80
  8. servicePort: 8080
  9. tags:
  10. service: web
  11. protocol: http # let Kuma know that your service supports HTTP protocol

On Kubernetes

On Kubernetes, to give Kuma a hint that your service supports HTTP protocol, you need to add a <port>.service.kuma.io/protocol annotation to the k8s Service object.

E.g.,

  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: web
  5. namespace: kuma-example
  6. annotations:
  7. 8080.service.kuma.io/protocol: http # let Kuma know that your service supports HTTP protocol
  8. spec:
  9. selector:
  10. app: web
  11. ports:
  12. - port: 8080