by: Alaa Atwa

from Ahmed elfakhrany ‘s Udemy course and other resources

<aside> 🔗

course link: https://www.udemy.com/course/kubernetes-from-beginner-to-master-arabic

</aside>

<aside> 💡

right click and disable check spelling for better experience 🤓

intro

Orchestrator : the brain that automates deployment, scaling, networking, and lifecycle management of containers.(control plane in k8s)

cluster : a group of machines running k8s, managed as one unit.

node: one machine from the cluster (one virtual machine), runs containers and the necessary services.


cluster components

  1. an API that receives the requests.
  2. an etcd database to save requests (must have an odd number of nodes).
  3. controller manager (c-m) create and control the pods inside the node (like deployment, replicaset,…etc) all of theses are controller managers.
  4. scheduler organize and assigns pods to nodes
  5. cloud controller manager (c-c-m)
  1. kubelet : managing and running containers on each working node. (receives and send requests with the api).
  2. runtime (containerd or cr-o) : manages the containers directly (pulls and creates..), no interaction with it.
  3. kube-proxy : network component to run on each k8s node (e.g. manage rules for service routing)

kubeconfig

<aside> 💡

kubeconfig file usually saved here —> ~/.kube/config

</aside>

apiVersion: v1
kind: Config    # notice the kind 
clusters:
	# if you installed minikube, it will be mentioned here
	- name: mycluster
		cluster: 
			server: https://....
			certificate-authority-data: .... # (CA)
users: 
	- name: kubeadmin
		user:
			client-certificate-data: ....