Amazon Elastic Kubernetes Service
Get a working knowledge of how EKS and EKS Distro work.
Kubernetes (K8s) is an open-source and extensible container orchestration platform. It automates the deployment, scaling, and management of containerized applications. Kubernetes allows the management and coordination of clusters of containers across multiple hosts, providing services such as fault tolerance and scalability. In this lesson, we will review K8 and its major components and understand how EKS and EKS Distro work.
K8s components
Kubernetes orchestrates containerized applications within a Kubernetes cluster, which consists of a control plane and
The cluster contains multiple worker nodes in a production environment, and the control plane runs across multiple machines, ensuring high availability and fault tolerance.
Control plane components
The main components of the control plane are discussed below:
etcd: This is the key-value storage for storing the Kubernetes cluster’s data, service discovery details, and API objects.
kube-scheduler: It schedules newly created Pods on a worker node.
kube-controller-manager: It runs controller processes such as the node controller for handling node failures and the job controller. There is a separate controller component for cloud integration.
kube-apiserver: The Kubernetes API server is the primary management entity for the cluster, receiving all REST requests.
Node components
Every worker node in the Kubernetes cluster also runs some components, as shown in the illustration above. Kubernetes is designed to be highly flexible, supporting a variety of container runtimes such as containerd, CRI-O, and even Docker Engine through its Container Runtime Interface (CRI). A high-level overview of node components is as follows:
Pods: A Pod is the smallest deployable unit in Kubernetes and represents one or more co-located containers.
Kubelet: An agent within the nodes that manages the containers in the Pod, ensuring that they are running and healthy.
Kube-proxy: It allows network communication to the Pods from the internet or inside the cluster.
Operating and securing a Kubernetes control plane across production environments requires deep expertise in cluster provisioning, scalability, patching, network configuration, and integration with cloud services. This makes self-managed Kubernetes operationally burdensome for most teams.
Amazon Elastic Kubernetes Service
Amazon Elastic Kubernetes Service (EKS) is a fully managed service that simplifies managing Kubernetes clusters on AWS. EKS simplifies containerized applications’ deployment, management, and scaling using Kubernetes on AWS infrastructure. EKS supports different compute services, from serverless Fargate to EC2, providing high availability, strong security, and seamless integration with other AWS services to improve development and ...