دوره آموزش کوبرنتیز | Kubernetes

حرفه ای کوبرنتیز و Container Orchestration را بیاموزید!

Kubernetes Full Course

نام دوره آموزشیدوره آموزش کوبرنتیز (Kubernetes)

 

logo for kubernetesمعرفی دوره آموزشی: این دوره به آموزش کوبرنتیز (Kubernetes) با نماد اختصاری k8s به عنوان یک سیستم کلاسترینگ و کانتینر متن باز می پردازد که توسط شرکت گوگل ارائه شده است. سرفصل های این دوره بر اساس برنامه و سرفصل های رسمی دوره CKA یا Certified Kubernetes Administrator تنظیم شده و مهارت، دانش و تخصص لازم را به مدیران سیستم Kubernetes می آموزد. کوبرنتیز (Kubernetes) به عنوان یکی از برجسته ترین ابزارهای حوزه دواپس (DevOps) مطرح گردیده و جزء موضوعات داغ دواپس (DevOps) در سال 2020 می باشد. این ابزار جهت خودکار سازی استقرار برنامه، مقیاس پذیری بالا و خودکارسازی و همچنین مدیریت و اجرای برنامه ها با Resource بسیار کم طراحی شده است و می تواند به عنوان یک زیر ساخت بسیار قدرتمند سازمان ها را در بهبود سرویس دهی و رضایتمندی مشتریان یاری نماید. لازم به ذکر است اغلب سرویس دهندگان ابری یک بستر یا زیرساخت مبتنی بر Kubernetes ارائه می دهند که در آن می توان Kubernetes را به عنوان یک سرویس ارائه دهنده پلتفرم (PaaS) یا زیرساخت (IaaS) معرفی نمود.این اکوسیستم بزرگ به سرعت در حال رشد است. از نکات حائز اهمیت آن می توان به خدمات، پشتیبانی و ابزارهای Kubernetes اشاره نمود که به طور گسترده ای در دسترس هستند و با تمامی پلتفرم ها تعامل بسیار خوبی دارند.تعداد کانتینرهایی که کوبرنتیز پوشش می‌دهد گاهی اوقات از صدها هزار هم تجاوز می‌کند، که تعامل با چنین حجمی از کانتینرها بدون راه‌کارهایی چون Kubernetes عملاً دست‌نیافتنی است.کوبرنتیز قابلیت‌های فنی زیادی را در اختیار توسعه‌دهندگان قرار می‌دهند که در این بین می‌توان به امکان بررسی سلامت و تکثیر برنامه‌ها در سرورهای یک مجموعه اشاره کرد. همچنین می توان به قابلیت تشخیص سرویس‌ها، تعادل حجم‌بار (Load Balancing) و مدیریت تنظیمات برای ایجاد سیستم‌هایی که از فناوری معماری Microservice Architecture بهره می‌برند نیز اشاره کرد.

 

محتوای آموزشی: آموزش کوبرنتیز (Kubernetes) بصورت کاربردی و عملیاتی 

 

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

  • متخصصان DevOps
  • متخصصانی که نیازمند استفاده از containerized applications هستند
  • مهندسان SRE یا Site Reliability Engineers
  • متخصصان Operations
  • متخصصان زیر ساخت 

 

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

 

مدت زمان آموزش: ۶۰ ساعت

 

نحوه برگزاری: آنلاین / حضوری


پیش نیاز آموزش:
دوره Docker

 

دوره رایگان Kubernetes: برای اطمینان از کیفیت دوره Kubernetes جلسه اول دوره را رایگان ثبت نام کنید.

 

زمان بندی و هزینه آموزش: برای اطلاع از زمان برگزاری و هزینه لطفا به تقویم آموزشی مراجعه نمایید.

 

معتبرترین مدرک آموزشی: در پایان هر دوره مدرک معتبر اعطا خواهد شد که نمونه آن را می توانید در لینک "نمونه مدارک" مشاهده کنید.

Core Concepts

  • Core Concepts Section Introduction
  • Cluster Architecture
  • Docker vs ContainerD
  • ETCD For Beginners
  • ETCD in Kubernetes
  • Kube API Server
  • Kube Controller Manager
  • Kube Scheduler
  • Kubelet
  • Kube Proxy
  • Pods
  • Practice Test PODs
  • ReplicaSets
  • Practice Tests ReplicaSet
  • Deployments
  • Namespaces
  • Practice Test Namespaces
  • Services
  • Services ClusterIP
  • Practice Test Services
  • Imperative Commands with kubectl
  • Practice Test Imperative Commands

 

