آموزش Kubernetes

آموزش Kubernetes

آموزش Kubernetes (K8s) از صفر تا صد

Kubernetes یکی از قدرتمندترین پلتفرم‌های مدیریت کانتینر در جهان است که برای استقرار، مقیاس‌پذیری و مدیریت برنامه‌های مدرن مبتنی بر کانتینر استفاده می‌شود. امروزه بسیاری از شرکت‌های بزرگ فناوری برای اجرای سرویس‌های ابری، میکروسرویس‌ها و زیرساخت‌های DevOps از Kubernetes استفاده می‌کنند.

در این مقاله آموزشی قصد داریم Kubernetes را از مفاهیم پایه تا مباحث پیشرفته مانند معماری کلاستر، Node، Pod، Deployment، Service، Storage، Networking و مدیریت عملیاتی Kubernetes بررسی کنیم.

توضیحات متا دیسکریپشن (Meta Description)

آموزش Kubernetes به صورت کامل و کاربردی؛ یادگیری مفاهیم Kubernetes، معماری K8s، نصب کلاستر، مدیریت کانتینرها، Docker، Pod، Deployment، Service و راهکارهای مدیریت زیرساخت ابری.

کلمات کلیدی مقاله

  • آموزش Kubernetes
  • Kubernetes چیست
  • آموزش K8s
  • نصب Kubernetes
  • مدیریت کلاستر Kubernetes
  • Docker Kubernetes
  • Container Orchestration
  • Kubernetes Administrator
  • معماری Kubernetes
  • راه اندازی Kubernetes Cluster

فهرست مطالب

  1. Kubernetes چیست؟
  2. چرا Kubernetes به وجود آمد؟
  3. تفاوت Docker و Kubernetes
  4. معماری Kubernetes
  5. معرفی Master Node و Worker Node
  6. مفهوم Pod در Kubernetes
  7. آشنایی با Deployment و ReplicaSet
  8. Kubernetes Service و ارتباط شبکه‌ای
  9. نصب Kubernetes Cluster
  10. مدیریت Storage در Kubernetes
  11. Kubernetes Networking
  12. امنیت در Kubernetes
  13. مانیتورینگ Kubernetes
  14. کاربرد Kubernetes در سازمان‌ها

Kubernetes چیست؟

Kubernetes که معمولا با نام کوتاه K8s شناخته می‌شود، یک سیستم متن‌باز برای مدیریت و هماهنگ‌سازی کانتینرها (Container Orchestration Platform) است.

وظیفه اصلی Kubernetes این است که اجرای برنامه‌های کانتینری را در تعداد زیادی سرور مدیریت کند. به کمک Kubernetes می‌توان برنامه‌ها را بدون نیاز به مدیریت دستی هر سرور، اجرا، بروزرسانی، افزایش ظرفیت و بازیابی کرد.

برای مثال فرض کنید یک وب‌سایت فروشگاهی بزرگ دارید که روزانه میلیون‌ها درخواست دریافت می‌کند. اگر تنها یک سرور داشته باشید، با افزایش کاربران ممکن است سرویس شما دچار اختلال شود. Kubernetes می‌تواند به صورت خودکار تعداد نمونه‌های برنامه را افزایش داده و بار کاری را بین سرورها تقسیم کند.

تاریخچه Kubernetes

Kubernetes ابتدا توسط شرکت Google طراحی شد و بر اساس تجربه چندین ساله این شرکت در مدیریت سیستم‌های عظیم ابری ساخته شد. گوگل قبل از Kubernetes از سیستمی داخلی به نام Borg برای مدیریت سرویس‌های خود استفاده می‌کرد.

در سال ۲۰۱۴ پروژه Kubernetes به صورت عمومی معرفی شد و بعدها توسط بنیاد Cloud Native Computing Foundation یا CNCF توسعه یافت و به یکی از مهم‌ترین ابزارهای دنیای Cloud و DevOps تبدیل شد.

چرا Kubernetes اهمیت دارد؟

امروزه معماری نرم‌افزارها از برنامه‌های سنتی به سمت معماری Microservice حرکت کرده است. در این معماری هر بخش از برنامه به صورت یک سرویس مستقل اجرا می‌شود.

  • مدیریت هزاران کانتینر به صورت خودکار
  • افزایش یا کاهش منابع بر اساس میزان مصرف
  • بازیابی خودکار سرویس‌های خراب شده
  • توزیع بار بین سرورها
  • استقرار سریع نسخه‌های جدید نرم‌افزار
  • ایجاد زیرساخت مناسب برای Cloud Computing

Kubernetes چه مشکلی را حل می‌کند؟

قبل از Kubernetes، مدیران سیستم برای اجرای برنامه‌های بزرگ مجبور بودند سرورها، منابع پردازشی، شبکه و فرآیندهای بروزرسانی را به صورت دستی مدیریت کنند.

با افزایش تعداد سرویس‌ها، این روش بسیار پیچیده و زمان‌بر می‌شد. Kubernetes این فرآیندها را خودکار کرده و یک لایه مدیریتی هوشمند برای اجرای برنامه‌ها فراهم می‌کند.

تفاوت Docker و Kubernetes چیست؟

یکی از سوالات رایج در مسیر یادگیری Kubernetes این است که تفاوت Docker و Kubernetes چیست و آیا این دو ابزار رقیب یکدیگر هستند؟

پاسخ این است که Docker و Kubernetes وظایف متفاوتی دارند. Docker یک فناوری برای ساخت و اجرای کانتینرها است، اما Kubernetes یک سیستم مدیریت و هماهنگ‌کننده کانتینرها محسوب می‌شود.

Docker Kubernetes
ساخت و اجرای Container مدیریت تعداد زیادی Container
مناسب برای توسعه و تست برنامه‌ها مناسب برای محیط‌های Production و Cloud
مدیریت یک یا چند کانتینر مدیریت هزاران کانتینر در چندین سرور

به زبان ساده، Docker مانند موتور اجرای کانتینرها است و Kubernetes مانند مدیر هوشمندی است که مشخص می‌کند این کانتینرها کجا اجرا شوند، چه زمانی افزایش پیدا کنند و چگونه در صورت خرابی دوباره راه‌اندازی شوند.

معماری Kubernetes چگونه است؟

برای درک Kubernetes باید ابتدا معماری آن را بشناسیم. Kubernetes از مجموعه‌ای از سرورها تشکیل شده است که به صورت یک Cluster با یکدیگر کار می‌کنند.

