بخش 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 اثبات کنند، بسیار مفید است.

بخش 5. مبانی امنیت در Kubernetes
بخش 6. نظارت و Debugging در Kubernetes
بخش 7. ابزارها و دستورات Kubernetes
بخش 8. طراحی برنامه‌های Cloud-Native
پاسخ به سوالات فنی کاربران
مشاهده بیشتر

نظرات

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

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

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

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

دیدگاهها

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

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

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