Scheduling

  • Scheduling Section Introduction
  • Manual Scheduling
  • Practice Test Manual Scheduling
  • Labels and Selectors
  • Practice Test Labels and Selectors
  • Taints and Tolerations
  • Practice Test Taints and Tolerations
  • Node Selectors
  • Node Affinity
  • Practice Test Node Affinity
  • Taints and Tolerations vs Node Affinity
  • Resource Limits
  • Practice Test Resource Limits
  • DaemonSets
  • Practice Test DaemonSets
  • Static Pods
  • Practice Test StaticPods
  • Multiple Schedulers
  • Practice Test Multiple Schedulers
  • Configuring Kubernetes Schedulers

 

Logging and Monitoring

  • Logging and Monitoring Section Introduction
  • Monitor Cluster Components
  • Practice Test Monitor Cluster Components
  • Managing Application Logs
  • Download Presentation Deck
  • Practice Test Managing Application Logs

 

Application Lifecycle Management

  • Application Lifecycle Management Section Introduction
  • Rolling Updates and Rollback
  • Practice Test Rolling Updates Rollback
  • Commands and Arguments in Docker
  • Commands and Arguments in Kubernetes
  • Practice Test Commands and Arguments
  • Configure Environment Variables in Applications
  • Configure ConfigMaps in Applications
  • Practice Test Env Variables
  • Secrets
  • Practice Test Secrets
  • Multi Containers PODs
  • Practice Test Multi Container Pods
  • Multi Container Pods Design Patterns
  • Init Containers
  • Practice Test Init Containers
  • Self-Healing Applications

 

Cluster Maintenance

  • Cluster Maintenance Section Introduction
  • OS Upgrades
  • Practice Test OS Upgrades
  • Kubernetes Software Versions
  • Cluster Upgrade Introduction
  • Practice Test Cluster Upgrade Process
  • Backup and Restore Methods
  • Working with ETCDCTL
  • Practice Test Backup and Restore Methods
  • Practice Test Backup and Restore Methods 2

 

Security

  • Security Section Introduction
  • Kubernetes Security Primitives
  • Authentication
  • TLS Certificates
  • TLS Basics
  • TLS in Kubernetes
  • TLS in Kubernetes Certificate Creation
  • View Certificate Details
  • Certificate Health Check Spreadsheet
  • Practice Test View Certificate Details
  • Certificate API
  • Practice Test Certificates API
  • kubeconfig
  • Practice Test KubeConfig
  • API Groups
  • Authorization
  • RBAC
  • Practice Test RBAC
  • Cluster Roles
  • Practice Test Cluster Roles
  • Image Security
  • Practice Test Image Security
  • Security Context
  • Practice Test Security Context
  • Network Policies
  • Practice Test Network Policies
  • kubectx and kubens commands
  • Download Presentation Deck

 

Storage 

  • Storage Section Introductio
  • Introduction to Docker Storage
  • Storage in Docker
  • Volume Driver Plugins in Docker
  • Container Storage Interface
  • Volumes
  • Persistent Volumes
  • Persistent Volume Claims
  • Using PVC in PODs
  • Practice Test Persistent Volume Claims
  • Download Presentation Deck
  • Storage Class
  • Practice Test Storage Class

 

Networking

  • Networking Introduction
  • Pre requisite Switching Routing Gateways
  • Pre requisite DNS
  • Pre requisite CoreDNS
  • Pre requisite Network Namespace
  • Pre requisite Docker Networking
  • Pre requisite CNI
  • Cluster Networking
  • Practice Test Explore Env
  • Pod Networking
  • CNI in Kubernetes
  • CNI weave
  • Practice Test CNI weave
  • Practice Test Deploy Network Solution
  • ipam weave
  • Practice Test Networking weave
  • Service Networking
  • Practice Test Service Networking
  • DNS in kubernetes
  • CoreDNS in Kubernetes
  • Practice Test CoreDNS in Kubernetes
  • Ingress
  • Ingress Annotations and rewrite target
  • Practice Test CKA Ingress Net 1
  • Practice Test CKA Ingress Net 2
  • Download The Presentation Deck

 

Design and Install Kubernetes Cluster

  • Designing a Kubernetes Cluster
  • Choosing Kubernetes Infrastructure
  • Configure High Availability
  • ETCD in HA
  • Important update k8s hard way
  • Download Presentation Deck

 