یک Kubernetes Cluster معمولا شامل دو بخش اصلی است:

  • Control Plane:
    بخش مدیریتی Kubernetes که وظیفه کنترل و تصمیم‌گیری را برعهده دارد.
  • Worker Node:
    سرورهایی که برنامه‌ها و کانتینرهای اصلی روی آنها اجرا می‌شوند.

Control Plane در Kubernetes چیست؟

Control Plane مغز Kubernetes محسوب می‌شود. تمام تصمیمات مربوط به وضعیت Cluster توسط این بخش انجام می‌شود.

وظایف اصلی Control Plane شامل موارد زیر است:

  • مدیریت وضعیت Cluster
  • زمان‌بندی اجرای Container ها
  • تشخیص خطاها و بازیابی سرویس‌ها
  • مدیریت تنظیمات Kubernetes
  • ارتباط با Node ها

اجزای اصلی Control Plane

1- Kubernetes API Server

API Server نقطه ارتباط اصلی Kubernetes است. تمام درخواست‌ها مانند ایجاد Pod، تغییر تنظیمات یا دریافت اطلاعات Cluster از طریق API Server انجام می‌شود.

2- etcd Database

etcd یک دیتابیس Key-Value توزیع‌شده است که تمام اطلاعات مهم Kubernetes مانند تنظیمات، وضعیت Node ها و اطلاعات منابع را ذخیره می‌کند.

اطلاعاتی که در etcd ذخیره می‌شوند شامل:

  • اطلاعات Cluster
  • تنظیمات Network
  • وضعیت Pod ها
  • اطلاعات کاربران و دسترسی‌ها

3- Scheduler

Scheduler وظیفه دارد تصمیم بگیرد هر Pod روی کدام Worker Node اجرا شود.

برای این تصمیم‌گیری مواردی مانند:

  • میزان CPU آزاد
  • حافظه RAM
  • قوانین اختصاصی Node
  • محدودیت‌های منابع

بررسی می‌شوند.

4- Controller Manager

Controller Manager وظیفه بررسی وضعیت Cluster و هماهنگ کردن وضعیت واقعی با وضعیت مورد انتظار را برعهده دارد.

برای مثال اگر مشخص کرده باشید همیشه ۳ نسخه از یک برنامه اجرا شود و یکی از آنها خراب شود، Controller Manager دستور ایجاد نمونه جدید را صادر می‌کند.

Worker Node در Kubernetes چیست؟

Worker Node ها سرورهایی هستند که برنامه‌های واقعی روی آنها اجرا می‌شوند. هر Worker Node دارای سرویس‌هایی است که وظیفه اجرای Container ها را انجام می‌دهند.

اجزای مهم Worker Node عبارتند از:

  • Kubelet:
    عامل ارتباطی بین Node و Control Plane
  • Container Runtime:
    نرم‌افزاری برای اجرای Container ها مانند Containerd
  • Kube Proxy:
    مدیریت ارتباطات شبکه‌ای بین سرویس‌ها

ساختار ساده یک Kubernetes Cluster

        Control Plane

        API Server
             |
     ----------------
     |      |       |
   etcd Scheduler Controller


             |
             |
     ---------------------
     |          |          |
 Worker1   Worker2   Worker3

   Pod        Pod        Pod

Pod در Kubernetes چیست؟

Pod کوچک‌ترین واحد قابل استقرار در Kubernetes است. در واقع Kubernetes به صورت مستقیم Container ها را مدیریت نمی‌کند، بلکه Container ها را داخل Pod قرار داده و Pod ها را مدیریت می‌کند.

هر Pod می‌تواند شامل یک یا چند Container باشد که معمولا برای اجرای یک سرویس یا یک بخش از برنامه استفاده می‌شوند.

برای مثال یک برنامه وب ممکن است شامل موارد زیر باشد:

  • یک Container برای اجرای برنامه اصلی
  • یک Container برای پردازش لاگ‌ها
  • یک Container برای سرویس‌های جانبی

تمام Container های داخل یک Pod منابع شبکه و Storage مشترک دارند و می‌توانند با استفاده از localhost با یکدیگر ارتباط برقرار کنند.

ساختار یک Pod در Kubernetes

هر Pod دارای مشخصات مختلفی است که در فایل YAML تعریف می‌شود. این فایل به Kubernetes اعلام می‌کند که چه Container ای باید اجرا شود و چه منابعی نیاز دارد.

apiVersion: v1
kind: Pod
metadata:
  name: web-pod

spec:
  containers:
  - name: nginx-container
    image: nginx

در مثال بالا یک Pod با نام web-pod ایجاد می‌شود که یک Container مبتنی بر Image مربوط به Nginx اجرا می‌کند.

مراحل ایجاد یک Pod در Kubernetes

  1. کاربر فایل YAML را ایجاد می‌کند.
  2. دستور kubectl به API Server ارسال می‌شود.
  3. API Server اطلاعات را در etcd ذخیره می‌کند.
  4. Scheduler بهترین Node را انتخاب می‌کند.
  5. Kubelet روی Worker Node دستور اجرای Pod را دریافت می‌کند.
  6. Container Runtime، Container را اجرا می‌کند.

ReplicaSet در Kubernetes چیست؟

ReplicaSet یکی از منابع مهم Kubernetes است که وظیفه آن اطمینان از اجرای تعداد مشخصی Pod است.

فرض کنید یک وب‌سایت دارید و می‌خواهید همیشه سه نسخه از برنامه شما فعال باشد. ReplicaSet بررسی می‌کند که همیشه سه Pod در حال اجرا باشند.


مثال:

تعداد مورد انتظار:

3 Pod

وضعیت فعلی:

2 Pod فعال

ReplicaSet به صورت خودکار یک Pod جدید ایجاد می‌کند.

Deployment در Kubernetes چیست؟

Deployment یکی از پرکاربردترین منابع Kubernetes است که برای مدیریت چرخه عمر برنامه‌ها استفاده می‌شود.

Deployment در واقع یک لایه مدیریتی بالاتر از ReplicaSet است و امکانات بیشتری مانند:

  • ایجاد و مدیریت ReplicaSet
  • بروزرسانی بدون توقف سرویس
  • بازگشت به نسخه قبلی برنامه
  • مدیریت نسخه‌های مختلف نرم‌افزار

را فراهم می‌کند.

ایجاد یک Deployment ساده در Kubernetes

apiVersion: apps/v1
kind: Deployment

metadata:
  name: nginx-deployment

