دوستان و همراهان عزیز ، سرور اختصاصی مترجم فراز نتورک راه اندازی شد ، با توجه به api تخصصی خریداری شده برای سرور ، یه ترجمه حرفه ای تولید کرده و در اختیار شما بزرگواران قرار می دهیم

دانلود کتاب آموزشی Certified Kubernetes Application Developer (CKAD)

دسته‌بندی: برچسب: تاریخ به روز رسانی: 8 تیر 1405 تعداد بازدید: 761 بازدید

۶۰۰,۰۰۰تومان

torobpay
هر قسط با ترب‌پی: ۱۵۰,۰۰۰تومان
۴ قسط ماهانه. بدون سود، چک و ضامن.
snapppay
هر قسط با اسنپ‌پی: ۱۵۰,۰۰۰تومان
۴ قسط ماهانه. بدون سود، چک و ضامن.

دوره Certified Kubernetes Application Developer (CKAD) به طور خاص برای توسعه‌دهندگانی طراحی شده است که می‌خواهند مهارت‌های خود را در زمینه طراحی، ساخت، و مدیریت برنامه‌های کاربردی در Kubernetes بهبود بخشند. این دوره شامل مفاهیم کلیدی، ابزارها و روش‌های موردنیاز برای کار با Kubernetes و توسعه برنامه‌های قابل اعتماد و مقیاس‌پذیر است.

بخش 1. مبانی Kubernetes

فصل 1. معرفی Kubernetes و معماری آن

  • تاریخچه Kubernetes و منشأ آن (Google و CNCF)
  • مفهوم orchestration در مدیریت کانتینرها
  • مزایا و کاربردهای Kubernetes در دنیای Cloud-Native

فصل 2. درک نقش و عملکرد Master Node و Worker Nodes

  • تفاوت میان Master Node و Worker Node
  • وظایف Master Node در مدیریت کلاستر
  • وظایف Worker Node در اجرای Pods
  • بررسی فرآیند هماهنگی میان این نودها

فصل 3. آشنایی با اجزای اصلی Kubernetes

  • API Server
  • نقش API Server به عنوان دروازه اصلی ارتباط کاربران با کلاستر
  • تعامل API Server با سایر اجزای کلاستر
  • etcd
  • معرفی پایگاه داده توزیع شده etcd
  • ذخیره‌سازی وضعیت کلی کلاستر در etcd
  • Controller Manager
  • مدیریت کنترلرها برای اجرای منابع Kubernetes
  • انواع کنترلرها: ReplicaSet Controller، Node Controller، Endpoint Controller
  • Scheduler
  • وظیفه Scheduler در تخصیص منابع به Pods
  • معیارهای انتخاب نود مناسب برای اجرای یک Pod
  • Kubelet
  • مسئول اجرای کانتینرها روی Worker Node
  • بررسی سلامت Pods و گزارش‌دهی به Master Node
  • Kube-proxy
  • مدیریت شبکه داخلی میان Pods و Nodes
  • نقش در forwarding و load balancing ترافیک

فصل 4. آشنایی با مفهوم Namespaces و مدیریت آن‌ها

  • تعریف Namespace در Kubernetes
  • مزایای استفاده از Namespaces برای جداسازی منابع
  • دستورات kubectl برای مدیریت Namespaces:
  • ایجاد (kubectl create namespace)
  • حذف (kubectl delete namespace)
  • مشاهده (kubectl get namespaces)
  • استفاده از Contexts برای مدیریت Namespaces

بخش 2. طراحی و پیاده‌سازی برنامه‌های کاربردی

فصل 1. ایجاد و مدیریت Pods

  • تعریف مفهوم Pod به عنوان کوچک‌ترین واحد قابل مدیریت در Kubernetes.
  • ایجاد یک Pod با استفاده از فایل YAML.
  • بررسی وضعیت یک Pod با استفاده از دستورات kubectl get pods و kubectl describe pod.
  • مدیریت Pods: حذف، به‌روزرسانی و بررسی وضعیت.

فصل 2. کار با Multi-Container Pods

  • معرفی Pods چند کانتینری و مزایای آن‌ها.
  • پیاده‌سازی الگوهای طراحی مانند:
  • Sidecar Pattern (کانتینر کمکی برای logging، monitoring، و غیره).
  • Ambassador Pattern (کانتینر برای پروکسی و ارتباطات خارجی).
  • Adapter Pattern (کانتینر برای تبدیل داده‌ها یا فرمت‌ها).
  • تعریف و ایجاد Multi-Container Pods با YAML.

