Eks
Kubernetes
- Run containers in reliable performnt way
- Kubernetes is cloud agnostic
- A Kubernetes cluster is a highly available cluster of compute resources
- Cluster Control Plane manages scheduling, application scaling & deployment
- Basic unit of compute is a cluster node.
- A node has containerd or docker for handling container operations
- Kubelet runs on each of the node & communicates with Control Plane
- Pods are smallest units of computing. Pods can have multiple containers with shared storage and networking.
- One container one pod architecture is common
- Pods are considered as temporary. A user usually does no manage pods
- Control Plane runs kube-apiserver. This is what nodes and other cluster elements interact with. It can be scaled horizontally
- etcd provides highly available name value store . It is the main backing data store of a cluster
- kube-scheduler identifies any pods within the cluster with no node assigned & assigns them to a node . This can be horizontally scaled
- cloud-controller-manager allows Control Plane to interact with cloud providers
- kube-controller-manager is a collection of proceses. These are node controller which monitors & responds to node outages, Jobs Contoller responsible for managin pods to run one off jobs, EndPoint Controller which populates endpoints i.e. assigns services to pods & Service Account Token Controller which is responsible for account and API token creation
- Every node runs kube-proxy. It co-ordinates networkin with Control Plane
- Service is abstraction which runs one or more pods.
- Jobs are ad-hoc one time execution tasks
- Ingress exposes a way into a service & Ingress conroller provides ingress
- Storage within Kubernetes is ephimeral
- Persistent Storage or Persistent Volumes (PV) live beyond lifecycle of 1 pod
EKS
- AWS managed Kubernetes service
- EKS can run on AWS, Outposts, EKS Anywhere(On Premises), EKS Distro
- Kubernetes Control Plane is managed by AWS and scales in multiple AZs
- EKS Cluster = EKS Control Plane + EKS Nodes
- ETCD is managed by AWS & distributed across multiple AZs
- Nodes can be self managed , managed node groups or Fargate pods
- For persistent storage EKS can use EBS, EFS and ESX
- EKS deployment consists of 2 VPCs
- An AWS Managed VPC where control plane runs across multiple AZs
- A Customr Managed VPC where worked nodes run
- Control Plane ENIs are injected into customer VPC