توسعة التطبيقات وإصلاحها ذاتيًا
نفّذوا استراتيجيات التوسعة الأساسية لعمليات النشر، وتعرّفوا على كيفية ضمان Kubernetes لتوافر التطبيقات ومرونتها.
توسعة التطبيقات وإصلاحها ذاتيًا درس مجاني في Docker & Kubernetes for Developers على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Docker & Kubernetes for Developers، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Docker & Kubernetes for Developers 4 دروس في المجموع.
بعض أجزاء هذا الدرس لم تُترجم بعد وتظهر باللغة الإنجليزية.
Scaling & Self-Healing Intro
Welcome! In this lesson, we'll dive into making your applications robust and responsive using Kubernetes.
We'll explore how to scale your apps to handle varying loads and how Kubernetes enables self-healing to recover from failures automatically. These are crucial for reliable, high-availability services.
Why Scaling Matters
Scaling an application means adjusting its capacity to meet demand. Imagine a sudden surge in users for your online store—without scaling, your app might slow down or crash.
- Handle Traffic: Distribute load across multiple instances.
- Improve Performance: Maintain responsiveness under heavy use.
- Boost Availability: If one instance fails, others can take over.
Scaling with Deployments
In Kubernetes, Deployments are key to scaling. They manage a set of identical pods, ensuring a desired number of replicas are always running.
You can manually scale a Deployment by changing its replicas field. For example, to scale an app named my-app to 3 pods:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-app-deployment
spec:
replicas: 3
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: my-app
image: nginx:latest
ports:
- containerPort: 80Introducing Horizontal Pod Autoscaler
While manual scaling works, it's not ideal for dynamic workloads. This is where the Horizontal Pod Autoscaler (HPA) comes in!
HPA automatically adjusts the number of pods in a Deployment (or StatefulSet) based on observed metrics like CPU utilization or custom metrics.
Configuring an HPA
An HPA resource defines the target for your application's scaling. It monitors metrics and increases or decreases pod replicas within defined minimum and maximum limits.
Here's a basic HPA manifest that targets 50% CPU utilization:
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: my-app-hpa
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: my-app-deployment
minReplicas: 1
maxReplicas: 5
metrics:
- type: Resource
resource:
name: cpu
target:
type: Utilization
averageUtilization: 50What is Self-Healing?
Beyond scaling, Kubernetes also excels at self-healing. This means it can automatically detect and recover from application failures without human intervention.
If a pod crashes, becomes unresponsive, or gets terminated, Kubernetes' controllers (like the Deployment controller) will work to replace it and restore the desired state.
Liveness Probes: Are You Alive?
Liveness probes tell Kubernetes if your application inside a container is still running and healthy. If a liveness probe fails, Kubernetes will restart the container.
This is crucial for apps that might deadlock or become unresponsive but aren't technically 'crashed'.
apiVersion: apps/v1
kind: Deployment
metadata:
name: liveness-demo
spec:
replicas: 1
selector:
matchLabels:
app: liveness-app
template:
metadata:
labels:
app: liveness-app
spec:
containers:
- name: liveness-container
image: busybox
args:
- /bin/sh
- -c
- touch /tmp/healthy; sleep 30; rm -f /tmp/healthy; sleep 600
livenessProbe:
exec:
command:
- cat
- /tmp/healthy
initialDelaySeconds: 5
periodSeconds: 5Readiness Probes: Ready for Traffic?
Readiness probes tell Kubernetes if your application is ready to serve network traffic. If a readiness probe fails, Kubernetes stops sending traffic to that pod.
This prevents new requests from going to a pod that's still starting up, loading data, or temporarily unhealthy.
apiVersion: apps/v1
kind: Deployment
metadata:
name: readiness-demo
spec:
replicas: 1
selector:
matchLabels:
app: readiness-app
template:
metadata:
labels:
app: readiness-app
spec:
containers:
- name: readiness-container
image: nginx:latest
ports:
- containerPort: 80
readinessProbe:
httpGet:
path: /index.html
port: 80
initialDelaySeconds: 5
periodSeconds: 5Scaling & Healing Synergy
HPA, Liveness, and Readiness probes work together to make your applications highly available and resilient.
- HPA handles varying load by adjusting replicas.
- Liveness probes ensure containers are restarted if they become unresponsive.
- Readiness probes ensure traffic only goes to fully operational pods.
This combined approach significantly improves application reliability in dynamic environments.
Quick Check
Which of the following statements about Kubernetes scaling and self-healing mechanisms are TRUE?
Recap & Next Steps
Great job! You've learned how Kubernetes helps your applications stay available and performant:
- Scaling: Adjusting capacity with Deployments and HPA.
- Self-Healing: Automatic recovery using Liveness and Readiness probes.
These powerful features are fundamental for building robust, cloud-native applications. Keep practicing to master them!
تعلم Docker & Kubernetes for Developers مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 12
- الدروس
- 48
الأسئلة الشائعة
هل درس «توسعة التطبيقات وإصلاحها ذاتيًا» مجاني؟
نعم — نص درس «توسعة التطبيقات وإصلاحها ذاتيًا» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Docker & Kubernetes for Developers، انتقل إلى CoddyKit PRO. تتضمن دورة Docker & Kubernetes for Developers 4 دروس في المجموع.
ماذا ستتعلم في «توسعة التطبيقات وإصلاحها ذاتيًا»؟
نفّذوا استراتيجيات التوسعة الأساسية لعمليات النشر، وتعرّفوا على كيفية ضمان Kubernetes لتوافر التطبيقات ومرونتها. تتمرن على Docker & Kubernetes for Developers مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Docker & Kubernetes for Developers؟
لا تُشترط خبرة سابقة. Docker & Kubernetes for Developers على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «توسعة التطبيقات وإصلاحها ذاتيًا»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Docker & Kubernetes for Developers هذا؟
نعم. كل درس في Docker & Kubernetes for Developers يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- فهم عمليات النشر في Kubernetes
- إتاحة التطبيقات باستخدام Services
- توسعة التطبيقات وإصلاحها ذاتيًا
- التحديثات التدريجية وعمليات التراجع