Container + Orchestration
Docker is not meant to run different Operating Systems/Kernels on the same hardware. The main purpose of docker, is to containerize applications and ship and run them.
Container orchestration: the process of automatically deploying and managing containers (usually based on the load needs).
Worker Node (aka minions): the worker machines where the containers are running. If node fails, the app is down (that's why we must have multiple nodes).
Cluster: a set of nodes. If a node fails, the app is still available through the other nodes
Master Node: watches over the nodes and is responsible for the containers orchestration.
Components:
| -------------- | | ----------------- |
| kube-apiserver | <---> | kubelet |
| etcd | | |
| controller | | |
| scheduler | | |
| | | container runtime |
| -------------- | | ----------------- |
| Master Node | | Worker Node |
| -------------- | | ----------------- |
The kubectl
is the CLI used to interact with kubernetes.
Examples:
kubectl run hello-minikube
- deploy an applicationkubectl cluster-info
- view info about the clusterkubectl get nodes
- list all the nodes that are part of the clusterTARGET DECK: kubernetes
The 6 main kubernetes components #flashcard
k8s component: API Server #flashcard
k8s component: etcd #flashcard
k8s component: Scheduler #flashcard
k8s component: Controller #flashcard
k8s component: Container Runtime #flashcard
k8s component: kubelet #flashcard