زبان خود را انتخاب کنید

آموزش کوبرنتیز

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

در این نقشه راه یادگیری Kubernetes، پیش‌نیازها و یک مسیر یادگیری کامل را اضافه کرده‌ام که مفاهیم پایه تا پیشرفته Kubernetes را پوشش می‌دهد.

پیش‌نیازهای یادگیری Kubernetes

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

  1. سیستم توزیع‌شده: در مورد اصول اولیه سیستم‌های توزیع‌شده و موارد استفاده آنها در زیرساخت‌های مدرن فناوری اطلاعات اطلاعات کسب کنید. داشتن دانش در مورد قضیه CAP خوب است.
  2. احراز هویت و مجوز: یک مفهوم بسیار اساسی در فناوری اطلاعات. با این حال، مهندسانی که حرفه خود را شروع می‌کنند، معمولاً گیج می‌شوند. بنابراین لطفاً درک خوبی از یادگیری از قیاس‌ها داشته باشید. اغلب این اصطلاحات را در Kubernetes خواهید دید.
  3. ذخیره کلید-مقدار: این نوعی پایگاه داده NoSQL است. اصول اولیه و موارد استفاده آنها را به اندازه کافی درک کنید.
  4. API: Kubernetes یک سیستم مبتنی بر API است. بنابراین باید درکی از APIهای RESTFUL داشته باشید. همچنین، سعی کنید API مربوط به gRPC را درک کنید. داشتن دانش خوب است.
  5. YAML: YAML مخفف YAML Ain’t Markup Language است. این یک زبان سریال‌سازی داده است که می‌تواند برای ذخیره‌سازی داده‌ها و فایل‌های پیکربندی استفاده شود. یادگیری آن بسیار آسان است و از دیدگاه Kubernetes، ما از آن برای فایل‌های پیکربندی استفاده خواهیم کرد. بنابراین درک نحو YAML بسیار مهم است.
  6. کانتینر: کانتینر بلوک سازنده اصلی Kubernetes است. کار اصلی Kubernetes هماهنگ‌سازی کانتینرها است. شما باید تمام اصول اولیه کانتینر را یاد بگیرید و تجربه عملی کار با ابزارهای کانتینر مانند Docker یا Podman را داشته باشید. همچنین پیشنهاد می‌کنم در مورد ابتکار عمل کانتینر باز و رابط زمان اجرای کانتینر (CRI) مطالعه کنید.
  7. کشف سرویس: این یکی از زمینه‌های کلیدی Kubernetes است. شما باید دانش اولیه‌ای در مورد کشف سرویس سمت کلاینت و سمت سرور داشته باشید. به عبارت ساده، در کشف سرویس سمت کلاینت، درخواست به یک رجیستری سرویس می‌رود تا نقاط پایانی برای سرویس‌های backend در دسترس قرار گیرند. در کشف سرویس سمت سرور، درخواست به یک متعادل‌کننده بار می‌رود و متعادل‌کننده بار از رجیستری سرویس برای دریافت پایان سرویس‌های backend استفاده می‌کند.
  8. مبنای شبکه: شبکه بخش کلیدی Kubernetes است. برای درک شبکه‌سازی Kubernetes، باید دانش نسبتاً خوبی از مباحث زیر داشته باشید.
    1. نمادگذاری CIDR و نوع آدرس‌های IP
    2. لایه‌های L2، L3، L4 و L7 (لایه‌های OSI)
    3. SSL/TLS: TLS یک‌طرفه و متقابل
    4. پروکسی
    5. DNS
    6. IPVS/IPTables/NFtables
    7. شبکه‌سازی مبتنی بر نرم‌افزار (SDN)
    8. رابط‌های مجازی
    9. شبکه‌سازی هم‌پوشانی

یادگیری معماری کوبرنتیز

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

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

پیشنهاد من این است:

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

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

