بخش 5: برنامه‌ریزی و ارکستراسیون

 

فصل 1. Scheduler در Kubernetes

  • آشنایی با وظایف Scheduler
  • نحوه عملکرد Scheduler برای تخصیص Podها به Nodeها
  • بررسی معیارهای Scheduler برای انتخاب Node (مانند ظرفیت CPU و RAM)
  • سفارشی‌سازی Scheduler (Custom Scheduler)
  • محدودیت‌ها و خطاهای احتمالی در Scheduler

فصل 2. نحوه برنامه‌ریزی Podها

  • فرایند برنامه‌ریزی (Scheduling Process) در Kubernetes
  • مواردی که منجر به Pending شدن Podها می‌شود
  • حل مشکلات مربوط به Pending شدن Podها
  • بررسی ارتباط Node‌ها با Pod‌ها (NodeSelector)

فصل 3. Affinity و Anti-Affinity

  • مفهوم Affinity و Anti-Affinity
  • استفاده از Node Affinity (برای تخصیص Podها به Node خاص)
  • استفاده از Pod Affinity و Anti-Affinity (برای تنظیم ارتباط بین Podها)
  • تنظیم اولویت (Preferred) و اجبار (Required) در Affinity

فصل 4. کار با Taints و Tolerations

  • تعریف Taints (محدودیت روی Nodeها)
  • تعریف Tolerations (اجازه اجرای Podها روی Nodeهای خاص)
  • سناریوهای استفاده از Taints و Tolerations برای مدیریت منابع
  • حل تعارضات مربوط به Taints و Tolerations

فصل 5. مدیریت اسکیل و بهینه‌سازی منابع

  • افزایش مقیاس خودکار (Auto Scaling):
    • آشنایی با Horizontal Pod Autoscaler (HPA)
    • تنظیم معیارها برای HPA (مانند CPU، RAM، یا معیارهای سفارشی)
    • نحوه راه‌اندازی و مدیریت HPA
  • بهینه‌سازی منابع Podها:
    • آشنایی با Vertical Pod Autoscaler (VPA)
    • تنظیم و استفاده از VPA برای تغییر منابع موردنیاز Podها
  • Resource Quotas و LimitRanges:
    • تعریف Resource Quotas (محدودیت منابع برای Namespace)
    • تنظیم LimitRanges برای Podها
    • بررسی تاثیر Resource Quotas بر عملکرد کلاستر

فصل 6. Priority و Preemption

  • مفهوم Priority برای Podها
  • نحوه تعریف و استفاده از PriorityClass
  • استفاده از Preemption برای آزادسازی منابع و اجرای Podهای با اولویت بالا
  • مدیریت تداخلات در استفاده از Priority و Preemption

فصل 7. استراتژی‌های توزیع و ارکستراسیون

  • استراتژی‌های توزیع Podها بین Nodeها
  • استراتژی Rolling Updates (برای به‌روزرسانی بدون Downtime)
  • استراتژی Canary Deployments
  • استفاده از DaemonSets برای توزیع Podها روی تمام Nodeها

بخش 6: ذخیره‌سازی در Kubernetes

 

فصل 1. آشنایی با مفهوم ذخیره‌سازی در Kubernetes

  • تفاوت بین ذخیره‌سازی موقتی (Ephemeral Storage) و پایدار (Persistent Storage)
  • نحوه مدیریت داده‌ها در Kubernetes
  • چرایی استفاده از Persistent Volumes (PVs)

فصل 2. Volumes در Kubernetes

  • تعریف Volume و نحوه استفاده از آن
  • انواع Volumeهای Built-in:
    • emptyDir
    • hostPath
    • configMap و secret
    • projected
    • downwardAPI
    • persistentVolumeClaim
  • تفاوت Volumeهای Local و Remote
  • مزایا و محدودیت‌های هر نوع Volume

فصل 3. Persistent Volumes (PV) و Persistent Volume Claims (PVC)

  • تعریف PV و PVC
  • نحوه ایجاد PV و PVC
  • مراحل Bind کردن PVC به PV
  • مدیریت داده‌های پایدار با استفاده از PVC
  • حذف PV و PVC و مفهوم Retain Policy

فصل 4. Dynamic Provisioning

  • مفهوم Dynamic Provisioning
  • پیکربندی Storage Class برای Provisioning پویا
  • بررسی نحوه تخصیص خودکار Volumeها

فصل 5. Storage Classes در Kubernetes

  • تعریف Storage Class و اهمیت آن
  • نحوه ایجاد Storage Class
  • بررسی تنظیمات Storage Class (مانند Reclaim Policy و Volume Binding Mode)
  • استفاده از Storage Classهای مختلف برای نیازهای متفاوت

فصل 6. Volume Snapshots

  • مفهوم Snapshot و کاربرد آن
  • نحوه ایجاد و بازیابی Snapshot در Kubernetes
  • استفاده از VolumeSnapshotClass

فصل 7. CSI (Container Storage Interface)

  • مفهوم CSI و اهمیت آن
  • معرفی درایورهای CSI (مانند AWS EBS، Google PD، Azure Disk)
  • نصب و استفاده از درایورهای CSI