Install Kubernetes the kubeadm way

  • Introduction to Deployment with kubeadm
  • Resources
  • Provision VMs with Vagrant
  • Demo Deployment with Kubeadm
  • Practice Test Deploy Kubernetes Cluster using Kubeadm

آموزش کوبرنتیز - مباحث مقدماتی:

  • معرفی مباحث پایه در Kubernetes
  • معماری کلاستر کوبرنتیز
  • مقایسه داکر و ContainerD
  • ETCD برای مبتدیان
  • ETCD در کوبرنتیز
  • سرور Kube API
  • مدیریت کنترل Kube
  • برنامه ریز Kube
  • Kubelet
  • پروکسی Kube
  • Pods
  • مقدمه ای بر تمارین تست
  • تمارین تست های Pod ها
  • ReplicaSets
  • تست های ReplicaSet
  • مستقرسازی ها
  • تمارین تست های استقرار
  • Namespaces
  • آموزش سرویس های کوبرنتیز
  • سرویس های ClusterIP
  • سرویس های تست کوبرنتیز
  • آموزش دستورات ضروری کوبرنتیز
  • دسترسی تست های کوبرنتیز
  • پیوست ها

 

آموزش برنامه ریزی در kubernetes یا scheduling:

  • معرفی زمانبندی در کوبرنتیز
  • برنامه ریزی دستی
  • برچسب ها و انتخابگرها
  • تمارین برچسب ها و انتخابگرها
  • Taints و Tolerations
  • انتخابگرهای نود
  • نود Affinity
  • تمارین تست نود Affinity
  • Taints و Tolerations در مقابل نود Affinity
  • محدودیت منابع
  • DaemonSets
  • Pod های استاتیک
  • تمارین تست Pod های استاتیک
  • زمانبندی های متعدد
  • آموزش برنامه ریزهای کوبرنتیز
  • دانلود Presentation Deck

 

آموزش کوبرنتیز - مدیریت لاگ و مانیتورینگ:

  • معرفی سیستم لاگ گیری و مانیتورینگ kubernetes
  • آموزش مانیتورینگ کامپوننت های کلاستر کوبرنتیز
  • مدیریت لاگ های اپلیکیشن ها
  • لاگ های برنامه های کاربردی
  • تست های مدیریت لاگ های برنامه ها

 

آموزش کوبرنتیز - مدیریت چرخه عمر برنامه:

  • آشنایی با مدیریت چرخه عمر
  • Rolling Updates و Rollback
  • دستورات و آرگومان ها در داکر
  • دستورات و آرگومان ها در کوبرنتیز
  • تمارین دستورات تست و آرگومان ها
  • متغییرها
  • Secrets
  • پادهای Multi Containers
  • الگوهای طراحی Multi Container Pods
  • کانتینرهای init
  • برنامه های Self-Healing

 

آموزش Kubernetes - نگهداری کلاستر:

  • مقدمه ای بر نگهداری کلاسترهای کوبرنتیز
  • بروزرسانی های سیستم عامل
  • ورژن های کوبرنتیز
  • بروز رسانی های کلاستر کوبرنتیز
  • متدهای پشتیبان گیری و بازیابی اطلاعات

 

آموزش کوبرنتیز - مبحث امنیت:

  • معرفی ایمن سازی کوبرنتیز
  • مبانی ایمن سازی kubernetes
  • اهراز هویت در کوبرنتیز
  • گواهینامه TLS
  • مبانی TLS
  • TLS در کوبرنتیز
  • TLS در ایجاد گواهینامه برای کوبرنتیز
  • بررسی جزئیات گواهینامه
  • تست صحت و سلامت گواهینامه کوبرنتیز
  • Certificate API
  • kubeconfig
  • گروه های API
  • مجوز ها در کوبرنتیز
  • RBAC
  • نقش های کلاستر
  • امنیت Image ها
  • Security Context
  • سیاست های شبکه
  • دستورات kubectx و kubens

 

آموزش کوبرنتیز - مباحث Storage:

  • معرفی بخش ذخیره سازی در کوبرنتیز
  • آموزش ذخیره سازی در Docker
  • Volume Driver Plugins در داکر
  • اینترفیس Container Storage
  • Volume ها
  • Persistent Volumes
  • Persistent Volume Claims
  • استفاده PVC در PODها
  • کلاس ذخیره سازی

 