در کل، باید موارد زیر را یاد بگیرید.

  1. اجزای صفحه کنترل: نقش هر جزء مانند سرور API، etcd، Scheduler و Controller manager را درک کنید.
  2. اجزای گره Worker: درباره Kube Proxy، Kubelet، Container Runtime اطلاعات کسب کنید.
  3. اجزای Addon: CoreDNS، افزونه‌های شبکه (Calico، weave و غیره)، Metric Server
  4. کلاسترHA: اکثر سازمان‌ها از سرویس‌های Kubernetes مدیریت‌شده (GKE، EKS، AKS و غیره) استفاده می‌کنند. بنابراین ارائه‌دهنده ابر، دسترسی‌پذیری بالای صفحه کنترل کلاستر را بر عهده می‌گیرد. با این حال، یادگیری مفاهیم دسترسی‌پذیری بالا در مقیاس‌بندی کلاستر در چندین منطقه و ناحیه بسیار مهم است. این امر به شما در پروژه‌های بلادرنگ و مصاحبه‌های DevOps کمک خواهد کرد.
  5. طراحی شبکه: اگرچه راه‌اندازی یک کلاستر در یک شبکه باز و بدون محدودیت آسان است، اما در یک شبکه شرکتی به این راحتی نیست. به عنوان یک مهندس DevOps، باید طراحی و الزامات شبکه Kubernetes را درک کنید تا بتوانید با تیم شبکه بهتر همکاری کنید. برای مثال، وقتی داشتم با راه‌اندازی kubernetes روی Google Cloud کار می‌کردم، از یک محدوده‌ی Pod با CIDR استفاده می‌کردیم که در شبکه‌ی شرکت قابل مسیریابی نبود. به عنوان یک راه حل، مجبور شدیم IP Masquerading را برای شبکه‌ی Pod مستقر کنیم.

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

بیش از ۱۰۰۰ دلار اعتبار ابری رایگان برای استقرار کلاسترها

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

همه پلتفرم‌ها خدمات مدیریت‌شده k8s را ارائه می‌دهند.

  1. GKE (گوگل کلود - ۳۰۰ دلار اعتبار رایگان)
  2. EKS (AWS - ۳۰۰ دلار اعتبار رایگان POC)
  3. DO Kubernetes (دیجیتال اوشن - ۲۰۰ دلار اعتبار رایگان)
  4. Linode Kubernetes Engine (لینود کلود - ۱۰۰ دلار اعتبار رایگان)
  5. Vultr Kubernetes Engine (ولتر کلود - ۲۵۰ دلار اعتبار رایگان)

از یک حساب کاربری در یک زمان استفاده کنید. پس از اتمام اعتبار، به حساب بعدی بروید. باید مراقب اعتبار خود و همچنین تاریخ انقضا باشید. در غیر این صورت ممکن است هزینه دریافت کنید. همچنین، شرایط و محدودیت‌های استفاده از نمونه را در صورت وجود بررسی کنید.

همچنین، راه‌اندازی سرورها روی این پلتفرم بسیار آسان است و هر ارائه‌دهنده ابری مستندات گسترده‌ای برای شروع دارد.

راه اندازی کلاستر کوبرنتیز

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

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

این به شما احساس کار بر روی یک پروژه دنیای واقعی را می‌دهد. همچنین در مصاحبه‌ها به شما کمک می‌کند و می‌توانید در مورد پیکربندی‌های خوشه در سطح تولید مطمئن باشید.

