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:
Post a Comment