آموزش کوبرنتیز - مباحث شبکه:

  • معرفی مباحث شبکه در kubernetes
  • نیازمندی های Switching Routing Gateways
  • نیازمندی های DNS
  • نیازمندی های CoreDNS
  • نیازمندی های Network Namespace
  • نیازمندی های شبکه در داکر
  • نیازمندی های CNI
  • شبکه کلاستر
  • شبکه Pod
  • CNI در کوبرنتیز
  • CNI weavتست پیاده سازی راهکار های شبکه در Kubernetes
  • ipam weave
  • سرویس شبکه
  • DNS در کوبرنتیز
  • CoreDNS در کوبرنتیز
  • Ingress
  • Ingress Annotations و rewrite target

 

آموزش کوبرنتیز - طراحی و نصب کلاستر:

  • طراحی یک کلاستر کوبرنتیز
  • انتخاب زیرساخت برای کوبرنتیز
  • تنظیم High Availability در کوبرنتیز
  • ETCD در HA
  • بروز رسانی های مهم در کوبرنتیز

 

آموزش Kubernetes - نصب kubeadm:

  • آموزش استقرار کوبرنتیز با kubeadm
  • مدیریت منابع
  • Provision VMs با Vagrant
  • دموی پیاده سازی با Kubeadm
  • تست پیاده سازی با Kubeadm

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

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

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

 

Kubernetes چیست ؟

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

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

 

معماری Kubernetes

برای درک اینکه چگونه Kubernetes قادر به ارائه این قابلیت‌ها است، این موضوع که چگونه طراحی و سازمان دهی شده است، می‌تواند کمک کند. Kubernetes را می‌توان به عنوان یک سیستم لایه لایه تجسم کرد، با رفتن به لایه‌های بالاتر پیچیدگی موجود در سطوح و لایه‌های پایین تر Abstract می‌شود.

در اولین نگاه می توان گفت، Kubernetes با استفاده از یک شبکه اشتراکی برای برقراری ارتباط بین هر سرور، ماشین‌های فیزیکی یا مجازی را تک تک در یک خوشه ( Cluster ) جمع می‌کند. این خوشه یک پلتفرم فیزیکی است که در آن کلیه کامپوننت‌ها ، قابلیت‌ها و workloads های Kubernetes پیکربندی شده است.

ماشین‎‌های موجود در خوشه در اکوسیستم Kubernetes هر کدام نقشی را دارند. یک سرور ( یا یک گروه کوچکی از سرور ها با قابلیت HA بالا ) به عنوان سرور اصلی یا مستر کار می‌کند. این سرور با ارائه یک api برای کاربران و مشتری‌ها، بررسی سایر سرور‌‌ها، تصمیم گیری در مورد چگونگی انتخاب بهترین نحوه تقسیم و اختصاص کار ( به عنوان "برنامه ریزی" ) و ایجاد ارتباطات بین سایر کامپوننت‌ها، به عنوان دروازه و مغز برای خوشه عمل می‌کند.

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

سایر ماشین های موجود در این خوشه به عنوان نود شناخته می‎‌شوند. نود ها سرورهایی هستند که مسئولیت پذیرش و اجرای workload ها را با استفاده از منابع محلی و خارجی دارند. برای کمک به ایزوله بودن، مدیریت و انعطاف پذیری، Kubernetes برنامه ها و سرویس ها را در کانتینر ها اجرا می‌کند، بنابراین هر نود باید به یک ران تایم کانتینری (مانند داکر یا rkt) مجهز شود. هر نود دستورالعمل کار خود را از سرور مستر دریافت می‌کند و کانتینر ها را بر آن اساس ایجاد یا نابود می‌کند، قوانین شبکه را برای مسیریابی و هدایت ترافیک بصورت مناسبی تنظیم می‌کند.

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

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

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

 

کامپوننت های سرور مستر

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

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

  • etcd
  • kube-apiserver
  • kube-controller-manager
  • kube-scheduler
  • cloud-controller-manager

 

کامپوننت های سرور نود

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

  • A Container Runtime
  • kubelet
  • kube-proxy

 

آبجکت ها و Workload های Kubernetes

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

  1. Pods