در ادامه پیشنهادات من برای راه‌اندازی خوشه آمده است.

  1. Kubernetes به روش سخت: پیشنهاد می‌کنم با راه‌اندازی Kubernetes به روش سخت شروع کنید. این به شما کمک می‌کند تا تمام پیکربندی‌های مربوط به راه‌اندازی یک خوشه Kubernetes را درک کنید. اگر می‌خواهید روی خوشه‌های تولید کار کنید، این آزمایشگاه به شما کمک زیادی خواهد کرد. همچنین، اگر قادر به راه‌اندازی خوشه کامل نیستید، اشکالی ندارد. حداقل در مورد تمام اجزایی که خوشه را تشکیل می‌دهند، یاد خواهید گرفت.
  2. راه‌اندازی کلاستر Kubeadm: یادگیری راه‌اندازی کلاستر kubeadm به شما در آماده‌سازی برای گواهینامه Kubernetes کمک می‌کند. همچنین، به شما کمک می‌کند تا راه‌اندازی کلاستر Kubernetes را با بهترین شیوه‌ها خودکار کنید.
  3. Minikube: اگر می‌خواهید یک راه‌اندازی کلاستر توسعه حداقلی داشته باشید، minikube بهترین گزینه است.
  4. Kind: Kind یکی دیگر از تنظیمات کلاستر Kubernetes توسعه محلی است.
  5. Kubernetes خودکار Vagrant: اگر ترجیح می‌دهید یک راه‌اندازی کلاستر Kubernetes محلی مبتنی بر چند ماشین مجازی داشته باشید، می‌توانید راه‌اندازی خودکار Vagrant را که از Kubeadm برای راه‌اندازی خودکار کلاستر استفاده می‌کند، امتحان کنید.

درباره پیکربندی‌های کلاستر اطلاعات کسب کنید

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

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

به عنوان مثال، اگر یک کلاستر را در یک شبکه ترکیبی راه‌اندازی می‌کنید، ممکن است لازم باشد آن را با یک سرور DNS خصوصی داخلی برای وضوح DNS خصوصی پیکربندی کنید. این کار را می‌توان از طریق پیکربندی CoreDNS انجام داد.

برای جزئیات بیشتر به راهنمای پیکربندی‌های کلاستر Kubernetes مراجعه کنید.

همچنین، داشتن درک کاملی از پیکربندی‌های کلاستر به شما در اخذ گواهینامه‌های Kubernetes (CKA و CKS) کمک می‌کند، جایی که نیاز به عیب‌یابی پیکربندی نادرست و مشکلات کلاستر دارید.

درک فایل Kubeconfig

فایل Kubeconfig یک فایل YAML است که شامل تمام اطلاعات کلاستر و اعتبارنامه‌ها برای اتصال به کلاستر است.

به عنوان یک مهندس Devops، باید یاد بگیرید که با استفاده از فایل Kubeconfig به روش‌های مختلف به کلاسترهای kubernetes متصل شوید. زیرا شما مسئول تنظیم احراز هویت خوشه‌ای برای سیستم‌های CI/CD، ارائه دسترسی خوشه‌ای به توسعه‌دهندگان و غیره خواهید بود.

بنابراین زمانی را صرف درک ساختار فایل Kubeconfig و پارامترهای مرتبط با آن کنید.

برای یادگیری همه چیز در مورد فایل Kubeconfig، راهنمای کامل فایل Kubeconfig را بررسی کنید.

objectها و منابع Kubernetes را درک کنید

شما اغلب با نام‌های "شیء Kubernetes" و "منبع Kubernetes" مواجه خواهید شد.

ابتدا، باید تفاوت بین یک شیء و یک منبع را در Kubernetes درک کنید.

به عبارت ساده، هر چیزی که کاربر در Kubernetes ایجاد و ذخیره می‌کند، یک شیء است. به عنوان مثال، یک فضای نام، غلاف، نقشه پیکربندی استقرار، راز و غیره.

قبل از ایجاد یک شیء، آن را با فرمت YAML یا JSON نمایش می‌دهید. به آن مشخصات شیء (Spec) گفته می‌شود. شما وضعیت مورد نظر شیء را در مشخصات شیء اعلام می‌کنید. پس از ایجاد شیء، می‌توانید جزئیات آن را از API Kubernetes با استفاده از Kubectl یا کتابخانه‌های کلاینت بازیابی کنید. همانطور که قبلاً در بخش پیش‌نیازها بحث کردیم، همه چیز در Kubernetes یک API است. برای ایجاد انواع مختلف شیء، نقاط پایانی API وجود دارد که توسط سرور API Kubernetes ارائه می‌شود. به آن نقاط پایانی api مختص شیء، منابع گفته می‌شود. به عنوان مثال، یک نقطه پایانی برای ایجاد یک pod، منبع pod نامیده می‌شود.

