تخطَّ إلى المحتوى

ما هو Kubernetes؟

تخيل عندك تطبيق Backend يعمل داخل Container. في البداية تشغله على سيرفر واحد. بعد فترة تظهر مشاكل:

  • ماذا يحدث لو وقع التطبيق؟
  • كيف تشغل أكثر من نسخة؟
  • كيف تحدث التطبيق بدون توقف؟
  • كيف تجعل الخدمات تتواصل مع بعضها؟
  • كيف تدير الإعدادات وكلمات السر؟
  • كيف تعرف أن التطبيق يستهلك CPU أو Memory أكثر من اللازم؟

Kubernetes ظهر ليحل هذه المشاكل على مستوى كبير ومنظم.

بدون Kubernetes:

Terminal window
docker run -d -p 8080:80 nginx

هذا يشغل Container واحد. لو وقع السيرفر أو توقف Container، أنت تحتاج تتدخل.

مع Kubernetes:

apiVersion: apps/v1
kind: Deployment
metadata:
name: web
spec:
replicas: 3
selector:
matchLabels:
app: web
template:
metadata:
labels:
app: web
spec:
containers:
- name: nginx
image: nginx:1.27

هنا أنت تصف الحالة المطلوبة: 3 نسخ من Nginx. Kubernetes يتولى تشغيلها ومراقبتها.

في Kubernetes أنت تكتب الحالة التي تريدها، وليس خطوات التنفيذ التفصيلية.

مثلا:

  • أريد 3 Pods.
  • أريد Service ثابت للوصول لهم.
  • أريد Memory limit.
  • أريد Secret فيه كلمة مرور.

Kubernetes يقارن الواقع بالحالة المطلوبة ويصلح الفرق.

لو عندك مشروع صغير جدا يعمل على سيرفر واحد ولا يحتاج Scaling أو فريق أو تحديثات متكررة، قد يكون Kubernetes زائد عن الحاجة. لكنه مهم جدا عندما تدخل في تطبيقات متعددة، Microservices، فرق عمل، CI/CD، وبيئات Production.