Pod ابتدایی ترین واحدی است که Kubernetes با آن سرو کار دارد. خود کانتینر به هاست‌ها اختصاص نمی‌یابند. در عوض، یک یا چند کانتینر محکم بهم چسبیده و در یک آبجکت به نام Pod محصور می‌شوند. Pod معمولاً یک یا چند کانتینر را نشان می‌دهد که باید به عنوان یک برنامه واحد کنترل شوند. Pod ها شامل کانتینر هستند که از نزدیک با هم کار می‌کنند، یک چرخه زندگی را به اشتراک می‌گذارند و همیشه باید در همان نود برنامه ریزی شوند. آنها کاملاً به عنوان یک واحد اداره می‌شوند و محیط، حجم و فضای IP را با یکدیگر به اشتراک می‌گذارند. به رغم پیاده سازی کانتینری آنها، شما معمولاً باید از Pod ها به عنوان یک برنامه تنها و یکپارچه استفاده کنید تا به بهترین شکل ممکن چگونگی مدیریت منابع و برنامه‌ریزی های Pod را توسط خوشه ( Cluster ) درک کنید.

معمولاً Pod ها از یک کانتینر اصلی تشکیل شده‌اند که هدف کلی workload را برآورده می‌کند و به طور اختیاری برخی از کانتینر کمکی که کارهای وابسته را تسهیل می‌بخشند. اینها برنامه‌هایی هستند که از اجرا و مدیریت در کانتینر های خود بهره می‌برند، اما کاملاً با برنامه اصلی گره خورده‌اند. به عنوان مثال، یک Pod ممکن است یک کانتینر داشته باشد که سرور برنامه اصلی را در حال اجرا دارد و یک کانتینر کمکی که در هنگام شناسایی تغییرات در یک مخزن خارجی، فایل ها را به یک سیستم فایل مشترک انتقال می‌دهد. Horizontal Scaling معمولاً در سطح Pod تنظیم می‌شود زیرا ابزارهای مناسب تری در سطوح بالاتر برای کار وجود دارند.

به طور کلی، کاربران نباید خود Pod ها را مدیریت کنند، زیرا برخی از ویژگی هایی را که معمولاً در برنامه ها مورد نیاز هست (مانند مدیریت پیچیده چرخه زندگی و مقیاس گذاری) ارائه نمی‌دهند. درعوض، کاربران تشویق می‌شوند تا با اشیاء سطوح بالاتر که از Pod ها یا Pod Template ها استفاده می‌کنند به عنوان کامپوننت پایه کار کنند، و قابلیت‌های اضافی را خود پیاده سازی کنند.

 

  1. Replication Controllers and Replication Sets

اغلب، هنگام کار با Kubernetes، به جای کار با Pod های مجزا، در عوض شما مدیریت گروهی از Pod های یکسان و مشابه را خواهید داشت. این گروه ها از Pod Template ها ایجاد شده‌اند و می‌توان آنها را به صورت افقی توسط كنترلرهایی كه به عنوان replication controllers و replication sets شناخته می‌شوند، مقیاس بندی كرد.

  • replication controller آبجکتی است که یک pod template و پارامتر های کنترلی را تعیین می کند تا با افزایش یا کاهش تعداد کپی های در حال اجرا، تکرار های یکسان یک Pod را بصورت افقی scale کند. این یک روش آسان برای توزیع بار و افزایش دسترسی به صورت بومی در Kubernetes است. Replication controller می داند چگونه می تواند Pod ها جدید را در صورت نیاز ایجاد کند زیرا الگویی که از نزدیک شبیه تعریف Pod است در پیکربندی این کنترلر تعبیه شده است.

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

  • Replication sets یک طراحی دوباره از دیزاین replication controller است، که در نحوه شناسایی Pod هایی که توسط کنترل کننده می‌بایستی مدیریت شوند، انعطلاف پذیری بیشتری دارند. Replication setها به دلیل قابلیت انتخاب بهتر کپی ها، در حال جایگزین replication controller ها می‌باشند، اما آنها قادر به انجام بروزرسانی های چرخه‌ای برای چرخه backends به نسخه جدیدی مانند replication controller نیستند. در عوض Replication set در واقع می بایستی در واحد‌هایی با لود بالاتر که این قابلیت را فراهم می‌کنند، استفاده شوند.

 

  1. Deployments

عملیات استقرار‌ یکی از متداول‌ترین workload ها هستند که می‌توانند بصورت مستقیم ایجاد و مدیریت شوند. استقرار ها از replication sets به عنوان بلوک ساختمانی استفاده می‌کنند و قابلیت مدیریت انعطاف پذیر چرخه زندگی را به ترکیب اضافه می‌کنند.

