Skip to content

Components

Overview

leverage-aws-eks

Figure: K8S EKS reference architecture components diagram. (Source: binbash Leverage Confluence Doc, "Implementation Diagrams", binbash Leverage Doc, accessed January 5th 2022).

Components List

leverage-aws-eks-detailed

Figure: K8S EKS reference architecture detailed components diagram. (Source: binbash Leverage Confluence Doc, "Implementation Diagrams", binbash Leverage Doc, accessed January 5th 2022).

Most of these components and services are installed via Helm charts. Usually tweaking these components configuration is done via the input values for their corresponding chart. For detailed information on the different parameters please head to each component public documentation (Links in each section).

AWS Load Balancer Controller

It automatically provisions AWS Application Load Balancers (ALB) or AWS Network Load Balancers (NLB) in response to the creation of Kubernetes Ingress or LoadBalancer resources respectively. Automates the routing of traffic to the cluster.

Implementation in ref architecture: /apps-devstg/us-east-1/k8s-eks-demoapps

NGINX Ingress Controller

It is used to allow for the configuration of NGINX via a system of annotations in Kubernetes resources.

A configuration can be enforced globally, via the controller.config variable in the helm-chart, or individually for each application, via annotations in the Ingress resource of the application.

Implementation in ref architecture: /apps-devstg/us-east-1/k8s-eks-demoapps

ExternalDNS

Automatically creates the required DNS records based on the definition of Ingress resources in the cluster.

The annotation kubernetes.io/ingress.class: <class> defines whether the records are created in the public hosted zone or the private hosted zone for the environment. It accepts one of two values: public-apps or private-apps.

Implementation in ref architecture: /apps-devstg/us-east-1/k8s-eks-demoapps

cert-manager

Automates the management of certificates. The ClusterIssuer resource is needed to generate signed certificates within the cluster.

Implementation in ref architecture: /apps-devstg/us-east-1/k8s-eks-demoapps

External Secrets Operator

Automatically fetches secrets and parameters from Parameter Store, AWS Secrets Manager and other sources, and makes them available in the cluster as Kubernetes Secrets.

Implementation in ref architecture: /apps-devstg/us-east-1/k8s-eks-demoapps

Cluster Autoscaler

Automatically adjusts the size of the Kubernetes Cluster based on load.

It is configured to automatically detect the limits of the AutoScalingGroup the nodes are into.

Implementation in ref architecture: /apps-devstg/us-east-1/k8s-eks-demoapps

Jaeger

Distributed tracing platform.

It is usually configured to funnel traces from all environments to a centralized ElasticSearch/OpenSearch instance in the Shared account.

Implementation in ref architecture: /apps-devstg/us-east-1/k8s-eks-demoapps

Documentation: Jaeger | JaegerTracing

Fluent-Bit

Collects, processes, and forwards logs and metrics. It is highly configurable and performant.

It is usually configured to funnel all pods' logs to a centralized ElasticSearch/OpenSearch instance in the Shared account.

Implementation in ref architecture: /apps-devstg/us-east-1/k8s-eks-demoapps

Documentation: Fluent-bit | Fluent

kube-prometheus-stack

Stack of Kubernetes manifests, monitoring, alerting and visualization applications, rules and dashboards implementing an end-to-end Kubernetes monitoring solution.

Implementation in ref architecture: /apps-devstg/us-east-1/k8s-eks-demoapps

Prometheus

Gathers and stores metrics as time series data. Using alerting rules then issues notifications via Alertmanager whenever a rule is triggered.

Grafana

Allows for convenient visualization, filtering and querying of the metrics gathered by Prometheus.

Argo CD

Enables GitOps continuous delivery on Kubernetes clusters.

Implementation in ref architecture: /apps-devstg/us-east-1/k8s-eks-demoapps

Two supporting Argo CD components are used:

Argo Rollouts

Provides the capability of using more complex deployment and promotion schemes to eliminate downtime and allow for greater control of the process. Like Blue-Green or Canary deployment.

Argo CD Image Updater

Tracks for new images in ECR and updates the applications definition so that Argo CD automatically proceeds with the deployment of such images.

Velero

Creates and restores backups, handles disaster recovery and migrations for Kubernetes resources and persistent volumes.

Implementation in ref architecture: /apps-devstg/us-east-1/k8s-eks

Documentation: Velero | VMware Tanzu