spec:
  replicas: 3

  selector:
    matchLabels:
      app: nginx

  template:
    metadata:
      labels:
        app: nginx

    spec:
      containers:
      - name: nginx
        image: nginx:latest

در این مثال Kubernetes سه نسخه از Nginx ایجاد می‌کند و در صورت خرابی یکی از آنها، نمونه جدیدی جایگزین خواهد شد.

دستورات مهم kubectl برای مدیریت Pod و Deployment

kubectl ابزار خط فرمان اصلی Kubernetes برای مدیریت Cluster است.

دستور کاربرد
kubectl get pods نمایش Pod ها
kubectl get nodes نمایش Node های Cluster
kubectl create -f app.yaml ایجاد Resource از فایل YAML
kubectl delete pod name حذف Pod

جمع‌بندی بخش سوم

در این بخش با مفاهیم اصلی Pod، ReplicaSet و Deployment آشنا شدیم. Pod پایه‌ای‌ترین بخش Kubernetes است، ReplicaSet تضمین می‌کند تعداد مشخصی از Pod ها فعال باشند و Deployment امکان مدیریت حرفه‌ای برنامه‌ها و بروزرسانی آنها را فراهم می‌کند.

Kubernetes Service چیست؟

در Kubernetes، Pod ها موجودیت‌هایی هستند که به صورت موقت ایجاد و حذف می‌شوند. به همین دلیل IP Address یک Pod ممکن است بعد از Restart تغییر کند. برای حل این مشکل Kubernetes از مفهومی به نام Service استفاده می‌کند.

Service یک لایه ارتباطی دائمی برای دسترسی به Pod ها ایجاد می‌کند و باعث می‌شود برنامه‌ها بتوانند بدون توجه به تغییرات داخلی Cluster با یکدیگر ارتباط داشته باشند.

وظایف اصلی Service در Kubernetes:

  • ایجاد آدرس ثابت برای دسترسی به برنامه‌ها
  • توزیع درخواست‌ها بین چند Pod
  • ایجاد ارتباط داخلی بین سرویس‌ها
  • ارائه دسترسی خارجی به برنامه‌ها

انواع Kubernetes Service

Kubernetes چند نوع Service برای سناریوهای مختلف ارائه می‌دهد که مهم‌ترین آنها عبارتند از:

1- ClusterIP

ClusterIP نوع پیش‌فرض Service در Kubernetes است و فقط داخل Cluster قابل دسترسی است.

از این نوع معمولا برای ارتباط بین سرویس‌های داخلی استفاده می‌شود.

apiVersion: v1

kind: Service

metadata:
  name: database-service

spec:
  type: ClusterIP

2- NodePort

NodePort امکان دسترسی کاربران خارج از Cluster به یک سرویس را فراهم می‌کند.

در این روش یک پورت مشخص روی تمام Node ها باز شده و درخواست‌ها به Pod مربوطه ارسال می‌شوند.

3- LoadBalancer

این نوع Service بیشتر در محیط‌های Cloud مانند AWS، Azure و Google Cloud استفاده می‌شود.

LoadBalancer یک IP عمومی ایجاد کرده و درخواست کاربران را بین Pod ها توزیع می‌کند.

Kubernetes Networking چیست؟

شبکه در Kubernetes یکی از مهم‌ترین بخش‌های معماری آن است. Kubernetes یک مدل شبکه ساده اما قدرتمند ارائه می‌دهد که در آن هر Pod دارای یک IP منحصر به فرد است.

قوانین اصلی Networking در Kubernetes:

  • تمام Pod ها باید بتوانند بدون NAT با یکدیگر ارتباط برقرار کنند.
  • تمام Node ها باید بتوانند با Pod ها ارتباط داشته باشند.
  • IP یک Pod نباید توسط Node دیگری تغییر داده شود.

برای پیاده‌سازی شبکه Kubernetes معمولا از افزونه‌هایی مانند CNI استفاده می‌شود.

برخی CNI های معروف:

  • Calico
  • Flannel
  • Cilium
  • Weave Net

Namespace در Kubernetes چیست؟

Namespace روشی برای تقسیم‌بندی منابع داخل Kubernetes Cluster است.

در محیط‌های سازمانی معمولا چندین تیم یا پروژه از یک Cluster مشترک استفاده می‌کنند. Namespace کمک می‌کند منابع هر بخش جداگانه مدیریت شوند.

کاربردهای Namespace:

  • جداسازی محیط توسعه و Production
  • مدیریت دسترسی کاربران
  • کنترل مصرف منابع
  • سازماندهی بهتر Resource ها
kubectl create namespace development

kubectl get namespaces

مدیریت دسترسی کاربران با RBAC در Kubernetes

RBAC یا Role Based Access Control یکی از قابلیت‌های امنیتی Kubernetes است که برای مدیریت سطح دسترسی کاربران استفاده می‌شود.

با RBAC می‌توان مشخص کرد:

  • چه کسی به Cluster دسترسی داشته باشد
  • چه منابعی قابل مشاهده باشند
  • چه عملیاتی مانند ایجاد یا حذف Resource ها مجاز باشد

اجزای اصلی RBAC:

  • Role: تعریف دسترسی‌ها در یک Namespace
  • ClusterRole: دسترسی در کل Cluster
  • RoleBinding: اتصال کاربر به Role
  • ServiceAccount: حساب کاربری برای برنامه‌ها

ایجاد یک Service ساده در Kubernetes

apiVersion: v1

kind: Service

metadata:
  name: web-service

spec:

  selector:
    app: web

  ports:

  - port: 80
    targetPort: 80

  type: NodePort

در این مثال یک Service از نوع NodePort ایجاد شده که درخواست‌های کاربران را به Pod هایی با Label برابر با web ارسال می‌کند.

بررسی وضعیت Service ها با kubectl

دستور کاربرد
kubectl get services نمایش Service ها
kubectl describe service name نمایش جزئیات Service
kubectl get endpoints نمایش Pod های متصل به Service

جمع‌بندی بخش چهارم

در این بخش با Service، شبکه Kubernetes، Namespace و RBAC آشنا شدیم. Service باعث ایجاد ارتباط پایدار بین سرویس‌ها می‌شود، Namespace مدیریت منابع را ساده‌تر می‌کند و RBAC امنیت دسترسی‌ها را کنترل می‌کند.

نصب Kubernetes Cluster به صورت عملی

پس از آشنایی با معماری Kubernetes و اجزای اصلی آن، مرحله بعدی راه‌اندازی یک Kubernetes Cluster است. برای محیط‌های آزمایشی، آموزشی و حتی بسیاری از محیط‌های سازمانی می‌توان از ابزار kubeadm برای ایجاد Cluster استفاده کرد.