فصل 3. استفاده از Init Containers

  • مفهوم و مزایای Init Containers.
  • استفاده از Init Containers برای آماده‌سازی محیط قبل از اجرای کانتینر اصلی.
  • پیاده‌سازی Init Containers در فایل‌های YAML و مثال‌های کاربردی.

فصل 4. کار با ReplicaSets و Deployments

  • مفهوم ReplicaSets و اهمیت آن در مقیاس‌پذیری و در دسترس بودن.
  • پیاده‌سازی Deployments برای مدیریت بهینه نسخه‌ها و مقیاس‌پذیری.
  • ایجاد و مدیریت Deployments با فایل YAML.
  • به‌روزرسانی تعداد Replicas با استفاده از kubectl scale.

فصل 5. به‌روزرسانی و Rollback برنامه‌ها

  • اصول Rolling Updates برای به‌روزرسانی بدون قطعی برنامه‌ها.
  • انجام Rollback به نسخه قبلی با استفاده از kubectl rollout undo.
  • بررسی تاریخچه Deployment‌ها با استفاده از kubectl rollout history.

فصل 6. تعریف و مدیریت Jobs و Cron Jobs

  • معرفی Jobs برای اجرای وظایف یک‌باره و مدیریت تکرار آن‌ها.
  • ایجاد و مدیریت Jobs با استفاده از فایل YAML.
  • معرفی Cron Jobs برای زمان‌بندی وظایف.
  • تعریف Cron Jobs با مثال‌های کاربردی در YAML.

فصل 7. استفاده از ConfigMaps و Secrets

  • تعریف ConfigMaps و کاربرد آن در جداسازی پیکربندی از کد برنامه.
  • ایجاد و استفاده از ConfigMaps برای ذخیره پیکربندی‌های غیرحساس.
  • تعریف Secrets برای مدیریت اطلاعات حساس مانند رمزعبور و کلیدها.
  • اتصال ConfigMaps و Secrets به کانتینرها به عنوان:
  • متغیرهای محیطی.
  • فایل‌های Mount شده.

بخش 3. مدیریت Networking و Services

فصل 1. مفاهیم پایه شبکه در Kubernetes

  • درک اصول شبکه در Kubernetes
  • Cluster Networking Model:
  • نحوه ارتباط بین Pods
  • استفاده از CNI (Container Network Interface)
  • درک Pod-to-Pod Communication
  • IP یکتا برای هر Pod
  • نحوه تخصیص IP در Kubernetes
  • مفاهیم Kube-proxy و نقش آن در شبکه

فصل 2. معرفی و پیکربندی انواع Services

  • ClusterIP Service:
  • معرفی و کاربرد
  • نحوه ایجاد و مدیریت یک ClusterIP Service
  • مثال عملی با YAML
  • NodePort Service:
  • نحوه عملکرد و کاربرد آن
  • محدودیت‌های NodePort
  • LoadBalancer Service:
  • معرفی Load Balancer و موارد استفاده
  • استفاده از سرویس‌های ابری (Cloud Providers) برای Load Balancer
  • External Name Service:
  • معرفی و استفاده برای DNS خارجی
  • نحوه انتخاب و مدیریت Service Selectors
  • درک Headless Services و کاربردهای آن

فصل 3. مدیریت Ingress

  • Ingress Controller:
  • معرفی و نحوه راه‌اندازی
  • تفاوت بین Load Balancer و Ingress
  • استفاده از Ingress Resources:
  • تعریف و پیکربندی
  • مدیریت درخواست‌های HTTP/HTTPS
  • استفاده از TLS برای امنیت بیشتر
  • مثال عملی: پیکربندی یک مسیر HTTP به چند Backend

فصل 4. DNS داخلی در Kubernetes

  • نقش CoreDNS در Kubernetes
  • درک DNS داخلی و نحوه دسترسی به سرویس‌ها
  • استفاده از FQDN (Fully Qualified Domain Name) برای Pods و Services
  • دیباگ و رفع مشکلات DNS در Kubernetes

فصل 5. مدیریت Traffic Routing

  • نحوه مدیریت ترافیک بین Pods و سرویس‌ها
  • استفاده از Session Affinity
  • استفاده از Service Annotations برای کنترل رفتار ترافیک
  • مدیریت ترافیک بین نسخه‌های مختلف برنامه‌ها با استفاده از Canary Deployments

