ما هو Kubernetes؟
المشكلة قبل Kubernetes
Section titled “المشكلة قبل Kubernetes”تخيل عندك تطبيق Backend يعمل داخل Container. في البداية تشغله على سيرفر واحد. بعد فترة تظهر مشاكل:
- ماذا يحدث لو وقع التطبيق؟
- كيف تشغل أكثر من نسخة؟
- كيف تحدث التطبيق بدون توقف؟
- كيف تجعل الخدمات تتواصل مع بعضها؟
- كيف تدير الإعدادات وكلمات السر؟
- كيف تعرف أن التطبيق يستهلك CPU أو Memory أكثر من اللازم؟
Kubernetes ظهر ليحل هذه المشاكل على مستوى كبير ومنظم.
مثال بسيط
Section titled “مثال بسيط”بدون Kubernetes:
docker run -d -p 8080:80 nginxهذا يشغل Container واحد. لو وقع السيرفر أو توقف Container، أنت تحتاج تتدخل.
مع Kubernetes:
apiVersion: apps/v1kind: Deploymentmetadata: name: webspec: replicas: 3 selector: matchLabels: app: web template: metadata: labels: app: web spec: containers: - name: nginx image: nginx:1.27هنا أنت تصف الحالة المطلوبة: 3 نسخ من Nginx. Kubernetes يتولى تشغيلها ومراقبتها.
أهم فكرة: Desired State
Section titled “أهم فكرة: Desired State”في Kubernetes أنت تكتب الحالة التي تريدها، وليس خطوات التنفيذ التفصيلية.
مثلا:
- أريد 3 Pods.
- أريد Service ثابت للوصول لهم.
- أريد Memory limit.
- أريد Secret فيه كلمة مرور.
Kubernetes يقارن الواقع بالحالة المطلوبة ويصلح الفرق.
متى لا تحتاج Kubernetes؟
Section titled “متى لا تحتاج Kubernetes؟”لو عندك مشروع صغير جدا يعمل على سيرفر واحد ولا يحتاج Scaling أو فريق أو تحديثات متكررة، قد يكون Kubernetes زائد عن الحاجة. لكنه مهم جدا عندما تدخل في تطبيقات متعددة، Microservices، فرق عمل، CI/CD، وبيئات Production.