در این روش معمولا یک سرور به عنوان Control Plane و چند سرور به عنوان Worker Node استفاده می‌شوند.


نمونه معماری آزمایشی:

  • Control Plane Server: مدیریت Cluster
  • Worker Node 1: اجرای برنامه‌ها
  • Worker Node 2: اجرای برنامه‌ها
  • سیستم عامل پیشنهادی: Ubuntu Server 22.04 یا نسخه‌های جدیدتر

پیش‌نیازهای نصب Kubernetes

قبل از نصب Kubernetes باید سرورها آماده‌سازی شوند. حداقل نیازمندی‌ها شامل موارد زیر است:

  • پردازنده حداقل 2 هسته برای Control Plane
  • حداقل 2 گیگابایت RAM
  • اتصال شبکه پایدار بین Node ها
  • فعال بودن SSH
  • غیرفعال بودن Swap در Linux
  • تنظیم صحیح Hostname و DNS

مرحله اول: آماده‌سازی سیستم عامل Linux

ابتدا باید سیستم عامل تمام Node ها به‌روزرسانی شود.

sudo apt update

sudo apt upgrade -y

در مرحله بعد باید Swap غیرفعال شود زیرا Kubernetes برای مدیریت بهتر Memory نیاز دارد که Swap فعال نباشد.

sudo swapoff -a

برای دائمی کردن این تنظیم، فایل fstab را ویرایش کرده و خط مربوط به Swap را حذف یا غیرفعال کنید.

تنظیم Kernel برای Kubernetes

Kubernetes برای عملکرد صحیح شبکه و ارتباط Container ها نیاز به فعال بودن برخی تنظیمات Kernel دارد.

cat <

سپس تنظیمات شبکه Kernel اعمال می‌شوند:

cat <

نصب Container Runtime

Kubernetes برای اجرای Container ها به یک Container Runtime نیاز دارد. امروزه معمولا از Containerd استفاده می‌شود.

Container Runtime وظیفه اجرای Image ها و مدیریت چرخه عمر Container ها را برعهده دارد.

sudo apt install containerd -y

پس از نصب باید تنظیمات Containerd ایجاد شود:

containerd config default | sudo tee /etc/containerd/config.toml

سپس سرویس Containerd را فعال می‌کنیم:

sudo systemctl restart containerd

sudo systemctl enable containerd

نصب kubeadm، kubelet و kubectl

سه ابزار اصلی برای مدیریت Kubernetes عبارتند از:

  • kubeadm:
    ابزار ساخت و راه‌اندازی Cluster
  • kubelet:
    Agent اجرا شده روی هر Node
  • kubectl:
    ابزار خط فرمان مدیریت Kubernetes

نصب این ابزارها:

sudo apt install kubelet kubeadm kubectl -y

فعال کردن سرویس kubelet:

sudo systemctl enable kubelet

ایجاد اولین Kubernetes Cluster

روی سرور Control Plane دستور زیر اجرا می‌شود:

sudo kubeadm init

پس از اجرای موفق، Kubernetes یک دستور Join برای اضافه کردن Worker Node ها نمایش می‌دهد.

نمونه دستور اتصال Worker:

kubeadm join 192.168.1.10:6443 \
--token abcdef.123456789 \
--discovery-token-ca-cert-hash sha256:xxxxx

بررسی وضعیت Cluster

kubectl get nodes

خروجی باید وضعیت Node ها را به صورت Ready نمایش دهد.

kubectl get pods -A

این دستور تمام Pod های سیستمی Kubernetes را نمایش می‌دهد.

نصب و راه‌اندازی شبکه در Kubernetes با CNI

پس از ایجاد Kubernetes Cluster، یکی از مهم‌ترین مراحل فعال‌سازی ارتباط شبکه بین Pod ها و Node ها است. Kubernetes به صورت پیش‌فرض یک شبکه آماده برای ارتباط Container ها ارائه نمی‌دهد و برای این کار به یک افزونه شبکه‌ای به نام CNI یا Container Network Interface نیاز دارد.

CNI وظیفه ایجاد شبکه مجازی بین Pod ها، مدیریت IP Address ها و برقراری ارتباط بین بخش‌های مختلف Cluster را بر عهده دارد.

CNI در Kubernetes چیست؟

CNI یک استاندارد برای اتصال Container ها به شبکه است. Kubernetes از طریق CNI به ابزارهای شبکه‌ای اجازه می‌دهد که نحوه ارتباط Pod ها را مدیریت کنند.

مهم‌ترین وظایف CNI:

  • اختصاص IP به Pod ها
  • ایجاد مسیر ارتباطی بین Node ها
  • مدیریت Routing در Cluster
  • اعمال سیاست‌های امنیتی شبکه
  • پشتیبانی از Network Policy

معرفی Calico در Kubernetes

Calico یکی از محبوب‌ترین CNI Plugin های Kubernetes است که در بسیاری از محیط‌های Production استفاده می‌شود.

Calico علاوه بر شبکه‌سازی، قابلیت‌های امنیتی مانند Network Policy را نیز ارائه می‌دهد.

مزایای Calico:

  • عملکرد بالا در Cluster های بزرگ
  • پشتیبانی از BGP Routing
  • امکان کنترل ترافیک بین Pod ها
  • مناسب برای محیط‌های سازمانی

نصب Calico با kubectl:

kubectl apply -f \
https://docs.projectcalico.org/manifests/calico.yaml

معرفی Flannel در Kubernetes

Flannel یک CNI ساده و سبک برای Kubernetes است که بیشتر در محیط‌های آموزشی و Cluster های کوچک استفاده می‌شود.

ویژگی‌های Flannel:

  • راه‌اندازی آسان
  • مصرف کم منابع
  • مناسب برای آزمایشگاه‌های Kubernetes
  • پشتیبانی از Overlay Network
kubectl apply -f \
https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml

بررسی وضعیت شبکه Kubernetes

پس از نصب CNI باید وضعیت Pod های شبکه بررسی شود.

kubectl get pods -n kube-system

در صورت نصب صحیح، Pod مربوط به CNI باید در وضعیت Running قرار داشته باشد.

بررسی IP اختصاص داده شده به Pod ها:

kubectl get pods -o wide

Storage در Kubernetes چیست؟

