master node has etcd which is a simple key=value pair store and kube scheduler which decides which node will container run on

the master node has kube-apiserver who the admin talks to

the kubescheduler always asks the api server if there is any containers to be scheduled, the api server checks the etcd store and replies to the scheduler

kubelet is the kubernetes agent available on every node, it basically manages most of the things in the nodes machine and sends info to the apiserver

u can think of the etcd as a job queue or a messge queue that the scheduler takes jobs from and starts contacting the kubelets and start deployment

Controller part in the master has many controllers, the node controller monitors the node and checks if they are running the node controller talks wih the api server

also there is a kube-proxy which from my understanding works like a dns server for the nodes but not literally a dns server, it just maps the ip of the nodes u can think of it like it saves ip route tables for the nodes on every node and even the master (private network in vmware)

also the instructor is saying that is basicaly is making a local network

58:30 pods should have different type of containers

1:00:00 pods basically have one main containers and other helper containers (helper containers are containers that help the main controllers, monitoring and logs etc). not to confuse databases with helper containers, they are still main containers

usually the components of the kubernetes cluster most of them run in pods like etcd, scheduler, etc… Kubelet though is not a pod and runs as a servuce

2:33:30 replica set is a set of the same pods (replicas), replica set is specified with the number of replicas needed. They make sure that if one pod crashes it is replaced instantly

Lec2

0:13:30 Deployments are like replica set, but they have different delpyment strategies, two strategies are:

  1. recreate which drop all and updates all
  2. rolling update is trying to drop only on an update one by one to have no downtime

the way deployments work, they are like a replica set, and when u upgrade u create a new replica set without deleting the old one so rollbacking is available

args in kubernetes yaml are the parameters to the entrypoint in the Dockerfile

1:23:00 We can create a limitrange in a yaml file and apply it to a namespace, limit ranges specifiy cpu mximum cpu and memory usage

2:18:00 resource quota defines maximum resource quota for namespaces

limit range is for a single pod and resource quota is for total resource consumption

questions that came to my mind

  1. kubectl is just an api caller or a user interface, how can i install kubectl locally and configure it for a cloude cluster
  2. how are the containers having the same port in the replica set
  3. vCPU vs CPU

References:

  1. iti lecture
  2. https://kubernetes.io/docs/concepts/