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

Scaling و Quotas و Upgrades

النوعماذا يزيد؟
Horizontal Pod Autoscalerعدد Pods
Vertical Pod Autoscalerrequests/limits للـ Pods
Cluster Autoscalerعدد Nodes

ResourceQuota يحدد سقفا للموارد داخل Namespace.

apiVersion: v1
kind: ResourceQuota
metadata:
name: dev-quota
spec:
hard:
requests.cpu: "2"
requests.memory: 4Gi
limits.cpu: "4"
limits.memory: 8Gi
pods: "20"

LimitRange يضع قيم افتراضية أو حدودا لكل Container داخل Namespace.

apiVersion: v1
kind: LimitRange
metadata:
name: defaults
spec:
limits:
- type: Container
defaultRequest:
cpu: 100m
memory: 128Mi
default:
cpu: 500m
memory: 512Mi

تحديث Kubernetes يجب أن يكون مخططا:

  • اقرأ release notes.
  • حدث بيئة staging أولا.
  • تأكد من توافق add-ons مثل CNI و CSI و Ingress.
  • استخدم PodDisruptionBudget للتطبيقات المهمة.
  • لا تحدث كل شيء مرة واحدة بدون خطة rollback.

Lab: Namespace بحدود موارد

المستوى: مبتدئ الوقت: 35 دقيقة الأدوات: kubectl

الهدف: إضافة ResourceQuota و LimitRange وتجربة إنشاء Deployment.

  1. أنشئ Namespace جديد.
  2. طبق ResourceQuota.
  3. طبق LimitRange.
  4. أنشئ Deployment بدون resources وشاهد القيم الافتراضية.
  5. حاول تجاوز quota ولاحظ الخطأ.