Kubernetes (często skracany do K8s) to otwartoźródłowa platforma do orkiestracji kontenerów (container orchestration). Automatyzuje wdrażanie, skalowanie, obsługę sieci i samoleczenie aplikacji kontenerowych w obrębie klastra maszyn, więc opisujesz pożądany stan (desired state), a Kubernetes nieustannie działa, aby dopasować rzeczywistość do tego opisu.
Problem: uruchamianie kontenerów na dużą skalę jest trudne
Masz kontenery (z Dockera), ale na produkcji musisz też odpowiedzieć:
→ Na KTÓREJ maszynie działa każdy kontener? (scheduling)
→ Co, jeśli kontener się zawiesi? (self-healing / restarty)
→ Co, jeśli padnie cały node? (przeniesienie gdzie indziej)
→ Jak 50 replik odnajduje się i komunikuje ze sobą? (service discovery)
→ Jak wdrożyć nową wersję bez przestoju? (rolling updates)
→ Jak przeskalować z 3 do 30 replik przy skoku ruchu? (autoscaling)
Robienie tego wszystkiego ręcznie na wielu serwerach nie skaluje się.
