Container Orchestration
- Orchestration in Compute: This is about
- automated configuration
- management
- co-ordination of systems, applications and services
- Container Orchestration is
- automation of operational effort required to run containerized workloads and services
- managing
- container lifecycle
- provisioning
- deployment
- scaling
- networking
- storage
- container lifecycle
Cluster
- Refer Here for cluster definitions
- Refer Here for cluster architectures
- Most popular architecture
Rest API
- This is a standard way of exposing functionality over http(s)
- Refer Here for what rest api
- Verbs:
- GET
- PUT
- POST
- DELETE
Kubernetes (k8s)
- Basic kubernetes cluster
- Kubernetes cluster
- Kubernetes has components categorized based on where they are executing
- Control Plane
- kube-api Server
- kube-scheduler
- kube-controller-manager
- etcd store
- Worker Node
- kubelet
- container engine
- kube-proxy
- Control Plane
- Any system which wants to interact to kubernetes should have kubectl
kube-api server component
- This is most important component of the k8s control plane
- kube-api server exposes REST API which enables clients to send HTTP requests to kube-api server
- kube-api server responds over http requests and writes the resource information to etcd store
- kube-api server exposes the k8s objects
- kube-api server is responsible for all the communication
- The api server is over https and requires authentication
etcd store
- This is memory of k8s cluster Refer Here
- etcd cluster can scale across multiple nodes unlike traditional databases
kube-scheduler
- This polls the kube-api server for any new objects in etcd store which are not scheduler
- For any workloads unscheduled k8s scheduler will find a suitable worker node and then creates the workload
kube-controller-manager
- This ensures the desired state is met.
- This is combination of multiple controller
- NodeController
- Replication Controller
- Namespace Controller
- EndpointController
- ServiceAccountController
kubelet
- This is an agent on the worker node
- This reacts to requests/orders from control plane components and speaks with container runtime and gets the work done
- If it fails responds back to control plane with status
Container Runtime
- this is container engine
- this could be docker or any other CRI compatible runtime
kube-proxy
- this is responsible for networking
- this implementations will be based on CNI
Getting familiar with tmux
- Install tmux on linux