Kubernetes Course Pluralsight Flashcards
Kubernetes Short History
- Born in Google
- Donated to CNCF in 2014
- Open Source (Apache 2.0)
- v1.0 July 2015
- Written in Go/Golang
- https://github.com/kubernetes/kubernetes
- IRC, @kubernetesio, slack,k8s.io, Meetups…
- DNA from Borg and Omega
- Often Shortenend to k8s - 8 - represents 8 characters in between k and s.
Master
Master - Has an API Server, Cluster Store - Cluster State and Config - It uses etcd which uses raft consensus algorithm to achieve consensus in a cluster.
Controller Manager - Controller of Controller
Different controllers - 1) Node Controller
2) Endpoints Controller
3) Namespace Controller
….
It watches for changes and helps maintain desired state.
Kube-Scheduler
Watches apiserver for new pods
Assigns work to nodes.
Commands always directly go to the apiserver and the work is split accordingly.
Commands are given via kubectl.
Nodes - Kubernetes Workers
The node has:
Kubelet - The main Kubernetes agent
Registers node with cluster
Watches apiserver on the master
Instantiates pods
Reports back to master
Exposes endpoint on : 10255
/spec - Port 10255 allows you to inspect the spec on the kubelet.
/healthz - healthcheck endpoint.
/pods - This shows running pods.
Declaritive and concept of desired state
We give manifest file that is in a JSON / YAML format.
It just gives the requirement to kubernetes apiserver and the requirement is matched by kubernetes.
The Manifest file gives the desired state.
So, the job of kubernetes is to ensure that the desire state and actual state are in sync. Say in case of a failure of a node which hosts a pod. Kubernetes will start up the pod in one of the surviving node.
Pods
It is the atomic units of Kubernetes.
Like container is the atomic unit of docker
vm is the atomic unit of VMware vcenter.
Pod is just a sandbox to run containers. A pod in a container share the same IP. It is a ring fenced environment with: - Network Stack - Kernel Namespaces. - …
All containers in a pod share the same environment.
They also share the same IP.
Scaling is done using only PODs. Add/ Remove PODS.
Services
Services tie down pods with same tags together.