Kubernetes architecture
Kubernetes एक open source प्रणाली आहे जे की containerized applications (जस की docker container) जे automation, deployment, scaling आणि management करण्यासाठी वापरली जाते.
kubernetes चा मुख्य उद्देश:
१) अनेक server (Nodes) वर applications व्यवस्थित चालवणे
२) त्याचे व्यवस्थापन सोपे करणे
३) applications scale करणे (जास्त users साठी वाढवणे)
kubernetes चे मुख्य घटक (main components of kubernetes)
१) Cluster (क्लस्टर)
एक kubernetes cluster मध्ये दोन मुख्य भाग असतात:
१) Master Node (संचालक)
२) Worker Nodes (काम करणारे nodes)
kubernetes चे मुख्य घटक (main components of kubernetes)
१) Cluster (क्लस्टर)
एक kubernetes cluster मध्ये दोन मुख्य भाग असतात:
a) Master Node (संचालक)
b) Worker Nodes (काम करणारे nodes)
a) Master Node (Control plane - नियंत्रण विभाग)
control plane हा संपूर्ण क्लस्टरचे व्यवस्थापन करतो. तो क्लस्टरच्या स्थितीचा मागोवा ठेवतो, निर्णय घेतो (जसे की कोणता pod कुठे चालवायचा), आणि क्लस्टर मध्ये बदल लागू करतो.
किंवा क्लस्टरचे ब्रेन – सर्व निर्णय, प्लांनिंग आणि मॅनेजमेंट याचं भागात होते.
Master Node चे घटक:
१) API Server: क्लस्टरशी स्वाद साधणारे मुख्य दार (यूजर/CLI – API – Cluster) किंवा kube – apiserver हे kubernetes API चे प्रवेशद्वार आहे.सर्व components यांच्याशी communicate करतात.
२) Schedular: कंटेनर्स कुठल्या Node वर चालवायचे हे ठरवतो. किंवा kube – schedular नवीन pods साठी योग्य node निवडतो.
३) Controller Manager: क्लस्टरची स्थिती योग्य ठेवतो. किंवा kube – Controller manager विविध Controller processes चालवतो (जसे की ReplicaSet Controller, Node Controller)
४)etcd (key – value store) – संपूर्ण क्लस्टरची माहिती जतन करणारे datbase. किंवा एक key – value store आहे यामध्ये क्लस्टरची संपूर्ण स्थिती स्टोर होते.
५) Cloud – Controller – manager – क्लाऊड specific logic वापरतो (जर cluster cloud वर असेल तर )
b) worker Nodes ( Nodes जे अँप्स चालवतात किंवा काम करणारे nodes)
हे nodes प्रत्यक्षांत Container (pods) चालवतात किवा अँप्लिकेशन कंटेनर चालवतात. Control plane या nodes वर workload assign करतो
worker Node चे घटक:
१)kubelet – Master कडून आलेल्या आदेशानुसार कंटेनर्स चालवतो किंवा प्रत्येक node वर चालतो control plane च्या सूचनानुसार pods व्यवस्थापित करतो.
२) Container Runtime – उदा. Docker, containerd – हे कंटेनर चालवतात किंवा container चालविण्यासाठी आवश्यक सॉफ्टवेअर (जसे की docker, containerd)
३) kube proxy – Networking नियंत्रित करतो. (pod -to -pod कम्मुनिकेशन) किंवा Networking सुविधा पुरवतो (service to pod routing)
४) pod (पॉड)
a) kubernetes मध्ये pod हा सर्वात लहान युनिट आहे.
b) एका pod मध्ये एक किंवा अधिक कंटेनर्स असू शकतात.
c) हे कंटेनर्स एकत्रित काम करतात आणि एकाच नेटवर्क share करतात.
५)Deployment
आपल्या applications ला किती replica पाहिजे, अपडेट कसे करायचे याचे नियोजन Deployment द्वारे होते.
६) Service
Pod च IP address बदलत राहतो, म्हणून service स्थिर IP आणि Load Balancing देते.
kubernetes cluster
एक kubernetes cluster म्हणजे एक control plane + एक किंवा अधिक worker nodes
kubernetes मध्ये कामाची प्रक्रिया:
१) user kubectl वापरून API server ला विंनती करतो (उदा. एक pod तयार करा)
२) API server त्या विंनतीला validate करून etcd मध्ये नोंदवतो
३) Scheduler योग्य node निवडतो.
४) kubelet त्या node वर container चालवतो
५) kube proxy – नेटवर्किंग routes सेट करतो.
kubernetes कसा काम करतो?
१) user kubectl द्वारे आदेश देतो.
२) API Server ते आदेश घेतो.
३) Scheduler योग्य node निवडतो
४) kubelet त्या node वर pod तयार करतो.
५) pod मध्ये container रन होतो.
६)service वापरून बाहेरील जगाशी संपर्क ठेवता येतो.
थोडक्यात :
१) Control plane – क्लस्टरचे मेंदू (decisions घेणे)
२) worker Node प्रत्यक्ष कंटेनर्स चालवणे
३) etcd – क्लस्टरची स्थिती साठवणे
४) kubelet – node वरील agent
५) kube proxy – नेटवर्क व्यवस्थापन
६) kubectl – CLI tool (user interface)
निष्कर्ष:
kubernetes हे एक शक्तिशाली सिस्टम आहे जे containerized applications चे व्यवस्थापन सोपे scalable आणि विश्वासनीय बनवते.
