Kubernetes چیست؟

BirHosting Kubernetes index
توسط

Kubernetes (همچنین به عنوان k8s یا "kube" شناخته می‌شود) یک پلتفرم ارکستراسیون کانتینر منبع باز است که بسیاری از فرآیندهای دستی درگیر در استقرار، مدیریت و مقیاس‌بندی برنامه‌های کانتینری را خودکار می‌کند.

خوشه های Kubernetes چیست؟

می‌توانید گروه‌هایی از میزبان‌هایی را که دارای کانتینرهای Linux® هستند، دسته‌بندی کنید، و Kubernetes به شما کمک می‌کند تا به راحتی و کارآمد آن خوشه‌ها را مدیریت کنید.

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

چه کسی Kubernetes پشتیبانی می کند؟

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

گوگل بیش از ۲ میلیارد کانتینر در هفته مستقر می کند که همگی توسط پلتفرم داخلی خود Borg پشتیبانی می شوند. بورگ سلف Kubernetes بود، و درس‌هایی که از توسعه Borg در طول سال‌ها آموخته‌ایم، تأثیر اصلی پشت بسیاری از فناوری Kubernetes شد.

واقعیت جالب: ۷ پره در لوگوی Kubernetes به نام اصلی پروژه، "Project Seven of Nine" اشاره دارد.

Red Hat یکی از اولین شرکت‌هایی بود که حتی قبل از راه‌اندازی با Google در Kubernetes کار کرد و به دومین شرکت پیشرو در پروژه بالادستی Kubernetes تبدیل شد. گوگل در سال ۲۰۱۵ پروژه Kubernetes را به بنیاد محاسبات بومی ابری تازه تاسیس (CNCF) اهدا کرد.

با Kubernetes چه کاری می توانید انجام دهید؟

مزیت اصلی استفاده از Kubernetes در محیط خود، به خصوص اگر برنامه‌نویس برنامه را برای فضای ابری بهینه‌سازی می‌کنید، این است که به شما بستری می‌دهد تا کانتینرها را روی خوشه‌هایی از ماشین‌های فیزیکی یا مجازی (VM) زمان‌بندی و اجرا کنید.

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

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

با Kubernetes می توانید:

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

رجیستری، از طریق پروژه هایی مانند Docker Registry.
شبکه سازی، از طریق پروژه هایی مانند OpenvSwitch و مسیریابی هوشمند لبه.
تله متری، از طریق پروژه هایی مانند Kibana، Hawkular، و Elastic.
امنیت، از طریق پروژه هایی مانند LDAP، SELinux، RBAC، و OAUTH با لایه های چند اجاره ای.
اتوماسیون، با اضافه شدن کتاب های بازی Ansible برای نصب و مدیریت چرخه عمر خوشه.
خدمات، از طریق کاتالوگ غنی از الگوهای برنامه محبوب.
با کانتینرهای لینوکس و فناوری هماهنگ سازی کانتینر آشنا شوید. در این دوره آموزشی بر اساس تقاضا، با کانتینری‌سازی برنامه‌ها و خدمات، آزمایش آن‌ها با استفاده از Docker، و استقرار آن‌ها در یک خوشه Kubernetes با استفاده از Red Hat® OpenShift® آشنا می‌شوید.

چگونه کار می کند؟

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

هر گره محیط Linux® خودش است و می تواند یک ماشین فیزیکی یا مجازی باشد. هر گره غلاف هایی را اجرا می کند که از کانتینرها تشکیل شده اند.

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

Kubernetes در بالای یک سیستم عامل اجرا می شود (مثلاً Red Hat® Enterprise Linux®) و با غلاف کانتینرهایی که روی گره ها اجرا می شوند تعامل دارد.

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

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

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

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

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

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


پست های توصیه شده