شنو هو Kubernetes
فالمقال لي فات، دوينا على Docker وكيفاش كيخلينا نغلفو ال application ديالنا فواحد الصندوق معزول ومستقل سميتو container. هادشي مزيان وملي كيكون عندك container واحد ولا جوج، الأمور ساهلة. ولكن تخيل عندك application كبيرة بزاف، فيها عشرات ولا مئات ديال ال containers… كيفاش غادي تدير ليهم؟
شكون غادي يراقب يلا شي واحد فيهم طفا؟ شكون لي غادي يزيد العدد ديالهم يلا كتر الضغط؟ وكيفاش هاد ال containers غادي يهضرو مع بعضياتهم؟ هنا فين كيدخل البطل ديالنا: Kubernetes.
آشناهو بعدا هاد Kubernetes؟
Kubernetes، لي كنختصروها ب K8s (حيت كاينين 8 ديال الحروف بين “k” و “s”)، هي واحد المنصة مفتوحة المصدر open-source من عند Google. الدور ديالها هو automation ديال النشر deployment، التوسع scaling، والإدارة management ديال ال applications لي خدامين بال containers.
بكلمات بساط، يلا كان Docker هو لي كيصاوب ليك containers، ف Kubernetes هو بحال شي ربان ديال سفينة كبيرة. هو لي كيشد دوك containers كاملين وكيضمن أن كلشي خدام بتناغم، كيتواصل مع بعضياتو، وكيواجه أي مشكل ممكن يوقع. هاد العملية كنسميوها Container Orchestration.
المفاهيم الأساسية ديال K8s
باش تفهم Kubernetes، خاصك تعرف هاد المكونات الرئيسية ديالو:
Cluster: هو المجموعة الكاملة ديال الماكينات لي خدام عليهمKubernetes. هاد الClusterكيتكون منMaster NodeوWorker Nodes.Node: هي ماكينة وحدة (سواء كانتvirtualولاphysical) فداك الCluster. الWorker Nodesهوما فين كيخدمو الcontainersديالنا.Pod: هو أصغر وحدة فKubernetes. الPodماشي هو الcontainer، ولكن هو غلافwrapperكيقدر يكون فيهcontainerواحد ولا كتر، وهاد الcontainersكيكونو ديما خدامين مجموعين وكيشاركو نفس الموارد بحالnetwork.Deployment: هو فين كتوصف الحالة لي بغيتي الapplicationديالك تكون فيها. مثلا، كتقول ليه: “أKubernetes، بغيت 3 ديالreplicasمن هاد الPodخدامين ديما”.Kubernetesكيتكلف باش يخلي داك العدد ديما خدام، يلا طاحت شي وحدة، كينوض وحدة خرى فبلاصتها.Service: الPodsكيموتو وكيتخلقو من جديد، يعني الIP addressديالهم كتبدل. الServiceهو لي كيعطيهم واحد العنوان ثابتstable IP addressوواحد الإسم باش الcontainersلوخرين ولا المستخدمين يقدرو يتواصلو معاهم بلا ميتسوقو للتغييرات لي كتوقع.kubectl: هي الأداة ديال سطر الأوامرcommand-line toolباش كتهضر مع الClusterديالك.
علاش كنستعملو K8s؟
Kubernetes كيعطيك بزاف ديال القوة والميزات :
Self-healing: يلا شيcontainerولاpodفشل،Kubernetesكيعاود يشعلو أوتوماتيكيا ولا كيبدلو بواحد جديد.Horizontal Scaling: تقدر تزيد ولا تنقص عدد الPodsلي خدامين بضغطة زر، ولا تخليه يديرها أوتوماتيكيا على حساب الضغط على الapplication.Automated Rollouts & Rollbacks: تقدر تحدث الapplicationديالك لنسخة جديدة بلا ميوقع حتى شي انقطاع فالخدمة (zero downtime). وإلا كانت شي مشكلة فالنسخة الجديدة، تقدر ترجع للقديمة بسهولة.Service Discovery & Load Balancing: هو كيتكلف يوزع الضغط (load balancing) على الcontainersديالك وكيخليهم يلقاو بعضياتهم بسهولة باش يتواصلو.
الخلاصة
بكل بساطة: Docker كيبني containers، و Kubernetes كيسير الأسطول ديال هاد containers
Kubernetes ولا واحد الأداة لي لا غنى عنها للشركات لي خدامين على تطبيقات كبيرة ومعقدة. صحيح هو فيه شوية ديال التعقيد فالأول، ولكن القوة والمرونة لي كيعطيك كتستاهل المجهود باش تعلم ليه.
تحياتي، كان معاكم براهيم