Concepts : Pod = a group of one or more containers with shared storage/netweok and a specification of how to run the containers. Deployment = high-level configuration around a desired function, a deployment provides declarative for Pods and ReplicaSets . ReplicaSet = A ReplicaSet’s purpose is to maintain a stable set of replica Pods running at any given time . Service = Service it’s an “k8s as a service”, by the “kubectl expose” command you will expose your K8s cluster as a service, before running this command, containers inside the pod are able to communicate with each other, but there is no connection from outside . There are 3 services types : ClusterIP = the default type, opens the port on each node for Pod-to-Pod communication .NodePort = if we don’t specify NodePort, K8s randomly assigns a port .LoadBalancer = external IP which act as Load-balancer for the service ~/.kube/config = configuration file which used by Kubectl . Some useful Kubectl commands : Kubectl get nodes Kubectl get pods Kubectl create deployment Kubectl delete deployment Kubectl expose Kubectl run Kubectl scale deployment [DEPLOYMENT_NAME] —replicas=4 (Add pods, by this command our service will run on multiple pods & nodes).