فصل 8. مدیریت داده‌های برنامه‌ها

  • نحوه مدیریت داده‌های پایدار در برنامه‌های Stateful
  • استفاده از StatefulSets و ارتباط آنها با PVC
  • استفاده از ReadWriteMany (RWX) برای اشتراک‌گذاری داده‌ها بین چند Pod

فصل 9. رفع مشکلات و دیباگ

  • بررسی مشکلات PV و PVC
  • دیباگ Dynamic Provisioning
  • رفع مشکلات دسترسی و ارتباط بین Pods و Volumes
  • بررسی رویدادهای مرتبط با Volume در kubectl

فصل 10. پیکربندی ذخیره‌سازی برای نیازهای خاص

  • ذخیره‌سازی برای پایگاه‌های داده (مانند MySQL و PostgreSQL)
  • ذخیره‌سازی برای سیستم‌های فایل (مانند NFS)
  • ذخیره‌سازی اشیاء (Object Storage) مانند MinIO و S3

فصل 11. بکاپ‌گیری و بازیابی داده‌ها

  • ابزارهای بکاپ‌گیری (مانند Velero)
  • مراحل بکاپ‌گیری از PVها و PVCها
  • بازیابی داده‌ها پس از خرابی

بخش 7: دیباگ و مانیتورینگ در Kubernetes

 

فصل 1. دیباگ و رفع خطاها

  • ابزارهای خطایابی اصلی
    • آشنایی با دستورات ضروری kubectl
    • استفاده از دستورات kubectl logs برای بررسی لاگ‌های Podها
    • بررسی رویدادها با kubectl describe و تحلیل مشکلات
  • خطایابی Podها
    • شناسایی وضعیت‌های Pod (Pending، Running، CrashLoopBackOff)
    • تحلیل خطاهای مربوط به Image (ImagePullBackOff)
    • بررسی مشکلات مربوط به Init Containers
  • خطایابی Nodeها
    • بررسی وضعیت Nodeها (kubectl get nodes)
    • مشکلات مربوط به ظرفیت منابع (CPU، Memory)
    • تحلیل خطاهای مربوط به Kubelet و Container Runtime
  • بررسی شبکه و سرویس‌ها
    • دیباگ مشکلات ارتباطی سرویس‌ها و Podها
    • بررسی وضعیت DNS در Kubernetes (kubectl exec nslookup)
    • بررسی Network Policies و محدودیت‌های احتمالی

فصل 2. مانیتورینگ کلاستر Kubernetes

  • ابزارهای مانیتورینگ
    • آشنایی با Prometheus و نحوه نصب در Kubernetes
    • بررسی داده‌های گرافیکی با Grafana
    • استفاده از ابزار Kubernetes Dashboard برای نظارت
  • مانیتورینگ وضعیت منابع
    • بررسی منابع مصرفی Podها و Nodeها (kubectl top pods و kubectl top nodes)
    • تنظیم و نظارت بر Resource Requests و Resource Limits
  • لاگ‌های سیستم
    • آشنایی با Fluentd و EFK (Elasticsearch، Fluentd، Kibana)
    • جمع‌آوری و تحلیل لاگ‌های کلاستر
  • بررسی Metricها
    • استفاده از Metrics Server برای بررسی متریک‌های زمان واقعی
    • تحلیل عملکرد با استفاده از HPA و VPA
    • بررسی Bottleneckها در سیستم

فصل 3. تحلیل و رفع مشکلات کلاستر

  • بررسی مشکلات کلاستر
    • مشکلات مربوط به etcd (خرابی و از دست رفتن داده‌ها)
    • تحلیل خطاهای Master Node (API Server، Scheduler، Controller Manager)
  • شناسایی و حل مشکلات Worker Node
    • تحلیل خطاهای مربوط به Container Runtime (Docker یا Containerd)
    • بررسی مشکلات Kube Proxy
  • استفاده از دستورات پیشرفته
    • استفاده از kubectl debug برای ایجاد محیط دیباگ مستقیم
    • اجرای kubectl exec برای دسترسی به Podها

فصل 4. ابزارها و تکنیک‌های پیشرفته

  • استفاده از ابزارهای Third-Party
    • آشنایی با Lens برای مدیریت و دیباگ کلاستر
    • معرفی ابزار Loki برای مدیریت لاگ‌ها
  • تعریف Alertها
    • تنظیم AlertManager در Prometheus برای هشدارهای خودکار
    • تعریف قوانین هشدار برای Resource Usage، Crashها و Latency

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

  • ایجاد بهترین روش‌ها برای دیباگ
    • مستندسازی خطاها و روش‌های رفع آن‌ها
    • تعریف روش‌های استاندارد برای دیباگ تیمی
  • خودکارسازی فرآیندهای مانیتورینگ
    • استفاده از ابزارهایی مانند Helm برای نصب سریع ابزارهای مانیتورینگ
    • تعریف Pipelineهای CI/CD با قابلیت دیباگ و مانیتورینگ اتوماتیک

بخش 8: به‌روزرسانی و نگهداری کلاستر

 

