Sunday, July 11, 2021

AWS: Containers: EKS (Elastic Kubernetes Service)

EKS is a managed service to run the Kubernetes on AWS without needing your own Kubernetes control plane. Kubernetes is an open-source system of automatic deployment, scaling & management of containerized applications. Amazon EKS runs Kubernetes control plane instances across multiple AZs to ensure high availability. It also automatically detects & replaces unhealthy control planes and provides automated upgrades & patches. EKS runs up-to-date version of Kubernetes which is also compatible with standard Kubernetes environment hence migration to & from is also very easy


  • The high-level structure of the AWS Kubernetes application is as follows



  • While scaling up the application, it first adds a new ‘Pod’ and if more traffic increases it adds another EC2 instance i.e. K8 Node


  • Below are Kubernetes key components

  • Master Node: Below components in Master Node are called as control plane components

    • etcd cluster: stores the information in key-value format for the worker nodes & containers

    • kube-schedular: Identifies a right worker node to place a container based on resource requirements of container, worker node’s capacity, policies & constraints, etc. 

    • kube controller manager: Control Manager manages Node Controller & Replication Controller. Node controller manages nodes like adding new nodes, managing failures whereas Replication controller makes sure that desired numbers of containers are running in a replication group

    • kube api server: Primary management component of K8, responsible for orchestrating all operations within the cluster, it exposes K8 APIs to external  

  • Worker Nodes

    • kubelet: runs on each node in cluster, it listens for instructions from kube-api-server and creates or removes containers on the nodes. kube-api-server fetches reports from kubelet periodically to get the status of the nodes & containers

    • kube proxy: service that ensures necessary rules are setup when applications on worker needs to communicate with each other e.g. app server on one node to communicate with DB on another node

  • EKS runs a single tenant Kubernetes control plane for each cluster

  • Control plane is consisting of two API server nodes and three etcd nodes that run across three AZs within a region

  • EKS uses VPC network policies to restrict traffic between control plane components within a cluster

  • Control plane components cannot view or receive communication from other clusters or AWS accounts except authorized with Kubernetes RBAC policies

Below is the high-level comparison of ECS, EKS and Fargate

No comments:

SpringBoot: Features: SpringApplication

Below are a few SpringBoot features corresponding to SpringApplication StartUp Logging ·          To add additional logging during startup...