Open source container orchestration tool from Google. It helps you manage containerized applications that made up of thousands of containers and manage them in different deployment environments
Due to increase trend from Monolith to Microservices, it has increased usage of containers. Demand of orchestration tool
Features:
- High availability or no downtime
- Scalability or high performance
- Disaster recovery - backup and restore
- Smallest unit of K8s
- Abstraction over container
- Creates layer on top of container
- Usually meant to run one app per Pod
K8s have virtual network - internal public address
- Permanent IP address can be attached to each Pod
- Lifecycle of Pod and Service are NOT connected
- Forwarding to Service to have nice url
- Route traffic to cluster
- External configuration of your application
- Maps automatically
- Used to store secret data
- base64 encoded format
- can store credentials
Before, if DB container is restarted, data is gone. Volumes is now to the rescue
- Local machine
- Remote
Storage is external hard drive
To create a 2nd replica, you need to create a blue print using Deployment component
- Abstraction of Pods
- Can't replicate Database using Deployment
- for stateLESS Apps
- for stateFUL Apps or Databases
- Meant for stateful applications (databases)
- deploying is not easy
- DB are often hosted outside K8's cluster to avoid inconsistencies and hard deployment
Kubelet interacts with both container and node