As one of the first things that I wanted to learn, I picked up Kubernetes. I have started taking a lesson in learning Kubernetes on Udemy Course and I'll use this space to document my learning as I progress through course:
- There seem to be waaay too many Kubernetes Certified Distributions
- Kubernetes is a container management system
- What can Kubernetes do out of box:
- Spawn multiple container of an image
- Put internal / External ALB in front of these multiple containers
- Grow / shrink cluster
- Replace image with latest with rolling update
- Auto scaling - nodes and appliacations
- Scheduled / cron containers
- Batch mode
- Integrate third party services (service catalog)
- Automate complex tasks (operators)
Kubernetes master - also called by Control Plane. Includes API Server, Scheduler, etcd and Controller Manager. One of more master nodes can exist.
Kubelet - runs on Host Machines, controls local docker
Kube-proxy - Controls network, works with kubelet
CoreDNS - Naming service on master
Cloud Kubernes providers usually hide control plane and run it externally, all we get in return is API endpoint.
Only interact through API that supports CRUD operations.
Pods - Abstract around one or more containers. Lowest deployable unit in Kubernetes. Pods get IP address, not individual containers in a pod. Containers in a pod share localhost and can share volumes. Containers in pod are deployed together.