Skip to content

EKS versions monitoring

Imported from Confluence

Content may be outdated. Verify before following any procedures. View original | Last updated: April 2022

Summary

Due to dynamic nature of Kubernetes project every upgrade provides lots of security and functional enhancements. Also same as the Kubernetes community support for Kubernetes versions, Amazon EKS is committed to supporting at least four production-ready versions of Kubernetes at any given time. Taking all this into account, we decided to gather all the versions related data in one place.

image2022-4-5_11-30-53.png

This dashboard has two parts: a list of officially supported EKS versions on the left side and versions of Kubernetes clusters we currently use on the right.

How it works

While the right side with currently used EKS versions is purely manual and is basically a bunch of tweaked queries to dedicated prometheus servers, the left part is a tiny bit trickier. This process involves the following steps:

  1. Kubernetes CronJob spawnes a Job every four hours;
  2. Job creates a Pod, which scrapes supported versions from AWS official docs Kubernetes Versions and pushes them to Pushgateway;
  3. Metric is collected by Prometheus from Pushgateway;
  4. Grafana fetches the metric from Prometheus.

Info

CronJob is deployed via helm chart to devops namespace of arn:aws:eks:eu-west-1:767648288756:cluster/aws-production-eks-common EKS cluster.

Image used

The following Dockerfile was used to build an image for the pod (the script itself could be found here):

FROM python:3.9-alpine

COPY scrape_eks_versions.py /tmp/

RUN pip install --no-cache-dir --upgrade pip && \
    pip install --no-cache-dir requests prometheus_client bs4

CMD ["cat", "/etc/os-release"]
Column 1 Column 2
Helm chart get-eks-versions (Bitbucket)
Script iself copy_docker_images_to_ecr.py (Github)
Grafana dashboard Grafana - Eks Current Versions Vs Supported Versions
Grafana JSON
Initial ticket DEVOPSBLN-2449