فصل 6. Network Policies در Kubernetes

  • تعریف و کاربرد Network Policies
  • محدود سازی ترافیک ورودی و خروجی Pods
  • مثال: ایجاد یک Network Policy برای محدود سازی دسترسی به یک Pod
  • ابزارهای دیباگ و بررسی Network Policies

فصل 7. ابزارها و دستورات برای مدیریت شبکه

  • استفاده از kubectl port-forward برای دسترسی به Pods از خارج از Cluster
  • دیباگ مشکلات شبکه با دستورات:
  • kubectl get services
  • kubectl describe services
  • kubectl get endpoints
  • استفاده از ابزارهای خارجی مانند K9s و Lens

بخش 4. حجم‌ها و ذخیره‌سازی داده‌ها

فصل 1. مفاهیم پایه‌ای Volume در Kubernetes

  • معرفی مفهوم Volume
  • چرا و چگونه Volume‌ها در Kubernetes استفاده می‌شوند؟
  • تفاوت بین Volumeهای موقت و دائمی
  • نقش Volume در مدیریت داده‌های Stateful و Stateless

فصل 2. انواع Volume‌ها و کاربردهای آنها

  • EmptyDir:
  • حجم موقتی برای ذخیره داده در طول عمر یک Pod
  • کاربردها و محدودیت‌ها
  • HostPath:
  • دسترسی مستقیم به فایل‌ها و پوشه‌های موجود در Host Node
  • ریسک‌ها و چالش‌های امنیتی
  • ConfigMap و Secret به‌عنوان Volume:
  • استفاده از ConfigMap و Secret به‌عنوان منابع پیکربندی و داده‌های حساس
  • PersistentVolume (PV):
  • تعریف و کاربرد Persistent Volume
  • نحوه استفاده در محیط‌های Cloud و On-Premises
  • PersistentVolumeClaim (PVC):
  • نحوه درخواست و استفاده از فضای ذخیره‌سازی
  • اتصال PVC به Podها

فصل 3. مدیریت ذخیره‌سازی پویا

  • معرفی مفهوم Storage Class
  • نقش Storage Class در مدیریت ذخیره‌سازی پویا
  • انواع Storage Class در ارائه‌دهندگان Cloud (مانند AWS EBS، GCP PD، Azure Disk)
  • تعریف و تنظیم Storage Class در فایل YAML

فصل 4. StatefulSets و مدیریت داده‌های پایدار

  • معرفی StatefulSets و تفاوت آن با Deployments
  • کاربرد StatefulSets برای برنامه‌های پایدار
  • ایجاد Volume برای هر Replica در StatefulSets
  • استفاده از PersistentVolume برای StatefulSets

فصل 5. Lifecycle مدیریت Volume‌ها

  • مدیریت ایجاد و حذف Volume‌ها
  • بررسی گزینه‌های Retain، Delete، و Recycle برای PV
  • نحوه اطمینان از عدم از دست رفتن داده‌ها هنگام حذف Pod یا Node

فصل 6. Volume Mounts و SubPath

  • تعریف Volume Mounts
  • استفاده از SubPath برای محدود کردن دسترسی به بخشی از Volume
  • سناریوهای استفاده از SubPath در پروژه‌ها

فصل 7. Volumeهای شبکه‌ای

  • معرفی Volumeهای شبکه‌ای مانند NFS و Ceph
  • تنظیم و پیکربندی NFS Volume در Kubernetes
  • استفاده از Volumeهای شبکه‌ای در محیط‌های Multi-Node

فصل 8. استفاده از CSI (Container Storage Interface)

  • معرفی استاندارد CSI
  • نحوه کار CSI و مزایای آن
  • پیکربندی CSI در محیط‌های Kubernetes

فصل 9. نکات پیشرفته در مدیریت ذخیره‌سازی

  • اعمال Resource Requests و Limits برای ذخیره‌سازی
  • Debugging و عیب‌یابی مشکلات ذخیره‌سازی
  • استفاده از ابزارهای مانیتورینگ برای حجم‌ها (مانند Prometheus)

بخش 5. مبانی امنیت در Kubernetes

فصل 1. مدیریت Service Accounts و RBAC (Role-Based Access Control)