بنابراین وقتی سعی می‌کنید با استفاده از Kubectl یک شیء Kubernetes ایجاد کنید، Kubectl مشخصات YAML را به فرمت JSON تبدیل می‌کند و آن را به منبع Pod (نقطه پایانی API Pod) ارسال می‌کند.

برای جزئیات بیشتر می‌توانید به راهنمای Kubernetes objects vs resource مراجعه کنید.

آشنایی با Pod و منابع مرتبط

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

شما باید تمام مفاهیم Pod و اشیاء مرتبط با آنها مانند Service، Ingress، Persistent Volume، Configmap و Secret را یاد بگیرید. هنگامی که همه چیز را در مورد یک pod بدانید، یادگیری سایر اشیاء وابسته به pod مانند deployments، Daemonset و غیره بسیار آسان است.

ابتدا، در مورد Pod Resource Definition (YAML) بیاموزید. یک Pod معمولی شامل ساختارهای سطح بالای زیر است.

  1. نوع
  2. فراداده
  3. حاشیه‌نویسی‌ها
  4. برچسب‌ها
  5. انتخابگرها

برای یادگیری تمام اصول اولیه در مورد Pod به وبلاگ Kubernetes Pod Explained مراجعه کنید.

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

در ادامه، وظایف عملی برای یادگیری در مورد Pod و اشیاء مرتبط با آن آمده است.

  1. استقرار یک پاد
  2. استقرار پاد روی گره کارگر خاص
  3. افزودن سرویس به پاد
  4. آشکار کردن سرویس پاد با استفاده از Nodeport
  5. آشکار کردن سرویس پاد با استفاده از Ingress
  6. راه اندازی منابع و محدودیت های پاد
  7. راه اندازی پاد با پروب های راه اندازی، زنده بودن و آمادگی.
  8. اضافه کردن حجم پایدار به پاد.
  9. اتصال configmap به پاد
  10. اضافه کردن راز به پاد
  11. پادهای چند کانتینری (الگوی کانتینر sidecar)
  12. کانتینرهای Init
  13. کانتینرهای Ephemeral
  14. پادهای استاتیک
  15. یادگیری عیب یابی پادها

چند مفهوم پیشرفته زمانبندی پاد.

  1. پیش دستی و اولویت پاد
  2. بودجه اختلال پاد
  3. جایگذاری پاد با استفاده از یک انتخابگر گره
  4. همبستگی و ضدهمبستگی پاد
  5. قلاب های چرخه عمر کانتینر

یادگیری Objectهای وابسته به پاد

اکنون که درک بهتری از منابع پاد و مستقل کوبرنتیز دارید، می توانید شروع به یادگیری در مورد اشیاء وابسته به شیء پاد کنید. هنگام یادگیری این موضوع، با مفاهیمی مانند HPA (مقیاس‌بندی خودکار Pod افقی) و VPA (مقیاس‌بندی خودکار Pod تأیید) مواجه خواهید شد.

  1. Replicaset
  2. Deployment
  3. Daemonsets
  4. Statefulset
  5. Jobs & Cronjobs

یادگیری Ingress و Ingress Controllers

برای نمایش برنامه‌ها به دنیای خارج یا کاربران نهایی، کوبرنتیز یک شیء بومی به نام ingress دارد.

بسیاری از مهندسان به دلیل دانش کمتر در مورد کنترل‌کننده‌های Ingress با Ingress اشتباه می‌گیرند. مطمئن شوید که مفهوم Ingress و کنترل‌کننده‌های Ingress را به درستی درک کرده‌اید. زیرا اساس نمایش برنامه‌ها به دنیای خارج است.

می‌توانید با راهنماهای جامع زیر شروع کنید.

  1. توضیح Kubernetes Ingress
  2. راه‌اندازی Nginx Ingress Controller

همچنین، در مورد Kubernetes Gateway API بیاموزید. این API ویژگی‌های پیشرفته‌ای را نسبت به Ingress ارائه می‌دهد.

آموزش استقرار برنامه میکروسرویس‌های End-to-End در کوبرنتیز

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

