Architecture

The following diagram describes Ketch's current architecture design:

Pool CRD

Pools are created using the ketch pool add command, and once created, Ketch automatically configures a Kubernetes namespace, ingress controller parameters, and default templates for the applications.

You can then create multiple pools and use them when deploying applications to isolate workloads and resources assigned to them.

Currently, Ketch supports Istio and Traefik as ingress controllers. As part of the roadmap, additional controllers will be added.

You can assign the ingress controller when creating pools on Ketch. The diagram below illustrates how Ketch integrates with both when deploying applications to a pool using either Traefik or Istio.

Ketch with IstioKetch with Istio

Ketch with Istio

Ketch with TraefikKetch with Traefik

Ketch with Traefik

Application CRD

The Application CRD is the component responsible for providing an application context to applications.

The Application CRD is responsible for managing and running the process associated with the applications, manage environment variables assigned to applications and its lifecycle, and CNAME for each application.

Ketch Controller

The Ketch Controller monitor changes to the Application and Pool CRDs and automatically creates the required objects for each application to run in the Kubernetes cluster, allowing you to focus on the application code rather than infrastructure-related objects.

Ketch automatically creates Helm charts for the applications that are deployed and install them in the cluster. You also can have Ketch create and export the application Helm chart, so you can perform updates to the Helm chart before it is installed in the cluster.

Ingress Controllers

Currently, for Ketch v0.1.0, Ketch supports Traefik and Istio as ingress controllers.

Moving forward, support for additional ingress controllers will be added.