Service Accounts:

  • تعریف و استفاده از Service Accounts برای Pods.
  • ایجاد و مدیریت Service Accounts جدید.
  • پیکربندی Pod‌ها برای استفاده از Service Accounts خاص.
  • Role-Based Access Control (RBAC):
  • تعریف مفاهیم Role و ClusterRole.
  • ایجاد و مدیریت RoleBinding و ClusterRoleBinding.
  • محدودسازی دسترسی کاربران و منابع Kubernetes.
  • بررسی دسترسی کاربران با استفاده از دستورات kubectl auth can-i.

فصل 2. استفاده از Security Context برای Pods و کانتینرها

  • SecurityContext:
  • تعریف و تنظیم Security Context در سطح Pod.
  • محدود سازی دسترسی‌های سیستم فایل (ReadOnlyRootFilesystem).
  • اجرای کانتینرها با کاربرهای غیر ریشه (Non-Root Users).
  • تنظیم قابلیت‌های Linux (Linux Capabilities) برای محدود سازی دسترسی.
  • Pod Security Standards (PSS):
  • معرفی استانداردهای امنیتی Pod.
  • استفاده از PodSecurityPolicy (Deprecated) و جایگزین‌های آن.

فصل 3. پیکربندی و استفاده از Network Policies

  • Network Policies:
  • تعریف Network Policies برای محدود کردن ترافیک ورودی و خروجی.
  • پیکربندی قوانین ترافیک بین Pods.
  • استفاده از Labels برای مدیریت ترافیک شبکه.
  • نمونه‌سازی یک Network Policy برای مسدود کردن ترافیک غیرمجاز.

فصل 4. ذخیره‌سازی امن اطلاعات حساس با Secrets

  • Secrets در Kubernetes:
  • تعریف و انواع Secrets: Generic و Docker Registry.
  • ذخیره‌سازی اطلاعات حساس مانند رمز عبور، توکن و گواهینامه‌ها.
  • استفاده از Secrets در Pods و کانتینرها.
  • دسترسی به Secrets از طریق Volume و محیط متغیر (Environment Variables).
  • امنیت Secrets:
  • استفاده از رمزنگاری در سطح ذخیره‌سازی (Encryption at Rest).
  • محدودسازی دسترسی به Secrets با RBAC.
  • چرخش (Rotation) و مدیریت دوره‌ای Secrets.

فصل 5. حفاظت از Cluster و منابع

  • Admission Controllers:
  • آشنایی با Admission Controllers مانند PodSecurityAdmission و ImagePolicyWebhook.
  • پیکربندی Admission Controllers برای افزایش امنیت.
  • Image Security:
  • استفاده از تصاویر معتبر و امن.
  • امضای تصاویر کانتینرها (Container Image Signing).
  • محدودسازی دسترسی به Registry‌های خارجی.
  • Resource Quotas:
  • تعریف Resource Quotas برای جلوگیری از مصرف بیش از حد منابع.
  • مدیریت دسترسی تیم‌ها به منابع مشخص.

فصل 6. مدیریت گواهینامه‌ها و TLS

  • TLS/SSL در Kubernetes:
  • پیکربندی TLS برای ارتباطات بین سرویس‌ها.
  • ایجاد و مدیریت گواهینامه‌های TLS.
  • Cert Manager:
  • استفاده از Cert Manager برای مدیریت خودکار گواهینامه‌ها.
  • صدور و تمدید خودکار گواهینامه‌های SSL.

فصل 7. شناسایی و رفع آسیب‌پذیری‌ها

  • آسیب‌پذیری‌های رایج در Kubernetes:
  • بررسی حملات رایج مانند Privilege Escalation و Data Exfiltration.
  • ابزارهای شناسایی آسیب‌پذیری:
  • استفاده از ابزارهای امنیتی مانند Trivy و Kube-bench.
  • اسکن Cluster برای شناسایی تنظیمات ناامن.
  • Patch Management:
  • به‌روزرسانی مداوم Cluster و اجزای آن برای جلوگیری از سوءاستفاده.

بخش 6. نظارت و Debugging در Kubernetes

فصل 1. مشاهده و بررسی لاگ‌ها

  • دستور kubectl logs:
  • مشاهده لاگ‌های یک Pod.
  • بررسی لاگ‌های یک کانتینر خاص در Pod‌های چند کانتینری.
  • استفاده از پارامتر -f برای مشاهده بلادرنگ لاگ‌ها (Follow Mode).
  • مدیریت حجم بالای لاگ‌ها:
  • فیلتر کردن لاگ‌ها با ابزارهایی مانند grep.
  • ذخیره لاگ‌ها برای تحلیل‌های بعدی.

