Kubernetes: التعريف والوظائف وآليات التشغيل

Kubernetes(يُختصر بـ K8s) هو نظام مفتوح المصدر يستخدم لإدارة ونشر التطبيقات المعبأة في حاويات عبر شبكة الكمبيوتر. Kubernetes أصبحت منصة إدارة حاويات شائعة وقوية، تم تطويرها في الأصل بواسطة Google ويديرها حاليًا مجتمع كبير من المطورين.

المهام الرئيسية Kubernetes لتشمل

  1. إدارة الحاويات : Kubernetes تتيح لك تجميع التطبيقات ومواردها في ملفات containers. Containers توفير بيئة خفيفة الوزن والتأكد من تشغيل التطبيقات باستمرار على أي نظام.

  2. النشر الآلي : Kubernetes يتيح النشر الآلي وقابلية التوسع السهلة للتطبيقات والخدمات. يمكنك تحديد متطلبات الموارد، وعدد الحالات، Kubernetes وستحافظ تلقائيًا على الحالة المطلوبة.

  3. إدارة الموارد : يدير K8s موارد الخادم مثل وحدة المعالجة المركزية والذاكرة والتخزين للتأكد من أن التطبيقات لا تستهلك موارد زائدة ولا تتداخل مع بعضها البعض.

  4. الاسترداد التلقائي والتسامح مع الأخطاء : Kubernetes يساعد التطبيقات على التعافي تلقائيًا من حالات الفشل. يمكنه الرجوع تلقائيًا إلى الإصدار السابق من التطبيق إذا واجه الإصدار الجديد مشكلات.

  5. موازنة التحميل وتوزيع حركة المرور : Kubernetes توفر آليات لتوزيع حركة المرور بالتساوي بين مثيلات التطبيقات الموجودة على خادم مختلف nodes. وهذا يحسن الأداء ويضمن قابلية التوسع.

  6. إدارة التكوين والأسرار : Kubernetes تتيح لك إدارة تكوين التطبيق وأسراره بشكل آمن باستخدام ميزات مثل K8s Secrets وConfigMaps.

آليات التشغيل Kubernetes تشمل

  1. Nodes: تتم الإشارة إلى الخوادم أو أجهزة الكمبيوتر الفردية في الشبكة باسم " nodes." هناك نوعان من nodes العقدة Kubernetes الرئيسية والعقدة العاملة. تقوم العقدة الرئيسية بإدارة النظام بأكمله والتحكم فيه، بينما تقوم العقدة العاملة بالتنفيذ containers والتطبيقات.

  2. Pods: الكبسولة هي أصغر وحدة قابلة للنشر في Kubernetes. يمكن أن تحتوي الكبسولة على واحد أو أكثر containers ، ولكنها تشترك في نفس مساحة تخزين الشبكة ودورة الحياة. وهذا يسهل التواصل بين containers داخل الكبسولة.

  3. Controller: وحدات التحكم هي المكونات التي تدير وتحافظ على النسخ المتماثلة لملفات pods. تتضمن أنواع وحدات التحكم ReplicaSet(التأكد من العدد الصحيح pods وإعادة التشغيل إذا لزم الأمر)، والنشر(إدارة إصدارات وتحديثات التطبيقات)، وStatefulSet(لنشر التطبيقات ذات الحالة).

  4. Service: الخدمات هي آلية لموازنة التحميل وتوزيع حركة المرور إلى pods. تسهل الخدمات على التطبيقات الوصول إليها pods دون الحاجة إلى معرفة مواقعها المحددة.

  5. Kubelet و Kube Proxy: Kubelet هو مكون يعمل على كل عقدة عاملة، وهو المسؤول عن الإدارة pods على تلك العقدة. Kube Proxy هو وكيل شبكة للاتصال بـ pods.

ونتيجة لذلك، Kubernetes يتم أتمتة نشر وإدارة التطبيقات المعبأة في حاويات، مما يقلل الوقت والجهد اللازمين لصيانة الأنظمة المعقدة.