در حالی که به نظر می رسد استقرار های انجام شده با replication sets عملا همان عمل replication controller ها را تکرار می‌کنند. استقرارها بسیاری از نقاط دردناکی که در اجرای بروزرسانی‌های چرخشی وجود دارد، را حل می‌کنند. در هنگام به روزرسانی برنامه ها توسط replication controller، کاربران موظف هستند برای replication controller جایگزین کنترلر فعلی، برنامه‌ای را پیشنهاد دهند. هنگام استفاده از کنترلر های تکثیر، کارهایی مانند ردیابی تاریخچه، بهبودی از خرابی شبکه در هنگام بروزرسانی و undo کردن تغییرات بد و خراب، یا دشوار است یا به عنوان مسئولیتی برای کاربران در نظر گرفته شده است.

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

 

مزیت های Kubernetes

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

  1. Service discovery and load balancing

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

 

  1. Storage orchestration

Kubernetes به شما اجازه می‌دهد تا به طور خودکار سیستم ذخیره سازی مورد نظر خود مانند انبارهای محلی (local storage )، ارائه دهندگان ابر عمومی و موارد دیگر را به اصطلاح mount کنید.

 

  1. Automated rollouts and rollbacks

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

 

  1. Automatic bin packing

شما برای Kubernetes خوشه‌ای از نود ها را فراهم می‌کنید که می‌تواند برای اجرای تسک‌های کانتینر شده از آنها استفاده کند. شما به Kubernetes می گویید که هر کانتینر چه CPU و حافظه (RAM) نیاز دارد. Kubernetes می‌تواند کانتینر ها را بر روی نود‌ های شما قرار دهد تا از منابع شما بهترین استفاده را ببرد.

 

 

  1. Self-Healing Systems & Self-Monitoring

Kubernetes کانتینر های ناموفق را مجدداً راه اندازی می‌کند، کانتینر ها را جایگزین می‌کند، کانتینر هایی را که به health-check تعریف شده توسط کاربر پاسخ نمی‌دهند، می‌کشد و تا زمانی که آماده خدمت نباشند، آنها را برای مشتریان تبلیغ نمی‌کند.

 

  1. Provides additional services

بعلاوه مدیریت کانتینر ها، Kubernetes خدمات امنیتی، شبکه ای و ذخیره سازی را نیز ارائه می‌دهد.

 

  1. Run everywhere

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

 

مزایای Kubernetes برای سازمان ها و چرا Kubernetes بیاموزیم؟

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

 

چه زمانی نباید از Kubernetes استفاده کرد؟

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

  • زمانی که می‌توانید workload خود را بر روی یک ماشین واحد اجرا کنید. (Kubernetes را می‌توان به عنوان پلتفرمی برای ساختن سیستم‌های توزیع شده نگاه کرد، اما وقتی نیازی به ساختن سیستم های توزیع شده ندارید پس چرا می‌خواهید از Kubernetes استفاده کنید!)
  • زمانی که نیازهای محاسباتی شما سبک است. (در این حالت، محاسبه‌ای که برای چهارچوب ارکستریشن هزینه شده است، نسبتاً زیاد است!)
  • زمانی که به HA نیازی ندارید و می‌توانید Downtime را تحمل کنید!؟
  • زمانی که پیش بینی نمی کنید تغییرات زیادی در خدمات قابل ارائه خود قرار است اعمال کنید.
  • زمانی که شما در حال حاضر یک پشته ابزار کارآمد دارید که از آن راضی هستید.
  • زمانی که شما یک معماری یکپارچه دارید و قصد ندارید آن را به میکروسرویس‌هایی با عملیات مشخص خرد کنید.

 

 

سخن آخر

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

اگر شما به حوزه DevOps  علاقمند هستید یا نیاز دارید این تکنولوژی را در سازمانتان پیاده سازی کنید، پیشنهاد می کنیم تا در دوره تخصصی Certified Kubernetes Administrator یا CKA که با کیفیت بالایی در خانه لینوکس برگزار می شود، شرکت نمایید و از مشاوره، دانش و بینش مدرسین ما استفاده کنید و به صورت استاندارد و با کمترین زمان روی این حوزه کسب تخصص نمایید. پیشنهاد می شود که ابتدا در دوره تخصصی Docker شرکت نمایید و بعد از کسب تخصص در این حوزه، با شرکت در دوره Kubernetes دانش مربوط به اکوسیستم Kubernetes را کسب کنید و در این حوزه حرفه ای شوید.

