AWS resources used

The following is a map of all the resources Okctl will set up.


AWS resource dependencies

The following shows how relations between the different resources.


Kubernetes installed components

The following shows how relations between the different resources.

Monitoring

Prometheus
Time series database:

  • Enables scaping of metrics from pods
  • Retrieves log data from Loki
  • Retrieves trace data from Tempo
  • Provides data for Grafana

Grafana
Data visualizer:

  • Reads log, metric and trace data from Prometheus
  • Provides powerful tools for data visualization

Loki
Log aggregator:

  • Acts as a data source for Prometheus
  • Accepts log data from Promtail

Promtail
Log scraper:

  • Scrapes and labels log data from pods
  • Pushes log data to Loki

Tempo
Tracing backend:

  • Acts as a datasource for Prometheus
  • Supports OpenTelemetry, Jaeger, Zipkin

Kube System

AWS Load Balancer
Ingress controller:

  • Provides load balancers based on Kubernetes Ingress

AutoScaler
Horizontal cluster scaler:

  • Adds and removes cluster nodes depending on load

EBS CSI Controller
Persistent volume provider:

  • Creates AWS Elastic Block Store based on Persistent Volume Claims and connects them to pods

External DNS
Domain administration controller:

  • Configures Route53 entries based on Kubernetes Ingress

External Secrets
Secrets controller:

  • Fetches secrets from AWS Parameter Store and Secrets Manager, then injects them into the cluster

ArgoCD

ArgoCD
Continuous Deployment Provider:

  • Synchronizes Kubernetes state with a Git repository
  • Enables rollback of state based on commit history
  • Provides superficial administration of cluster applications

Dex
A pluggable OAuth2 handler:

  • Acts as a mediator for Cognito
  • Handles authentication for ArgoCD
  • Handles authentication for Grafana