Kubernetes (k8s)
- K8s is a container orchcestration software.
- One of major properties of k8s is
- self healing
- K8s is distributed application which is called as k8s cluster

- Actual k8s

- k8s was developed by Google with the experience of running containers. Google has inhouse products called as omega and borg
- k8s has its dna. K8s was donated as a open source project to CNCF
- K8s is designed to work with any container technology.
- K8s is cluster so we interact with master nodes. There are two ways of interacting, where as for k8s it exposes APIs
- From code/restapi with json
- From command line where k8s gives a cmd line tools
kubectl
- In kubectl can be interacted in two ways
- imperative commands
- declarative (yaml)
- To k8s we always express the desired state (What is that we want)
- These yaml files where we describe our desired state are called as manifests.
Kuberentes Architecture
- K8s at the node level has two types of nodes
- master nodes
- node
- Master node has 4 components and one additional component for cloud based k8s service
- API Server:
- This is way to interact with k8s cluster
- This is responsible for all the communications in k8s cluster
- etcd:
- This is memory of k8s cluster
- Scheduler: Looks out for any new work and it does
- Controller: This ensures desired state is maintained
- Cloud Controller: This is component in k8s with cloud specific knowledge
- API Server:
- Nodes have the following components
- Container runtime: This is technology in which your container is created (docker, rkt, containerd)
- kube-proxy: is responsible for networking
- kubelet: Agent that runs on nodes waiting for instructions from master and execute them.

Pet Vs Cattle