فصل 1. به‌روزرسانی کلاستر

  • بررسی نسخه‌های Kubernetes:
    • نحوه بررسی نسخه فعلی کلاستر و اجزای آن (API Server، etcd، kubelet و kube-proxy).
    • انتخاب نسخه سازگار برای به‌روزرسانی.
  • به‌روزرسانی Master Node:
    • تهیه نسخه پشتیبان از etcd قبل از به‌روزرسانی.
    • به‌روزرسانی Control Plane (API Server، Controller Manager، Scheduler).
    • بررسی لاگ‌ها و صحت عملکرد Master Node پس از به‌روزرسانی.
  • به‌روزرسانی Worker Node:
    • به‌روزرسانی kubelet و kube-proxy در Worker Nodeها.
    • تخلیه (Drain) کردن Podها از Node قبل از به‌روزرسانی.
    • بازگرداندن Node به کلاستر و بررسی وضعیت آن.
  • مدیریت Rollback:
    • نحوه بازگشت به نسخه قبلی در صورت بروز مشکل.

فصل 2. بررسی سازگاری نسخه‌ها

  • بررسی سازگاری افزونه‌ها (Add-ons):
    • CNI Plugins مانند Flannel و Calico.
    • CSI Drivers برای مدیریت Storage.
  • بررسی API Deprecation:
    • شناسایی و مدیریت نسخه‌های API که دیگر پشتیبانی نمی‌شوند.
    • بررسی منابع Manifest برای جلوگیری از مشکلات به‌روزرسانی.

فصل 3. پشتیبان‌گیری و بازیابی

  • پشتیبان‌گیری از etcd:
    • استفاده از دستور etcdctl برای تهیه Snapshot از etcd.
    • ذخیره Snapshot در مسیر امن.
    • زمان‌بندی پشتیبان‌گیری خودکار.
  • بازیابی داده‌های کلاستر:
    • بازگردانی داده‌های etcd از Snapshot.
    • بررسی لاگ‌ها و اطمینان از صحت داده‌ها پس از بازیابی.
  • پشتیبان‌گیری از منابع Kubernetes:
    • استفاده از ابزارهایی مانند Velero برای تهیه پشتیبان از منابع (Pods، Deployments، ConfigMaps، Secrets و غیره).
    • بازیابی منابع از نسخه پشتیبان تهیه شده.

فصل 4. نگهداری کلاستر

  • مدیریت Nodeها:
    • بررسی سلامت Nodeها با دستور kubectl get nodes.
    • مانیتورینگ مصرف منابع (CPU، Memory، Disk) در Nodeها.
  • تمیزکاری منابع کلاستر:
    • شناسایی منابع غیرضروری و حذف آنها (مانند Deployments و Pods معلق).
    • پاک‌سازی Eventهای قدیمی از کلاستر.
  • مدیریت گواهینامه‌ها (Certificates):
    • بررسی تاریخ انقضای گواهینامه‌های کلاستر با دستور kubeadm certs check-expiration.
    • تمدید گواهینامه‌های منقضی شده.
  • بررسی و به‌روزرسانی Add-ons:
    • بررسی وضعیت افزونه‌های کلاستر (مانند CoreDNS، Metrics Server).
    • به‌روزرسانی افزونه‌ها به نسخه‌های پایدار.

فصل 5. مانیتورینگ و لاگ‌ها

  • بررسی لاگ‌های کلاستر:
    • بررسی لاگ‌های API Server، Scheduler، Controller Manager.
    • مشاهده لاگ‌های Podها و Nodeها با kubectl logs.
  • استفاده از ابزارهای مانیتورینگ:
    • تنظیم و استفاده از Prometheus و Grafana.
    • تحلیل Metrics کلاستر و شناسایی مشکلات بالقوه.

اهداف دوره:

  • یادگیری معماری Kubernetes و اجزای اصلی آن
  • تسلط بر مدیریت و نگهداری کلاسترهای Kubernetes
  • آمادگی کامل برای اخذ گواهینامه CKA

پیش‌نیازها:

  • آشنایی با لینوکس و ابزارهای خط فرمان
  • تجربه کاری با کانتینرها (مانند Docker)
  • دانش پایه شبکه و مفاهیم کلیدی DevOps

مخاطبین دوره:

  • مدیران سیستم و متخصصان DevOps
  • توسعه‌دهندگانی که قصد استفاده از Kubernetes را دارند
  • علاقه‌مندان به اخذ گواهینامه CKA
پاسخ به سوالات فنی کاربران
مشاهده بیشتر

نظرات

متوسط امتیازات

0
بدون امتیاز 0 رای
قیمت اصلی: ۲,۰۰۰,۰۰۰ تومان بود.قیمت فعلی: ۲۰۰,۰۰۰ تومان.
0 نقد و بررسی

جزئیات امتیازات

5 ستاره
0
4 ستاره
0
3 ستاره
0
2 ستاره
0
1 ستاره
0

دیدگاهها

هیچ دیدگاهی برای این محصول نوشته نشده است.

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

لطفا برای ارسال یا مشاهده تیکت به حساب خود وارد شوید