شنو هو 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
ولا واحد الأداة لي لا غنى عنها للشركات لي خدامين على تطبيقات كبيرة ومعقدة. صحيح هو فيه شوية ديال التعقيد فالأول، ولكن القوة والمرونة لي كيعطيك كتستاهل المجهود باش تعلم ليه.
تحياتي، كان معاكم براهيم