پیشنهاد می‌کنم یک نام دامنه تهیه کنید و سعی کنید یک برنامه میکروسرویس را از ابتدا راه‌اندازی کنید و آن را در دامنه خود میزبانی کنید.

نیازی به توسعه یک برنامه برای این کار ندارید. یک برنامه مبتنی بر میکروسرویس متن‌باز انتخاب کنید و آن را مستقر کنید. پیشنهاد من این است که برنامه میکروسرویس کلینیک حیوانات خانگی متن‌باز مبتنی بر Spring Boot را انتخاب کنید.

در ادامه وظایف سطح بالا آمده است.

  1. برای همه سرویس‌ها تصاویر Docker بسازید. مطمئن شوید که Dockerfile را برای کاهش اندازه تصویر Docker بهینه می‌کنید.
  2. برای همه سرویس‌ها مانیفست ایجاد کنید. (Deployment، Statefulset، Services، Configmaps، Secrets و غیره). سعی کنید همه پارامترهای پشتیبانی شده را برای هر نوع شیء اضافه کنید.
  3. front-end را با نوع سرویس ClusterIp نمایش دهید.
  4. Nginx Ingress controller را مستقر کنید و آن را با نوع سرویس Loadbalancer نمایش دهید.
  5. یک شیء Ingress با front-end به عنوان سرویس back-end ایجاد کنید.
  6. IP متعادل‌کننده بار را به نام دامنه نگاشت کنید.
  7. یک شیء ingress با نام DNS با back-end به عنوان نام سرویس front-end ایجاد کنید.
  8. برنامه را اعتبارسنجی کنید.

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

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

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

  1. حساب کاربری سرویس
  2. زمینه امنیتی پاد
  3. Seccomp & AppArmor
  4. کنترل دسترسی مبتنی بر نقش (RBAC)
  5. کنترل دسترسی مبتنی بر ویژگی (ABAC)
  6. سیاست‌های شبکه

در ادامه ابزارهای متن‌بازی که باید بررسی کنید، آمده است.

  1. عامل سیاست باز
  2. Kyverno
  3. Kube-bench
  4. Kube-hunter
  5. Falco

آشنایی با ابزارهای مدیریت پیکربندی Kubernetes

اکنون که درک خوبی از تمام اشیاء Kubernetes و استقرار برنامه‌ها در Kubernetes دارید، می‌توانید شروع به یادگیری در مورد ابزارهای مدیریت پیکربندی Kubernetes کنید.

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

زیرا در سازمان‌ها، محیط‌های مختلفی مانند dev، stage، pre-prod و production وجود دارد. شما نمی‌توانید برای هر محیط فایل‌های YAML جداگانه ایجاد کنید و آنها را به صورت دستی مدیریت کنید. بنابراین به سیستمی نیاز دارید تا پیکربندی‌های Kubernetes YAML را به طور موثر مدیریت کند.

در ادامه ابزارهای محبوب و پرکاربرد Kubernetes برای مدیریت YAML آمده است.

  1. Helm (موتور قالب‌بندی)
  2. Kuztomize (موتور همپوشانی)

آشنایی با الگوی عملگر Kubernetes

عملگرهای Kubernetes یک مفهوم پیشرفته هستند.

برای درک عملگرها، ابتدا باید مفاهیم Kubernetes زیر را بیاموزید.

  1. تعاریف منابع سفارشی
  2. کنترل‌کننده‌های پذیرش
  3. اعتبارسنجی و تغییر Webhooks

برای شروع کار با عملگرها، می‌توانید تنظیم عملگرهای زیر را در Kubernetes امتحان کنید.

  1. عملگر Prometheus
  2. عملگر MySQL

اگر توسعه‌دهنده Go هستید یا می‌خواهید توسعه/سفارشی‌سازی kubernetes را یاد بگیرید، پیشنهاد می‌کنم با استفاده از Golang عملگر خودتان را ایجاد کنید.

پیکربندی‌های مهم Kubernetes را بیاموزید

هنگام یادگیری kubernetes، ممکن است از یک کلاستر در اتصال شبکه باز استفاده کنید.

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