همچنین اگر مایل به کسب دانش بیشتر به عنوان یک متخصص زیر ساخت هستید، پیشنهاد می گردد دوره های OpenStack در حوزه رایانش ابری و LPIC-304 در حوزه مجازی سازی یا HA را بگذرانید و به بازار فوق العاده داغ و حرفه ای و پرسود این حوزه در سراسر دنیا بپیوندید.

آشنایی با Kubernetes، بخشی از دوره تخصصی خانه لینوکس

 

 

آشنایی با Kubernetes HA

 

 

کوبرنتیز چیست؟

سوالات رایج به نحوه شرکت در دوره ها:


چه کسانی نیاز دارند این دوره را بگذرانند؟

علاقمندان به مباحث زیر ساخت، متخصصان DevOps و توسعه دهندگان و معماران نرم افزار نیاز دارند تا kubernetes را حرفه ای بیاموزند.

 

برای شرکت در این دوره چه پیش نیازهایی باید داشته باشیم؟

دانش در سطح دوره Docker
 

با گذراندن این دوره در چه حوزه هایی می توانم وارد شوم؟

DevOps، SRE، توسعه نرم افزار و زیرساخت

 

دوره های خانه لینوکس حضوری هست یا آنلاین؟

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

 

آیا امکان شرکت در دوره ها از خارج از ایران امکان پذیر هست؟

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

 

سامانه آموزش آنلاین مجموعه چیست؟

سامانه آموزش آنلاین خانه لینوکس نرم افزارهای توسعه داده شده مبتنی بر پروژه متن باز bigbluebutton  Moodle +می باشد که بر روی بستر امن و قدرتمند لینوکس میزبانی شده است و هر امکانی که در سامانه های آموزش آنلاین رایج وجود دارد را در بالاترین کیفیت ارائه می دهد و همچنین یه انقلابی را از لحاظ کیفیت و قدرت استفاده از امکانات، در صنعت آموزش آنلاین بوجود آورده است.

 

آیا کیفیت دوره های آنلاین به اندازه دوره های حضوری هست؟

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

 

دوره ها به چه زبانی برگزار می گردند؟

دوره ها بصورت پیش فرض به زبان فارسی برگزار می گردند و درصورت نیاز می توان برخی دوره ها را بصورت خصوصی یا سازمانی به زبان انگلیسی برگزار کرد.

 

آیا می توانم همزمان در دو یا چند دوره آموزشی شرکت نماییم؟

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

 

آیا امکان پرسش و پاسخ در کلاس آنلاین وجود دارد؟

بله شما در طول کلاس می توانید بصورت صوتی و یا تصویری، یا بصورت چت و حتی با به اشتراک گذاری تصویر صفحه کامپیوترتان در سامانهLMS ، به راحتی سوالات خود را بپرسید و استاد محترم مشکلات شما را در طول دوره به بهترین نحو حل می نماید.

 

آیا مدرس دوره تجربه عملیاتی مناسبی در حوزه مربوطه دارد؟

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

 

آیا می توانیم قبل از شرکت در دوره تعیین سطح و مشاوره داشته باشیم؟

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

 

امکان شرکت در کلاس ها بصورت آفلاین وجود دارد؟

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

 

ساعت برگزاری دوره ها به چه صورت است؟

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

 

آیا تعداد ساعت دوره های حضوری و آنلاین با یکدیگر متفاوت است؟

خیر، کاملا یکسان است.

 

سوالات رایج آزمون ها و مدارک:

آیا پس از دوره مدرک معتبر دریافت می کنم یا باید در آزمون های بین المللی شرکت کنم؟

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

در حوزه لینوکس، در صورت نیاز، دانشجویان می توانند جداگانه در ازمون های بین المللی موسسه LPI شرکت نمایند و پس از قبولی مدرک موسسه LPI را اخذ نمایند.

 

آیا مدرک خانه لینوکس قابل ترجمه هست؟

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

 

آیا می توانم بدون شرکت در دوره آموزشی در آزمون بین المللی شرکت کنم؟

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

 

آزمون های بین المللی به چه زبانی برگزار می شوند؟

این آزمون ها در ایران به زبان انگلیسی برگزار می گردند.

 

چگونه داوطلبان می توانند صحت مدارک خود را به کارفرمایان اثبات کنند؟

کارفرمایان می توانند جهت آگاهی از وضعیت گواهینامه شما، با ارائه شماره سریال مدرک موسسه در وبسایت موسسه، مدارک خانه لینوکس را استعلام نمایند.

 