فصل 2. بررسی وضعیت منابع با دستورات اصلی

  • دستور kubectl describe:
  • دریافت اطلاعات جزئی در مورد Pod‌ها، Deployment‌ها، و سایر منابع.
  • مشاهده وقایع مرتبط (Events) برای هر منبع.
  • دستور kubectl get:
  • مشاهده وضعیت کلی منابع Kubernetes.
  • استفاده از فرمت‌های خروجی مانند o- yaml یا o- json برای تحلیل دقیق‌تر.
  • دستور kubectl top:
  • مشاهده مصرف CPU و حافظه Pod‌ها و Node‌ها.
  • شناسایی منابعی که بیشترین بار را دارند.

فصل 3. عیب‌یابی Pods و کانتینرها

  • دستور kubectl exec:
  • دسترسی به ترمینال کانتینرها برای اجرای دستورات مستقیم.
  • بررسی وضعیت درون کانتینر (مثل فایل‌ها، پیکربندی‌ها، و سرویس‌ها).
  • دستور kubectl port-forward:
  • ایجاد تونل برای دسترسی به برنامه‌های داخل یک Pod.
  • Debug کردن سرویس‌ها در محیط توسعه.
  • بررسی وضعیت Pod:
  • شناسایی دلایل خرابی (CrashLoopBackOff، ImagePullBackOff، و غیره).
  • بررسی وضعیت Liveness و Readiness Probes.

فصل 4. مدیریت Events و رویدادها

  • دستور kubectl get events:
  • مشاهده رویدادهای اخیر مرتبط با منابع.
  • تشخیص مشکلات شبکه، محدودیت منابع، یا خطاهای مرتبط با زمان‌بندی (Scheduling).
  • تحلیل وقایع:
  • مرتب‌سازی وقایع بر اساس زمان یا نوع رویداد.
  • استفاده از ابزارهای خارجی برای ثبت و تحلیل وقایع.

فصل 5. رفع مشکلات ارتباطات شبکه

  • بررسی Network Policies:
  • شناسایی محدودیت‌های شبکه با بررسی تنظیمات Network Policy.
  • بررسی سرویس‌ها و DNS:
  • تست ارتباطات بین Pod‌ها و سرویس‌ها.
  • استفاده از ابزارهایی مانند nslookup یا dig برای بررسی مشکلات DNS.
  • دستور kubectl proxy:
  • راه‌اندازی پروکسی برای دسترسی به سرویس‌های داخلی.

فصل 6. استفاده از ابزارهای داخلی و خارجی

  • ابزارهای داخلی Kubernetes:
  • استفاده از Dashboard برای نظارت گرافیکی.
  • ابزارهای داخلی مانند kubectl debug (در نسخه‌های جدید).
  • ابزارهای خارجی برای مانیتورینگ:
  • استفاده از Prometheus و Grafana برای نظارت دقیق منابع.
  • ELK Stack برای مدیریت و تحلیل لاگ‌ها.
  • ابزارهای دیگر مانند Fluentd، Datadog، یا New Relic.

فصل 7. بررسی وضعیت سلامت (Health)

  • Liveness و Readiness Probes:
  • بررسی کانفیگ Probe‌ها برای تشخیص مشکلات.
  • بهینه‌سازی زمان‌بندی و حساسیت پروب‌ها.
  • مدیریت Restart Policy:
  • تنظیم و تحلیل Restart Policy‌ها برای Pods.

فصل 8. مدیریت فضای دیسک و ذخیره‌سازی

  • بررسی مشکلات مربوط به Volumes:
  • شناسایی مشکلات Mount یا دسترسی به Persistent Volume‌ها.
  • دستور kubectl df-pv:
  • مشاهده مصرف فضای PV‌ها.

فصل 9. عیب‌یابی Image و کانتینرها

  • مشکلات Image:
  • بررسی مشکلات Pull Image (مانند خطاهای ImagePullBackOff).
  • استفاده از Registry‌های خصوصی با Secret‌ها.
  • Debugging کانتینرها:
  • استفاده از ابزارهای داخل کانتینر مانند curl یا ping برای تست ارتباطات.