بنابراین، در اینجا برخی از پیکربندی‌های کلاستر سفارشی که باید از آنها آگاه باشید، آورده شده است:

  1. سرور DNS سفارشی
  2. ثبت تصویر سفارشی
  3. ارسال گزارش‌ها به سیستم‌های گزارش‌گیری خارجی
  4. اتصال OpenID Kubernetes
  5. جداسازی و ایمن‌سازی گره‌ها برای بارهای کاری PCI و PII

 

یادگیری بهترین شیوه‌های Kubernetes

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

  1. برنامه‌های ۱۲ عاملی: این یک روش‌شناسی است که در مورد نحوه کدنویسی، استقرار و نگهداری برنامه‌های کاربردی مبتنی بر میکروسرویس‌های مدرن صحبت می‌کند. از آنجایی که Kubernetes یک پلتفرم میکروسرویس بومی ابری است، این یک مفهوم ضروری برای مهندسان DevOps است. بنابراین وقتی روی یک پروژه Kubernetes در زمان واقعی کار می‌کنید، می‌توانید این اصول ۱۲ عاملی را پیاده‌سازی کنید.
  2. داستان‌های شکست Kubernetes: داستان‌های شکست Kubernetes وب‌سایتی است که لیستی از مقالاتی را دارد که در مورد شکست‌ها در پیاده‌سازی Kubernetes صحبت می‌کنند. اگر این داستان‌ها را بخوانید، می‌توانید از این اشتباهات در پیاده‌سازی Kubernetes خود جلوگیری کنید.
  3. مطالعات موردی از سازمان‌ها: برای موارد استفاده منتشر شده توسط سازمان‌ها در مورد استفاده و مقیاس‌بندی Kubernetes وقت بگذارید. می‌توانید از آنها چیزهای زیادی بیاموزید. در ادامه برخی از مطالعات موردی که ارزش خواندن دارند، آورده شده است.
    1. برنامه‌ریزی روزانه ۳۰۰۰۰۰ پاد کوبرنتیز در محیط عملیاتی
    2. مقیاس‌بندی کوبرنتیز تا ۷۵۰۰ گره

بهترین منابع برای یادگیری آنلاین کوبرنتیز

در ادامه فهرستی از بهترین منابع آنلاین برای یادگیری عملی کوبرنتیز آمده است.

۱. آموزش رسمی مبانی کوبرنتیز

وب‌سایت رسمی کوبرنتیز دارای آموزش‌های عملی مبتنی بر مرورگر برای کوبرنتیز است که توسط سناریوهای Katacoda ارائه شده است. این آموزش‌ها موارد زیر را پوشش می‌دهند.

  1. مبانی کوبرنتیز
  2. پیکربندی‌های کوبرنتیز
  3. استقرار برنامه‌های بدون وضعیت (Stateless)
  4. استقرار برنامه‌های با وضعیت (Stateful)
  5. خدمات کوبرنتیز
  6. امنیت کوبرنتیز

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

۲. آموزش‌های DevOpsCube Kubernetes

DevOpsCube بیش از ۳۵ آموزش جامع Kubernetes برای کاربران مبتدی تا پیشرفته دارد. شما همه چیز را از معماری Kubernetes، راه‌اندازی کلاستر، استقرارها، بهترین شیوه‌ها، مدیریت بسته، مدیریت مخفی، نظارت، ثبت وقایع و غیره خواهید آموخت.

۳. آموزش‌های تعاملی KillerCoda

اگر می‌خواهید Kubernetes را از طریق مرورگر خود یاد بگیرید، Killercoda گزینه بسیار خوبی است. این سایت، محیط‌های یادگیری مبتنی بر سناریو را در مرورگر ارائه می‌دهد.

مخزن گیت‌هاب یادگیری Kubernetes

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

این مخزن توسط اعضای جامعه نگهداری و مشارکت می‌شود و موارد زیر را دارد:

  1. مسیر یادگیری ساختاریافته Kubernetes
  2. منابع برای استقرار خوشه Kubernetes به صورت رایگان.
  3. منابع یادگیری رایگان Kubernetes
  4. آموزش‌های عملی Kubernetes.
  5. مطالعات موردی استقرار Kubernetes در محیط عملیاتی

