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 scale deployment [DEPLOYMENT_NAME] —replicas=4
(Add pods, by this command our service will run on multiple pods & nodes).