یکی از چالش‌های مهم در Kubernetes مدیریت اطلاعات و داده‌های دائمی است. برخلاف Container ها که معمولا موقت هستند، اطلاعات برنامه‌ها مانند دیتابیس، فایل‌ها و لاگ‌ها باید در محلی امن ذخیره شوند.

Kubernetes برای حل این مشکل از سیستم Storage Abstraction استفاده می‌کند.

Persistent Volume چیست؟

Persistent Volume یا PV یک فضای ذخیره‌سازی مستقل از Pod است که توسط مدیر سیستم ایجاد می‌شود.

PV می‌تواند از منابع مختلف تامین شود:

  • Local Disk
  • NFS Storage
  • iSCSI Storage
  • Ceph Storage
  • Cloud Storage
  • SAN Storage

در محیط‌های سازمانی معمولا Kubernetes به Storage های قدرتمند مانند SAN متصل می‌شود تا اطلاعات برنامه‌ها با امنیت بالا نگهداری شوند.

Persistent Volume Claim چیست؟

Persistent Volume Claim یا PVC درخواست یک برنامه برای دریافت فضای ذخیره‌سازی است.

در واقع برنامه‌ها مستقیما با PV کار نمی‌کنند، بلکه از طریق PVC فضای مورد نیاز خود را درخواست می‌کنند.

روند ارتباط Storage در Kubernetes:

Pod → PVC → PV → Storage

نمونه فایل PVC در Kubernetes

apiVersion: v1

kind: PersistentVolumeClaim

metadata:
  name: database-storage

spec:

  accessModes:
  - ReadWriteOnce

  resources:

    requests:

      storage: 10Gi

جمع‌بندی بخش ششم

در این بخش با شبکه Kubernetes، مفهوم CNI، ابزارهای Calico و Flannel و همچنین مدیریت Storage با PV و PVC آشنا شدیم. این مفاهیم برای اجرای برنامه‌های واقعی و سازمانی در Kubernetes بسیار مهم هستند.

اتصال Kubernetes به Storage های سازمانی و SAN

در محیط‌های Enterprise، استفاده از Storage محلی برای Kubernetes معمولا کافی نیست. سازمان‌ها برای نگهداری اطلاعات مهم مانند دیتابیس‌ها، فایل‌ها و سرویس‌های حیاتی از Storage های مرکزی مانند SAN استفاده می‌کنند.

Kubernetes می‌تواند از طریق Plugin ها و Driver های مختلف به Storage های سازمانی متصل شود و فضای ذخیره‌سازی را به صورت Dynamic در اختیار برنامه‌ها قرار دهد.

روش‌های اتصال Kubernetes به Storage

Kubernetes برای اتصال به Storage از مفهومی به نام CSI یا Container Storage Interface استفاده می‌کند.

CSI یک استاندارد عمومی برای ارتباط Kubernetes با تجهیزات ذخیره‌سازی مختلف است.

  • VMware vSAN CSI
  • HPE Storage CSI
  • Dell EMC CSI
  • NetApp CSI
  • Ceph CSI
  • NFS CSI

Container Storage Interface یا CSI چیست؟

CSI یک رابط استاندارد بین Kubernetes و سیستم‌های ذخیره‌سازی است. به کمک CSI، Kubernetes بدون نیاز به شناخت جزئیات سخت‌افزار Storage می‌تواند Volume ایجاد و مدیریت کند.

فرآیند کار CSI:

  1. کاربر یک PVC ایجاد می‌کند.
  2. Kubernetes درخواست Storage را دریافت می‌کند.
  3. CSI Driver با Storage ارتباط برقرار می‌کند.
  4. Volume ایجاد شده و به Pod متصل می‌شود.

StatefulSet در Kubernetes چیست؟

Deployment برای برنامه‌هایی که Stateless هستند مناسب است، اما بسیاری از سرویس‌های مهم مانند دیتابیس‌ها نیاز به ذخیره وضعیت دارند.

برای مدیریت برنامه‌های Stateful در Kubernetes از StatefulSet استفاده می‌شود.

برنامه‌های مناسب برای StatefulSet:

  • MySQL
  • PostgreSQL
  • MongoDB
  • Redis Cluster
  • Elasticsearch

ویژگی‌های StatefulSet:

  • نام ثابت برای Pod ها
  • اتصال دائمی به Storage
  • راه‌اندازی ترتیبی Node ها
  • مدیریت بهتر دیتابیس‌ها

نمونه StatefulSet برای دیتابیس

apiVersion: apps/v1

kind: StatefulSet

metadata:

  name: mysql-db


spec:

  serviceName: mysql

  replicas: 3


  selector:

    matchLabels:

      app: mysql


  template:

    metadata:

      labels:

        app: mysql


    spec:

      containers:

      - name: mysql

        image: mysql:latest


ConfigMap در Kubernetes چیست؟

ConfigMap برای نگهداری تنظیمات برنامه‌ها استفاده می‌شود. با استفاده از ConfigMap می‌توان تنظیمات را از کد اصلی برنامه جدا کرد.

مثال‌هایی از اطلاعاتی که در ConfigMap ذخیره می‌شوند:

  • تنظیمات Database Connection
  • تنظیمات برنامه
  • Environment Variable ها
  • تنظیمات سرویس‌ها
apiVersion: v1

kind: ConfigMap

metadata:

  name: app-config


data:

  database_host: mysql-service

  database_port: "3306"

Secret در Kubernetes چیست؟

Secret برای ذخیره اطلاعات حساس استفاده می‌شود. اطلاعاتی مانند رمز عبور، Token ها و کلیدهای امنیتی نباید به صورت مستقیم در فایل‌های برنامه قرار گیرند.

نمونه اطلاعات مناسب برای Secret:

  • Password دیتابیس
  • API Key
  • Certificate
  • SSH Key
apiVersion: v1

kind: Secret

metadata:

  name: database-secret


data:

  password: bXlwYXNzd29yZA==

امنیت در Kubernetes

امنیت Kubernetes یکی از مهم‌ترین بخش‌های مدیریت Cluster است. یک Kubernetes Cluster بدون تنظیمات امنیتی مناسب می‌تواند در معرض حملات مختلف قرار گیرد.

مهم‌ترین اقدامات امنیتی:

  • استفاده از RBAC برای کنترل دسترسی کاربران
  • رمزنگاری اطلاعات حساس
  • استفاده از Network Policy
  • به‌روزرسانی Kubernetes و Node ها
  • محدود کردن دسترسی API Server
  • مانیتورینگ فعالیت کاربران

جمع‌بندی بخش هفتم