آزمون پایان دوره به چه صورت است؟

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

 

سوالات عمومی:

آیا من می توانم ویدیوی دوره را ضبط کنم؟

خیر، به منظور حفظ حق مالکیت معنوی موسسه (البته با لطف و حمایت دانش پژوهان محترم خانه لینوکس)، دوره های آنلاین توسط موسسه ضبط می گردند و تا دو ماه در دسترس کامل دانشجو برای تمرین و یادآوری در سامانه آموزش مجازی در دسترس هستند اما ضبط و انتشار ویدیوهای کلاس توسط دانشجو غیر قانونی است.

 

چه نیازمندی های سخت افزاری برای برگزاری این کلاس به صورت آنلاین نیاز هست؟

داشتن یک سیستم با حدود 30 گیگ هارد خالی و حداقل 8 گیگ مموری و حداقل cpu در سطح core i3 نیازمندی شرکت در این دوره هست. در دوره های حضوری مجموعه به هر دانشجو یک سیستم مجزا تخصیص داده می شود. دسترسی به اینترنت نیز برای کلاس های آنلاین، نیاز است.

 

آیا من پشتیبانی رو در طول دوره دارم؟

بله شما در طول دوره پشتیبانی مجموعه و مدرس را دارید.

 

آیا امکان پیشنهاد کار از سمت موسسه به دانشجویان وجود دارد؟

بله، بدین منظور موسسه همواره آگهی های شغلی سازمان های همکار را در شبکه های اجتماعی منتشر می کند و با کسب دانش و تخصص، دانشجویان توانسته اند در بهترین شرکت ها و سازمان های داخلی و خارجی جمله Dell، Cisco، MTN، Amazon و حتی NASA مشغول به کار شوند.

 

آیا کلاس را می توانم بصورت خصوصی و یا اختصاصی برای سازمان برگزار کنم؟

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

 

آیا مسیر آموزشی مشخصی برای ادامه کسب تخصص وجود دارد؟

بله، حرفه ای ترین مسیر آموزش نتیجه سال ها تجربه و آموزش حرفه ای در صنعت و همچنین نتیجه اتاق فکر اساتید آنیسا بصورت یک Roadmap جامع در حوزه های مدیریت سیستم های لینوکس، توسعه نرم افزار، DevOps، IOT، Data Science، شبکه و DevNet و همچنین زیرساخت به دانشجویان ارائه می گردد.

 

تا چه مدت به دوره دسترسی دارم؟

در دوره های آنلاین، تا دو ماه پس از اتمام دوره، ویدیوهای دوره قابل بازدید در سامانه آموزش آنلاین است.

 

سوالات رایج ثبت نام و پرداخت:

آیا امکان پرداخت هزینه دوره بصورت اقساط وجود دارد؟

بله خوشبختانه، این امکان وجود دارد.

 

آیا تخفیفی برای شرکت در دوره ها وجود دارد؟

بله تخفیفات دائمی چون تخفیف گروهی، دوره های همزمان، تخفیف معرفی و تخفیفات مناسبتی وجود دارد.

 

گروه سنی مخاطب دوره ها چیست؟

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

 

چگونه می توانم برای شرکت در دوره ثبت نام کنم؟

کافی است برای شروع در قسمت پیش ثبت نام، پیش ثبت نام را انجام داده و منتظر تماس همکاران ما باشید که در اسرع وقت و در ساعات اداری با شما تماس خواهند گرفت و شما را در ادامه پروسه ثبت نام همراهی می نمایند.

 

آیا رعایت پیش نیاز ها واجب است؟

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

 

من دانش آموزم آیا می توانم در دوره ها شرکت کنم؟

بله، با مشاوره و سنجش دانش شما در حوزه IT امکان شرکت در دوره مناسب سن و دانش شما وجود دارد.

 

دوره های پیشنهادی

EN / FA

فناوران آنیسا - خانه لینوکس ایران

تهران، میدان آرژانتین، خ وزرا، کوچه هشتم، یحیوی، پلاک ۴

 اطلاعات تماس:

  • 021-88716168
  • 021-88712172
  • 0910-8555111

info @ anisa.co.ir

© فناوران آنیسا - خانه لینوکس ایران | تمامی حقوق این سایت تحت مجوز GFDL برای فناوران آنیسا محفوظ است.
design by www.digitaldesign.ir