بهترین راه برای یادگیری Kubernetes چیست؟

بیایید نگاهی به برخی از بهترین راه‌ها برای یادگیری Kubernetes بیندازیم.

شما می‌توانید در هر یک از دسته‌های زیر قرار بگیرید.

  1. خودآموزی: اگر خودآموز هستید، می‌توانید با نقشه راه شروع کنید و برای هر موضوع، تحقیقات بیشتری انجام دهید و از وبلاگ‌ها، مستندات رسمی، آموزش‌های رایگان یوتیوب و ویدیوهای Kubecon یاد بگیرید.
  2. یادگیری هدایت‌شده (متن): اگر به خواندن مطالب هدایت‌شده علاقه دارید، بهترین مکان برای یادگیری Kubernetes شروع با یک کتاب Kubernetes برای مبتدیان است. پیشنهاد من «Kubernetes Up and Running» و سپس Kubernetes in Action است. همچنین می‌توانید دوره آموزشی Kubernetes را امتحان کنید.
  3. آموزش هدایت‌شده (ویدئوها): اگر می‌خواهید Kubernetes را با تماشای دوره‌های ویدیویی هدایت‌شده یاد بگیرید، می‌توانید با دوره‌های Udemy، Pluralsight یا KodeKloud Kubernetes شروع کنید.
  4. ثبت‌نام برای گواهینامه: راه دیگر برای یادگیری Kubernetes، آماده شدن برای گواهینامه Kubernetes است. به این ترتیب، شما نه تنها Kubernetes را یاد می‌گیرید، بلکه گواهینامه‌ای برای ارتقای شغلی خود نیز خواهید داشت. اگر این مسیر را انتخاب می‌کنید، مهم است که از نمونه‌های امتحانی استفاده نکنید. در عوض، تمام مفاهیم را به درستی یاد بگیرید و در آزمون شرکت کنید. می‌توانید با استفاده از کوپن گواهینامه Kubernetes در هزینه گواهینامه صرفه‌جویی کنید.

مطالعات موردی Kubernetes در دنیای واقعی

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

در اینجا چند مطالعه موردی خوب Kubernetes در دنیای واقعی وجود دارد که می‌تواند دانش Kubernetes شما را افزایش دهد:

  1. لیست مطالعات موردی کاربران Kubernetes
  2. چگونه OpenAI کوبرنتیز را به ۷۵۰۰ گره ارتقا داد
  3. آزمایش ۵۰۰ پاد در هر گره
  4. مقیاس‌بندی پویای خوشه Kubernetes در Airbnb
  5. مقیاس‌بندی ۱۰۰ تا ۱۰۰۰۰ پاد در Amazon EKSBlog

جدیدترین‌های آخرین نسخه Kubernetes

هنگام یادگیری Kubernetes، بهتر است آخرین نسخه‌های Kubernetes و ویژگی‌های جدید را پیگیری کنید. من به روز رسانی آخرین اطلاعات و لیست ویژگی‌ها را ادامه خواهم داد.

Latest Kubernetes Release Details
Kubernetes v1.27 Mandala
Kubernetes v1.27 Named as Chill Vibes
Kubernetes v1.26 Named as Electrifying
Key Features 1. Provision volumes from cross-namespace snapshots
2. You can configure Service Level Indicator (SLI) metrics for kubernetes binaries
3. Support of Mixed Protocols in Services with Type LoadBalancer

 

نتیجه‌گیری

در این مسیر یادگیری، تمام مفاهیم مهم مورد نیاز برای تسلط بر کوبرنتیز را پوشش داده‌ام. با انتشار نسخه‌های جدید کوبرنتیز، ویژگی‌های جدیدی را اضافه خواهم کرد.

همچنین، یادگیری یک مهارت فنی جدید ساعت‌ها تمرین نیاز دارد. مطمئناً در فرآیند یادگیری درک خوبی از کوبرنتیز به دست خواهید آورد، اما حقیقت این است که هرگز یادگیری متوقف نمی‌شود.