بخش 7. ابزارها و دستورات Kubernetes

فصل 1. مدیریت منابع با kubectl

  • نحوه نصب و پیکربندی ابزار kubectl
  • ایجاد منابع:
  • استفاده از kubectl create برای ایجاد منابع (مثل Pods، Services، Deployments)
  • ساخت منابع از فایل‌های YAML
  • اعمال تغییرات:
  • استفاده از kubectl apply برای به‌روزرسانی منابع
  • مقایسه تغییرات با kubectl diff
  • حذف منابع:
  • استفاده از kubectl delete برای حذف منابع با نام یا نوع مشخص
  • حذف منابع از فایل‌های YAML

فصل 2. مشاهده و مدیریت منابع

  • فهرست منابع:
  • استفاده از kubectl get برای مشاهده منابع مختلف (Pods، Nodes، Deployments و …)
  • فیلتر کردن خروجی‌ها با -o (مانند o- json یا o- wide )
  • توضیحات منابع:
  • استفاده از kubectl describe برای مشاهده جزئیات منابع
  • نظارت بر منابع:
  • استفاده از kubectl top برای مشاهده مصرف منابع (CPU و Memory)

فصل 3. مدیریت Namespace‌ها

  • مشاهده Namespace‌های موجود با kubectl get namespaces
  • تغییر Namespace پیش‌فرض با kubectl config set-context
  • ایجاد و حذف Namespace‌ها

فصل 4. بررسی و Debugging

  • بررسی وضعیت Pods با kubectl logs
  • مشاهده لاگ‌های همه کانتینرها با –all-containers
  • استفاده از kubectl exec برای اجرای دستورات در داخل کانتینرها
  • مشاهده وقایع (Events) با kubectl get events
  • بررسی مشکلات منابع با kubectl describe

فصل 5. مدیریت فایل‌های YAML

  • ایجاد فایل‌های YAML برای منابع Kubernetes
  • خواندن و ویرایش منابع از فایل‌های YAML:
  • استفاده از kubectl edit برای ویرایش مستقیم منابع
  • اعمال تغییرات با kubectl apply -f <file>
  • بررسی وضعیت منابع تعریف‌شده در YAML با kubectl get -f <file>

فصل 6. مدیریت Context‌ها و Cluster‌ها

  • مشاهده Context‌های موجود با kubectl config get-contexts
  • تغییر Context پیش‌فرض با kubectl config use-context <name>
  • اضافه کردن Cluster جدید به تنظیمات kubectl

فصل 7. دستورات پیشرفته و خودکارسازی

  • Labeling و Annotating:
  • افزودن Label به منابع با kubectl label
  • افزودن Annotation به منابع با kubectl annotate
  • Patch کردن منابع:
  • اعمال تغییرات جزئی با kubectl patch
  • Export منابع:
  • استفاده از kubectl get <resource> -o yaml برای استخراج تعریف YAML
  • آزمایش و تست منابع:
  • تست فایل‌های YAML با kubectl dry-run و kubectl validate

فصل 8. دستورات متداول برای Scaling

  • تغییر تعداد Replicas با kubectl scale:
  • مدیریت Auto-scaling با kubectl autoscale:

فصل 9. مدیریت ConfigMaps و Secrets

  • ایجاد ConfigMaps
  • ایجاد Secrets

فصل 10. استفاده از kubectl برای مانیتورینگ

  • مشاهده وضعیت Health منابع با kubectl get pods –show-labels
  • مشاهده Node‌ها و وضعیت‌شان با kubectl get nodes
  • نمایش وضعیت منابع با kubectl describe nodes

بخش 8. طراحی برنامه‌های Cloud-Native

فصل 1. اصول Cloud-Native Development

  • آشنایی با مفهوم Cloud-Native و کاربرد آن در توسعه برنامه‌ها
  • درک معماری مبتنی بر میکروسرویس‌ها (Microservices Architecture)
  • مدیریت حالت بی‌حالت (Stateless) و حالت‌دار (Stateful) در برنامه‌ها
  • مزایا و چالش‌های طراحی برنامه‌های Cloud-Native:
  • تحمل خطا (Fault Tolerance)
  • مقیاس‌پذیری (Scalability)
  • خودکارسازی (Automation)
  • پویایی در محیط ابری