در این بخش با اتصال Kubernetes به Storage های سازمانی، CSI، StatefulSet، ConfigMap، Secret و اصول امنیت Kubernetes آشنا شدیم. این موارد برای اجرای Kubernetes در محیط‌های واقعی سازمانی و دیتاسنترها ضروری هستند.

Network Policy در Kubernetes چیست؟

در حالت پیش‌فرض، تمام Pod ها در Kubernetes می‌توانند با یکدیگر ارتباط داشته باشند. در محیط‌های سازمانی و Production این موضوع می‌تواند یک ریسک امنیتی ایجاد کند، زیرا یک سرویس آسیب‌پذیر ممکن است به سایر سرویس‌ها دسترسی پیدا کند.

Network Policy قابلیتی در Kubernetes است که امکان کنترل ترافیک شبکه بین Pod ها را فراهم می‌کند.

با استفاده از Network Policy می‌توان مشخص کرد:

  • کدام Pod ها اجازه ارتباط با یکدیگر دارند.
  • چه پورت‌هایی مجاز به استفاده هستند.
  • کدام سرویس‌ها اجازه دریافت یا ارسال ترافیک دارند.
  • دسترسی شبکه بین Namespace ها چگونه باشد.

نمونه Network Policy در Kubernetes

در مثال زیر فقط Pod هایی با Label مشخص اجازه دسترسی به برنامه Web را خواهند داشت.

apiVersion: networking.k8s.io/v1

kind: NetworkPolicy


metadata:

  name: allow-web


spec:

  podSelector:

    matchLabels:

      app: web


  policyTypes:

  - Ingress


  ingress:

  - from:

    - podSelector:

        matchLabels:

          role: frontend

این Policy باعث می‌شود فقط Pod های مربوط به Frontend بتوانند به سرویس Web دسترسی داشته باشند.

احراز هویت کاربران در Kubernetes

Kubernetes سیستم User Management داخلی مانند Active Directory ندارد، اما امکان اتصال به سیستم‌های احراز هویت مختلف را فراهم می‌کند.

روش‌های رایج Authentication در Kubernetes:

  • Certificate Authentication
  • Token Authentication
  • OpenID Connect
  • LDAP Integration
  • Active Directory Integration

در محیط‌های سازمانی معمولا Kubernetes به سرویس‌هایی مانند Active Directory یا LDAP متصل می‌شود تا کاربران بتوانند با حساب سازمانی خود وارد Cluster شوند.

مانیتورینگ Kubernetes چیست؟

با افزایش تعداد Node ها و Container ها، مشاهده وضعیت Cluster اهمیت بسیار زیادی پیدا می‌کند.

مانیتورینگ Kubernetes کمک می‌کند مشکلاتی مانند:

  • مصرف زیاد CPU
  • کمبود RAM
  • Crash شدن Pod ها
  • خطاهای شبکه
  • مشکلات Storage

سریع‌تر شناسایی شوند.

Prometheus در Kubernetes

Prometheus یکی از محبوب‌ترین ابزارهای Monitoring در محیط‌های Cloud Native است که برای جمع‌آوری Metric ها استفاده می‌شود.

Prometheus اطلاعاتی مانند موارد زیر را جمع‌آوری می‌کند:

  • مصرف CPU و Memory
  • تعداد درخواست‌های سرویس‌ها
  • وضعیت Node ها
  • وضعیت Pod ها
  • خطاهای برنامه‌ها

معمولا Prometheus همراه با Grafana برای نمایش گراف‌ها و داشبوردهای مدیریتی استفاده می‌شود.

Grafana در Kubernetes

Grafana یک ابزار قدرتمند برای نمایش داده‌های Monitoring به صورت Dashboard است.

نمونه داشبوردهای کاربردی Kubernetes:

  • Cluster Overview
  • Node Performance
  • Pod Resource Usage
  • Network Traffic
  • Storage Monitoring

مدیر شبکه یا DevOps Engineer با استفاده از Grafana می‌تواند وضعیت کل Kubernetes Cluster را به صورت لحظه‌ای مشاهده کند.

Logging در Kubernetes

علاوه بر Metric ها، بررسی Log ها برای عیب‌یابی سرویس‌ها بسیار مهم است.

ابزارهای رایج Logging در Kubernetes:

  • Elastic Stack (ELK)
  • Fluent Bit
  • Loki
  • Graylog

با استفاده از سیستم Logging می‌توان خطاهای برنامه، رخدادهای امنیتی و رفتار کاربران را بررسی کرد.

Backup در Kubernetes

پشتیبان‌گیری از Kubernetes فقط شامل فایل‌های برنامه نیست، بلکه باید اطلاعات Cluster و داده‌های برنامه‌ها نیز محافظت شوند.

موارد مهم در Backup:

  • Backup از دیتابیس etcd
  • Backup از YAML Configuration ها
  • Backup از Persistent Volume ها
  • Backup از Secret ها

یکی از ابزارهای معروف Backup در Kubernetes، Velero است که امکان پشتیبان‌گیری و بازیابی منابع Cluster را فراهم می‌کند.

Disaster Recovery در Kubernetes

Disaster Recovery یا بازیابی پس از بحران، مجموعه اقداماتی است که برای بازگرداندن سرویس‌ها پس از خرابی استفاده می‌شود.

راهکارهای مهم:

  • داشتن چند Control Plane
  • Replication اطلاعات etcd
  • Backup منظم Storage
  • استفاده از چند Availability Zone
  • تست دوره‌ای فرآیند Recovery

جمع‌بندی بخش هشتم

در این بخش با امنیت شبکه Kubernetes، Network Policy، احراز هویت کاربران، مانیتورینگ با Prometheus و Grafana، سیستم Logging و روش‌های Backup و Disaster Recovery آشنا شدیم. این موارد برای مدیریت حرفه‌ای Kubernetes در محیط‌های واقعی ضروری هستند.

Kubernetes در محیط Production

استفاده از Kubernetes در محیط آزمایشگاهی بسیار ساده‌تر از محیط واقعی سازمانی است. در محیط Production باید مواردی مانند دسترس‌پذیری بالا، امنیت، مانیتورینگ، Backup، مدیریت منابع و تحمل خطا به صورت حرفه‌ای طراحی شوند.

یک Kubernetes Cluster سازمانی باید بتواند در برابر خرابی یک یا چند سرور، همچنان سرویس‌ها را بدون توقف ارائه دهد.

معماری High Availability در Kubernetes

