Kubernetes (తరచుగా K8s అని సంక్షిప్తీకరిస్తారు) అనేది ఒక open-source container orchestration ప్లాట్ఫారమ్. ఇది machinesతో కూడిన ఒక cluster అంతటా containerized అప్లికేషన్లను deploy, scale, networking, మరియు healing చేయడాన్ని automate చేస్తుంది; కాబట్టి మీరు desired stateను వర్ణిస్తారు, వాస్తవాన్ని దానికి సరిపోయేలా చేయడానికి Kubernetes నిరంతరం పనిచేస్తుంది.
సమస్య: పెద్ద స్థాయిలో containers నడపడం కష్టం
మీ దగ్గర containers ఉన్నాయి (Docker నుండి), కానీ productionలో మీరు వీటికి కూడా సమాధానం ఇవ్వాలి:
→ ప్రతి container ఏ మెషీన్పై నడుస్తుంది? (scheduling)
→ ఒక container crash అయితే ఏమవుతుంది? (self-healing / restarts)
→ ఒక మొత్తం node చనిపోతే ఏమవుతుంది? (వేరే చోట reschedule)
→ 50 replicas ఒకదానికొకటి ఎలా కనుగొని మాట్లాడుకుంటాయి? (service discovery)
→ zero downtimeతో కొత్త versionను ఎలా roll out చేయాలి? (rolling updates)
→ traffic ఒక్కసారిగా పెరిగినప్పుడు 3 నుండి 30 replicasకు ఎలా scale చేయాలి? (autoscaling)
అనేక serversలో వీటన్నింటినీ చేతితో చేయడం scale కాదు.