فصل 2. مدیریت مقیاس‌پذیری برنامه‌ها

  • تعریف و اهمیت مقیاس‌پذیری افقی و عمودی (Horizontal & Vertical Scaling)
  • آشنایی با Horizontal Pod Autoscaler (HPA):
  • نحوه پیکربندی و استفاده از HPA
  • تنظیم مقیاس‌پذیری بر اساس معیارهایی مانند CPU و Memory
  • مدیریت منابع در Kubernetes:
  • تنظیم Resource Requests (درخواست منابع)
  • تنظیم Resource Limits (محدودیت منابع)
  • جلوگیری از Overcommit منابع

فصل 3. طراحی برای تحمل خطا (Fault Tolerance)

  • مفاهیم تحمل خطا در برنامه‌های توزیع‌شده
  • پیکربندی برنامه‌ها برای بازیابی خودکار (Self-Healing):
  • استفاده از Probes (Liveness و Readiness)
  • کاربرد Restart Policies
  • طراحی برنامه‌ها برای بازیابی از خرابی (Failover)

فصل 4. استفاده از Config Maps و Secrets

  • مدیریت متغیرهای محیطی با Config Maps
  • ذخیره‌سازی امن اطلاعات حساس (مانند رمزهای عبور) با Secrets
  • بهترین روش‌ها در استفاده از Config Maps و Secrets در برنامه‌های Cloud-Native

فصل 5. مدیریت ترافیک و Networking

  • مدیریت Networking بین سرویس‌ها:
  • استفاده از Services (ClusterIP ، NodePort، LoadBalancer)
  • آشنایی با Ingress برای مدیریت درخواست‌های HTTP/HTTPS
  • استفاده از Network Policies برای محدود سازی ترافیک شبکه
  • پیکربندی DNS داخلی Kubernetes

فصل 6. طراحی برای مقیاس‌پذیری بالا (High Availability)

  • طراحی سیستم‌هایی با مقیاس‌پذیری بالا:
  • استفاده از ReplicaSets و Deployments
  • توزیع بار با استفاده از Load Balancer
  • درک توزیع بار و توزیع منطقی Pods در Nodeها

فصل 7. مدیریت Logging و Monitoring

  • جمع‌آوری و مدیریت لاگ‌ها در برنامه‌های Cloud-Native
  • استفاده از ابزارهای مانیتورینگ مانند Prometheus و Grafana
  • بهترین روش‌ها برای بررسی سلامت و کارایی سیستم

فصل 8. بهینه‌سازی هزینه‌ها در Kubernetes

  • کاهش هزینه‌های منابع با تنظیم Resource Requests و Limits
  • شناسایی و مدیریت منابع بلا استفاده
  • استفاده از Auto-Scaling برای بهینه‌سازی استفاده از منابع

فصل 9. طراحی برنامه‌ها برای CI/CD در Kubernetes

  • ادغام CI/CD با Kubernetes:
  • آشنایی با ابزارهای CI/CD مانند Jenkins، GitLab CI/CD و ArgoCD
  • استفاده از Helm Charts برای مدیریت Deploymentها
  • مدیریت Rolloutها و Rollbackها به‌صورت خودکار

فصل 10. امنیت در طراحی برنامه‌های Cloud-Native

  • پیاده‌سازی امنیت در سطح Pod با SecurityContext
  • استفاده از RBAC (Role-Based Access Control) برای مدیریت دسترسی‌ها
  • استفاده از Network Policies برای محدود کردن دسترسی‌ها

پیش‌نیازهای شرکت در دوره

  • آشنایی اولیه با مفاهیم کانتینرها و Docker
  • آشنایی با مفاهیم شبکه و مدیریت منابع
  • تجربه در کار با فایل‌های YAML و command-line interface

جمع‌بندی

دوره CKAD به شما کمک می‌کند تا مهارت‌های لازم برای توسعه و مدیریت برنامه‌های کاربردی در Kubernetes را به دست آورید. این دوره برای کسانی که قصد دارند در محیط‌های حرفه‌ای Cloud-Native فعالیت کنند و دانش خود را در Kubernetes اثبات کنند، بسیار مفید است.

نقد و بررسی‌ها

نقد و بررسی وجود ندارد.

فقط مشتریانی که وارد سیستم شده اند و این محصول را خریداری کرده اند می توانند نظر بدهند.

سبد خرید

مجموع: ۴۹,۸۳۰,۰۰۰تومان

مشاهده سبد خریدتسویه حساب

ورود به سایت