در معماری High Availability یا HA، بخش‌های حیاتی Kubernetes روی چندین سرور قرار می‌گیرند تا خرابی یک سرور باعث از کار افتادن کل Cluster نشود.

اجزای مهم در طراحی HA:

  • چند Control Plane Node
  • Load Balancer برای API Server
  • کلاستر چند عضوی etcd
  • چند Worker Node
  • Replication برای Application ها

User Request

Load Balancer

Kubernetes API Server

Control Plane Cluster

Worker Nodes

Helm در Kubernetes چیست؟

Helm یک Package Manager برای Kubernetes است که فرآیند نصب و مدیریت برنامه‌ها را ساده می‌کند.

در Kubernetes معمولا برای اجرای یک Application نیاز به چندین فایل YAML داریم. Helm این فایل‌ها را در قالب یک بسته آماده به نام Chart مدیریت می‌کند.

با Helm می‌توان برنامه‌هایی مانند موارد زیر را سریع نصب کرد:

  • Database ها
  • Monitoring Tools
  • Web Server ها
  • Message Broker ها
  • Application های سازمانی

اجزای Helm Chart

هر Helm Chart معمولا شامل فایل‌های زیر است:

  • Chart.yaml:
    اطلاعات اصلی Chart
  • values.yaml:
    تنظیمات قابل تغییر برنامه
  • templates:
    فایل‌های YAML مربوط به Kubernetes
  • charts:
    وابستگی‌های برنامه

دستورات مهم Helm

دستور کاربرد
helm repo add افزودن Repository
helm install نصب Application
helm list نمایش برنامه‌های نصب شده
helm uninstall حذف Application

CI/CD و Kubernetes

یکی از مهم‌ترین کاربردهای Kubernetes در دنیای DevOps، استفاده در Pipeline های CI/CD است.

در روش سنتی، انتشار نسخه جدید نرم‌افزار نیاز به عملیات دستی زیادی داشت، اما با Kubernetes می‌توان فرآیند Deployment را کاملا خودکار کرد.

ابزارهای رایج CI/CD:

  • Jenkins
  • GitLab CI/CD
  • Azure DevOps
  • GitHub Actions
  • Argo CD

روند CI/CD با Kubernetes

  1. برنامه‌نویس کد را در Git قرار می‌دهد.
  2. Pipeline اجرا شده و برنامه Build می‌شود.
  3. Docker Image ساخته می‌شود.
  4. Image در Registry ذخیره می‌شود.
  5. Kubernetes نسخه جدید را Deploy می‌کند.
  6. Health Check انجام شده و سرویس فعال می‌شود.

Kubernetes و VMware

در بسیاری از سازمان‌ها Kubernetes در کنار زیرساخت‌های VMware اجرا می‌شود.

سناریوهای رایج:

  • اجرای Kubernetes روی ماشین‌های مجازی VMware
  • استفاده از vSphere Storage
  • اتصال Kubernetes به VMware Tanzu
  • مدیریت منابع با vCenter

در محیط‌های دیتاسنتری می‌توان Kubernetes را روی زیرساخت‌های مجازی‌سازی شده، SAN Storage و شبکه‌های VLAN سازمانی اجرا کرد.

جمع‌بندی بخش نهم

در این بخش با اجرای Kubernetes در محیط Production، معماری High Availability، ابزار Helm، فرآیند CI/CD و ارتباط Kubernetes با VMware آشنا شدیم. این مفاهیم پایه اصلی استفاده سازمانی از Kubernetes هستند.

بهترین روش‌های مدیریت Kubernetes در محیط‌های سازمانی

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

۱- استفاده از Infrastructure as Code

در محیط‌های حرفه‌ای بهتر است تنظیمات Kubernetes به صورت کد مدیریت شوند. استفاده از ابزارهایی مانند Terraform و Ansible باعث می‌شود ایجاد و مدیریت زیرساخت سریع‌تر، دقیق‌تر و قابل تکرار باشد.

۲- مدیریت منابع با Resource Limit

یکی از مشکلات رایج در Kubernetes مصرف بیش از حد منابع توسط یک Application است. برای جلوگیری از این مشکل باید برای Pod ها محدودیت CPU و Memory تعریف شود.

resources:

  requests:

    memory: "512Mi"

    cpu: "500m"


  limits:

    memory: "1Gi"

    cpu: "1000m"

با این تنظیمات Kubernetes می‌تواند منابع را بهتر مدیریت کرده و از تاثیر یک سرویس بر سایر سرویس‌ها جلوگیری کند.

مسیر یادگیری Kubernetes Administrator

برای تبدیل شدن به یک Kubernetes Administrator حرفه‌ای، بهتر است یادگیری را مرحله به مرحله انجام دهید.

مرحله اول: یادگیری Linux

  • مدیریت سرویس‌ها
  • کار با Command Line
  • مدیریت شبکه Linux
  • مدیریت Storage

مرحله دوم: یادگیری Container ها

  • Docker
  • Dockerfile
  • Docker Image
  • Container Runtime

مرحله سوم: یادگیری Kubernetes

  • Pod
  • Deployment
  • Service
  • Storage
  • Networking
  • Security

مرحله چهارم: ابزارهای DevOps

  • Git
  • CI/CD
  • Jenkins
  • GitLab
  • Terraform
  • Prometheus

مدارک معتبر Kubernetes

برای افرادی که قصد فعالیت حرفه‌ای در حوزه Cloud و DevOps دارند، مدارک Kubernetes می‌توانند ارزش زیادی داشته باشند.

  • CKA:
    Certified Kubernetes Administrator برای مدیران Kubernetes
  • CKAD:
    Certified Kubernetes Application Developer برای توسعه‌دهندگان
  • CKS:
    Certified Kubernetes Security Specialist برای امنیت Kubernetes

سوالات متداول Kubernetes

Kubernetes چه کاربردی دارد؟

Kubernetes برای مدیریت، اجرا، مقیاس‌پذیری و مانیتورینگ برنامه‌های Container شده استفاده می‌شود.

آیا Kubernetes جایگزین Docker است؟

خیر. Docker وظیفه ساخت و اجرای Container را دارد، اما Kubernetes مدیریت و هماهنگی تعداد زیادی Container را انجام می‌دهد.

آیا Kubernetes فقط برای Cloud استفاده می‌شود؟

خیر. Kubernetes می‌تواند در دیتاسنترهای داخلی، سرورهای فیزیکی، VMware و محیط‌های Cloud اجرا شود.

آیا یادگیری Kubernetes برای مدیر شبکه مفید است؟

