Kubernetes (dažnai trumpinamas K8s) yra atviro kodo konteinerių orkestravimo (container orchestration) platforma. Ji automatizuoja konteinerizuotų aplikacijų diegimą, mastelio keitimą, tinklo veikimą ir savaiminį atsistatymą per mašinų klasterį, tad jūs aprašote pageidaujamą būseną (desired state), o Kubernetes nuolat dirba, kad tikrovė ją atitiktų.
Problema: konteinerių paleidimas dideliu masteliu yra sudėtingas
Turite konteinerius (iš Docker), bet production aplinkoje dar turite atsakyti:
→ Ant KURIOS mašinos veikia kiekvienas konteineris? (scheduling)
→ Kas, jei konteineris nulūžta? (savaiminis atsistatymas / restart'ai)
→ Kas, jei žūva visas node? (perkėlimas paleisti kitur)
→ Kaip 50 replikų randa viena kitą ir bendrauja? (service discovery)
→ Kaip išleisti naują versiją be prastovų? (rolling updates)
→ Kaip nuo 3 iki 30 replikų išsiplėsti per srauto šuolį? (autoscaling)
Visa tai daryti rankomis per daugybę serverių tiesiog neįmanoma didėjant masteliui.
