بخش 1: مقدمه و اصول Kubernetes
فصل 1. آشنایی با Kubernetes
- Kubernetes چیست و چرا استفاده میشود؟
- کاربردهای Kubernetes در توسعه و عملیات (DevOps).
- تفاوت Kubernetes با دیگر ابزارهای ارکستراسیون (مانند Docker Swarm و Apache Mesos).
فصل 2. تاریخچه و مفهوم Kubernetes
- معرفی تاریخچه Kubernetes و ارتباط آن با Google Borg.
- بررسی نقش Kubernetes در دنیای کانتینرها.
- فلسفه طراحی Kubernetes و اهمیت آن.
فصل 3. معماری و اجزای Kubernetes
- ساختار و اجزای اصلی:
- Master Node:
- API Server: وظایف و نحوه کار.
- Scheduler: برنامهریزی Podها.
- Controller Manager: مدیریت وضعیت سیستم.
- etcd: بانک اطلاعاتی کلیدی توزیعشده.
- Worker Node:
- Kubelet: مسئولیت اجرای Podها.
- Kube Proxy: مدیریت شبکه.
- Container Runtime: اجرای کانتینرها (مانند Docker، containerd).
- Master Node:
- تعامل بین اجزای Master و Worker.
فصل 4. بررسی CNCF و اکوسیستم Kubernetes
- معرفی CNCF (Cloud Native Computing Foundation).
- پروژههای وابسته به Kubernetes در اکوسیستم CNCF (مانند Helm، Prometheus، و Istio).
- نقش Kubernetes در محیطهای Cloud Native.
فصل 5. آمادهسازی محیط
- ابزارهای ضروری برای شروع کار:
- kubectl: نحوه نصب و استفاده اولیه.
- kubeadm: نصب کلاستر Kubernetes.
- Minikube: ایجاد کلاستر لوکال برای آموزش.
- بررسی الزامات سیستم (سیستمعامل، منابع سختافزاری و شبکه).
- تنظیم شبکه و فایروال برای اجرای Kubernetes.
فصل 6. نصب ابزارهای مورد نیاز
- مراحل نصب و پیکربندی kubectl:
- تنظیم فایل kubeconfig برای دسترسی به کلاستر.
- استفاده از kubeadm برای نصب کلاستر:
- اجرای دستورات kubeadm init و kubeadm join.
- راهاندازی Minikube:
- نصب Minikube در ویندوز، لینوکس و مک.
- اجرای اولین کلاستر Minikube.
فصل 7. پیکربندی اولیه و ایجاد اولین کلاستر
- راهاندازی یک کلاستر ساده با kubeadm.
- تعریف و اجرای اولین Pod.
- مشاهده وضعیت کلاستر با kubectl:
- دستور
kubectl get nodes. - دستور
kubectl get pods.
- دستور
- مدیریت دسترسی و کاربران اولیه:
- تعریف نقشها و دسترسیها در کلاستر.
بخش 2: مدیریت کلاسترها
فصل 1. اجزای کلاستر
- تعریف کلی کلاستر Kubernetes و نقش آن در مدیریت منابع
- معرفی اجزای اصلی کلاستر
- Master Node:
- نقش و وظایف Master Node
- اجزای اصلی:
- API Server: مدیریت درخواستها و ارتباط با کلاینتها
- Scheduler: برنامهریزی و تخصیص منابع به Podها
- Controller Manager: مدیریت وضعیت سیستم (Replication، Node Health، Endpoint)
- etcd: دیتابیس توزیعشده برای ذخیره وضعیت کلاستر
- Worker Node:
- نقش و وظایف Worker Node
- اجزای اصلی:
- Kubelet: مدیریت Podها روی Node
- Kube Proxy: مدیریت شبکه و ارتباطات داخلی
- Container Runtime: اجرای کانتینرها (Docker یا CRI-O)
- Master Node:
فصل 2. مدیریت کلاستر
- راهاندازی کلاستر
- نصب و راهاندازی کلاستر با kubeadm
- بررسی تنظیمات اولیه کلاستر
- نگهداری کلاستر
- چک کردن وضعیت اجزای کلاستر با دستورات:
kubectl get nodeskubectl describe node
- مدیریت خطاها و بررسی لاگهای کلاستر
- مشاهده لاگهای Master Node و Worker Node
- رفع خطاهای رایج (CrashLoopBackOff، Pending Pods)
- چک کردن وضعیت اجزای کلاستر با دستورات:
- اضافه کردن Node به کلاستر
- تولید توکن برای Join شدن Worker Node
- دستور
kubeadm joinبرای اضافه کردن Node
- حذف Node از کلاستر
- Drain کردن Node با
kubectl drain - حذف Node با
kubectl delete node
- Drain کردن Node با
- دیباگ کلاستر
- بررسی و حل مشکلات ارتباطی بین اجزای کلاستر
- بررسی سلامت etcd:
- تست عملکرد etcd
- بازیابی دادهها از etcd در صورت بروز خطا
- رفع مشکلات Master و Worker Nodes
فصل 3. بازیابی و پشتیبانگیری
- پشتیبانگیری از etcd
- دستورات مربوط به گرفتن بکاپ از etcd
- ذخیره بکاپ در مکانهای امن
- بازیابی کلاستر از بکاپ
- بازگرداندن دادهها از بکاپ etcd
- تست و اطمینان از سالم بودن کلاستر
فصل 4. بهینهسازی کلاستر
- تنظیم Resource Requests و Limits برای بهینهسازی منابع
- اعمال Taints و Tolerations برای کنترل دسترسی Podها به Nodeها
- استفاده از Node Affinity برای کنترل برنامهریزی Podها
- مانیتورینگ وضعیت کلاستر با ابزارهای نظارت و Logging
فصل 5. استفاده از ابزارهای مدیریتی
- kubectl:
- دستورات پیشرفته برای مدیریت کلاستر
- فیلتر کردن اطلاعات با استفاده از
kubectl get -o
- kubeadm:
- ایجاد کلاسترهای جدید
- آپدیت کلاستر با kubeadm upgrade
- Dashboard Kubernetes:
- نصب و پیکربندی داشبورد گرافیکی
- مشاهده وضعیت منابع و Podها در داشبورد
بخش 3: مدیریت منابع Kubernetes
فصل 1. Podها و کنترلکنندهها
- Pod چیست؟
- مفهوم Pod و اجزای آن (Container، Volume، Network Namespace)
- نحوه تعریف و ایجاد Podها با فایل YAML
- بررسی وضعیت Podها و دیباگ آنها (Pending، Running، CrashLoopBackOff)
- ReplicaSet
- تعریف و هدف استفاده از ReplicaSet
- نحوه ایجاد و مدیریت ReplicaSet
- مقایسه ReplicaSet با Deployment
- Deployment
- ایجاد Deployment و تعریف فایلهای YAML
- Rolling Updates و Rollback
- مدیریت نسخههای مختلف Deployment
- StatefulSet
- تفاوت StatefulSet با Deployment
- استفاده از StatefulSet برای برنامههای Stateful (مانند دیتابیسها)
- مدیریت نامگذاری ثابت و Persistent Volumeها در StatefulSet
- DaemonSet
- استفاده از DaemonSet برای اجرای یک Pod روی تمامی Nodeها
- کاربردهای DaemonSet (مانند Logging Agents یا Monitoring Tools)
- Job و CronJob
- تعریف و کاربرد Job برای Taskهای کوتاهمدت
- تنظیم و مدیریت CronJob برای Taskهای زمانبندیشده
فصل 2. سرویسها و دسترسیها
- Service Types
- ClusterIP: دسترسی داخلی به سرویسها
- NodePort: دسترسی خارجی به سرویسها
- LoadBalancer: توزیع بار و دسترسی عمومی
- Ingress
- مفهوم Ingress و موارد استفاده آن
- تنظیم Ingress برای مدیریت درخواستهای HTTP و HTTPS
- استفاده از Ingress Controllerها (مانند NGINX Ingress Controller)
- DNS در Kubernetes
- نحوه کار DNS داخلی در Kubernetes
- استفاده از DNS برای کشف سرویسها (Service Discovery)
فصل 3. مدیریت ConfigMaps و Secrets
- ConfigMaps
- ذخیره تنظیمات غیراختصاصی (مانند فایلهای کانفیگ و متغیرهای محیطی)
- ایجاد و مدیریت ConfigMap با kubectl و YAML
- اتصال ConfigMapها به Podها بهصورت Volume یا Environment Variable
- Secrets
- ذخیره دادههای حساس (مانند پسوردها، توکنها، و کلیدهای API)
- تفاوت Secretها با ConfigMapها
- رمزنگاری و مدیریت Secrets در کلاستر
بخش 4: شبکه و امنیت در Kubernetes
فصل 1. شبکه در Kubernetes
- مدل شبکه Kubernetes
- معماری شبکه Kubernetes و نحوه ارتباط Podها با یکدیگر
- نحوه مسیریابی داخلی بین Podها
- مدل Flat Networking و مفهوم IP اختصاصی برای Podها
- پلاگینهای شبکه (CNI Plugins)
- آشنایی با CNI (Container Network Interface)
- معرفی محبوبترین پلاگینها:
- Flannel
- Calico
- Weave Net
- Cilium
- نصب و پیکربندی پلاگینها
- خدمات شبکه (Network Services)
- معرفی و نحوه عملکرد ClusterIP
- نحوه راهاندازی NodePort و LoadBalancer
- معرفی ExternalName Service
- Ingress
- مفهوم Ingress و مزایای استفاده از آن
- پیکربندی Ingress Controller
- ایجاد و مدیریت Ingress Rules
- DNS در Kubernetes
- راهاندازی CoreDNS
- نحوه عملکرد DNS در کلاستر
- رفع مشکلات DNS و دیباگ آن
فصل 2. امنیت در Kubernetes
- مدیریت دسترسیها (RBAC)
- مفهوم Role و ClusterRole
- RoleBinding و ClusterRoleBinding
- تعریف سیاستهای دسترسی برای کاربران و سرویسها
- Service Accounts
- ایجاد و مدیریت Service Accounts
- استفاده از Tokenهای دسترسی برای Service Accounts
- Network Policies
- تعریف و هدف Network Policies
- ایجاد و اعمال سیاستهای شبکه برای Podها
- جلوگیری از دسترسی غیرمجاز بین Podها
- امنیت API Server
- فعالسازی و پیکربندی Authentication
- استفاده از Webhook برای تأیید اعتبار
- مدیریت دسترسیهای API Server
- امنیت کلیدها و دادههای حساس
- استفاده از Secrets برای ذخیره دادههای حساس
- رمزگذاری Secrets در etcd
- مدیریت دسترسی به Secrets
- پیکربندی ایمن Kubelet
- تنظیم سطح دسترسی به Kubelet API
- فعالسازی TLS برای ارتباطات امن
فصل 3. مدیریت شبکه پیشرفته
- Load Balancing
- راهاندازی Load Balancer داخلی و خارجی
- استفاده از MetalLB برای Load Balancing در محیطهای On-Premise
- Multi-Networking
- معرفی Multi-Networking در Kubernetes
- مدیریت چندین پلاگین CNI در یک کلاستر
- Service Mesh
- معرفی Service Mesh و ابزارهای محبوب مانند Istio و Linkerd
- نصب و پیکربندی Service Mesh
- مزایای استفاده از Service Mesh (مانند مانیتورینگ و مدیریت ترافیک)
خدمات شبکه فراز نتورک | پیشرو در ارائه خدمات دیتاسنتری و کلود

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