بله. با گسترش Cloud، DevOps و معماری Microservice، یادگیری Kubernetes یکی از مهارت‌های مهم برای مدیران شبکه و زیرساخت محسوب می‌شود.

کاربرد Kubernetes در سازمان‌ها

امروزه بسیاری از سازمان‌ها برای اجرای سرویس‌های حساس خود از Kubernetes استفاده می‌کنند.

  • راه‌اندازی سرویس‌های Web بزرگ
  • اجرای Application های Microservice
  • مدیریت API های سازمانی
  • اجرای سیستم‌های هوش مصنوعی و پردازش داده
  • پیاده‌سازی زیرساخت Cloud Native
  • افزایش سرعت توسعه نرم‌افزار

نتیجه‌گیری آموزش Kubernetes

Kubernetes یکی از مهم‌ترین فناوری‌های دنیای Cloud Computing و DevOps است که امکان مدیریت هوشمند برنامه‌های کانتینری را فراهم می‌کند.

در این مقاله با مفاهیم پایه و پیشرفته Kubernetes مانند معماری Cluster، Control Plane، Worker Node، Pod، Deployment، Service، Storage، Security، Monitoring و CI/CD آشنا شدیم.

یادگیری Kubernetes برای مدیران شبکه، متخصصان سرور، مهندسان DevOps و برنامه‌نویسانی که قصد فعالیت در زیرساخت‌های مدرن را دارند، یک مهارت بسیار ارزشمند محسوب می‌شود.

مقالات پیشنهادی مرتبط

  • آموزش Docker از صفر تا حرفه‌ای
  • آموزش VMware ESXi و مدیریت سرورهای مجازی
  • آموزش لینوکس برای مدیران شبکه
  • آموزش DevOps و CI/CD Pipeline
  • آموزش نصب و کانفیگ سرورهای لینوکسی
  • معرفی بهترین ابزارهای مانیتورینگ شبکه و سرور
  • آموزش مدیریت SAN Storage در دیتاسنتر

پیشنهاد سئو برای مقاله Kubernetes

برای افزایش رتبه این مقاله در گوگل پیشنهاد می‌شود تصاویر آموزشی با فرمت WebP، لینک‌سازی داخلی به مقالات مرتبط، جدول مقایسه Kubernetes و Docker، و ویدیوهای آموزشی در صفحه اضافه شود.

همچنین استفاده از Schema نوع Article و FAQ Schema می‌تواند باعث نمایش بهتر محتوا در نتایج جستجو شود.

مقالات پیشنهادی برای مطالعه بیشتر

اگر قصد دارید Kubernetes را به صورت حرفه‌ای یاد بگیرید و در زمینه مدیریت زیرساخت‌های مدرن، Cloud، DevOps و دیتاسنتر فعالیت کنید، مطالعه مقالات زیر می‌تواند مسیر یادگیری شما را کامل‌تر کند.

۱- آموزش Docker از صفر تا صد؛ ساخت و مدیریت Container ها

Docker پایه اصلی کار با Container ها است و قبل از یادگیری Kubernetes بهتر است مفاهیم Image، Container، Dockerfile و Docker Compose را به خوبی یاد بگیرید.


مطالعه مقاله آموزش Docker

۲- آموزش VMware ESXi و مجازی‌سازی سرورها

بسیاری از سازمان‌ها Kubernetes را روی زیرساخت‌های مجازی VMware اجرا می‌کنند. آشنایی با ESXi، vCenter، vMotion و Storage برای مدیران زیرساخت بسیار مهم است.


مطالعه مقاله آموزش VMware

۳- آموزش لینوکس برای مدیران شبکه و سرور

Kubernetes بر پایه Linux اجرا می‌شود. یادگیری مدیریت سرویس‌ها، شبکه، فایل سیستم و امنیت Linux برای Kubernetes Administrator ضروری است.


مطالعه مقاله آموزش Linux

۴- DevOps چیست؟ راهنمای کامل فرهنگ و ابزارهای DevOps

Kubernetes یکی از مهم‌ترین اجزای اکوسیستم DevOps است. آشنایی با CI/CD، Git، Pipeline و Automation مسیر ورود به DevOps را هموار می‌کند.


مطالعه مقاله DevOps چیست؟

۵- آموزش نصب و کانفیگ سرور لینوکس

راه‌اندازی سرویس‌های Kubernetes نیازمند آشنایی با نصب، تنظیمات شبکه، Firewall، SSH و مدیریت منابع سرورهای Linux است.


مطالعه مقاله نصب سرور لینوکس

۶- آموزش مانیتورینگ شبکه و سرور با Prometheus و Grafana

مانیتورینگ یکی از بخش‌های مهم مدیریت Kubernetes است. با ابزارهایی مانند Prometheus و Grafana می‌توان سلامت Cluster را بررسی کرد.


مطالعه مقاله ابزارهای مانیتورینگ شبکه

۷- آموزش مدیریت SAN Storage و اتصال آن به سرورها

در محیط‌های Enterprise، Kubernetes معمولا برای ذخیره اطلاعات دائمی به Storage های مرکزی مانند SAN متصل می‌شود.


مطالعه مقاله SAN Storage چیست؟

۸- آموزش مفاهیم Cloud Computing و زیرساخت ابری

Kubernetes یکی از ستون‌های اصلی Cloud Native است. آشنایی با Cloud، IaaS، PaaS و SaaS درک بهتری از کاربردهای Kubernetes ایجاد می‌کند.


مطالعه مقاله Cloud Computing چیست؟

۹- آموزش امنیت شبکه و Kubernetes Security

امنیت Container ها، مدیریت دسترسی‌ها، RBAC، Network Policy و محافظت از API Server از مهم‌ترین موضوعات امنیت Kubernetes هستند.


مطالعه مقاله امنیت شبکه

۱۰- آموزش Git و CI/CD برای مهندسان DevOps

برای استقرار خودکار برنامه‌ها در Kubernetes، یادگیری Git، Pipeline و ابزارهای اتوماسیون ضروری است.


مطالعه مقاله CI/CD چیست؟

مسیر پیشنهادی یادگیری Kubernetes

برای یادگیری حرفه‌ای Kubernetes پیشنهاد می‌شود این مسیر را دنبال کنید:

Linux
⬇️
Docker
⬇️
Networking
⬇️
Kubernetes Fundamentals
⬇️
Storage و Security
⬇️
Helm و CI/CD
⬇️
DevOps Engineer

امتیاز post