Що таке Kubernetes? Розуміння основ (Стаття 1).

Ця серія блогів покликана охопити всі знання, які я отримав, вивчаючи Kubernetes. Я маю намір охопити більшість концепцій у серії з 40 статей.
Давайте зануримося в цю прекрасну частину інженерії.

Перед тим, як зрозуміти Kubernetes, потрібно розібратися з контейнерами і з тим, які проблеми вони вирішують.

Контейнери — це форма віртуалізації, яка забезпечує ізольоване середовище для запуску додатків, пакуючи всі необхідні компоненти, щоб забезпечити стабільну роботу в різних обчислювальних середовищах.

Одна з найпоширеніших проблем, з якою стикаються розробники — це ЦЕ ПРАЦЮЄ НА МОЇЙ МАШИНІ. Це поширене вираження, яке використовується в розробці програмного забезпечення, щоб описати ситуацію, коли додаток або частина коду працює правильно в локальному середовищі розробника, але не працює після розгортання в інших середовищах, зокрема в середовищі продукції. Це може бути викликано різними проблемами, такими як відсутність залежностей, різні конфігурації, непослідовні середовища тощо.

pic

Щоб вирішити цю проблему, з'явилися контейнери.

Як контейнери вирішують цю проблему?

Контейнери вирішують цю проблему, пакуючи код додатку разом з усіма його залежностями, бібліотеками, конфігурацією та навіть образом легкого операційного системи. Це гарантує стабільне виконання в різних середовищах. Контейнер створює ізольоване середовище і пакує всі компоненти, які необхідні для його запуску, в один пакет, званий образом, який можна використовувати в різних середовищах, таких як розробка, тестування та продукція без значних проблем.

Існує багато інструментів для контейнеризації, і два з найбільш широко використовуваних — це: Docker і Podman.

Віртуальна машина vs Контейнери

pic

Віртуальна машина — це як незалежний будинок, а контейнер — це як квартира в будинку.

Незалежний будинок (VM): Він має свою власну інфраструктуру, операційна система спільна для всього будинку, і це, зазвичай, для однієї родини або додатку.

Квартира в будинку (Container): Інфраструктура будинку спільна для багатьох орендарів, кожна квартира (контейнер) ізольована, і кожна квартира має свій набір додатків, бінарних файлів, залежностей і операційної системи.

Тепер, більш технічними термінами, віртуальна машина — це програмна емуляція фізичної машини, що дозволяє запускати кілька операційних систем на одному фізичному сервері. Кожна віртуальна машина містить свою повну операційну систему (OS), включаючи ядро, бібліотеки та залежності. Віртуальні машини використовують гіперопераційний програмний засіб для забезпечення віртуалізації та запуску кількох віртуальних машин на фізичній машині. Віртуальні машини мають власні виділені ресурси, такі як процесор, пам'ять і сховище.

Віртуальні машини є ресурсоємними, оскільки кожна з них містить повну операційну систему. Це може призвести до недо використання ресурсів, якщо віртуальна машина не використовується повністю.

Контейнери:

Контейнери спільно використовують ядро хост-операційної системи і не включають повну ОС, що робить їх легкими. Контейнери використовують контейнерний двигун замість гіпервізора для управління кількома контейнерами на одній ОС. Контейнери забезпечують ізольоване середовище для додатків, упаковуючи всі необхідні компоненти разом.

Контейнери є більш ресурсозберігаючими, оскільки вони використовують ядро ОС і використовують тільки ті ресурси, які потрібні додатку. Контейнери забезпечують оптимальне використання інфраструктури, оскільки вони використовують одну й ту саму інфраструктуру.

Загальний робочий процес з використанням контейнерів

pic

В якості посилання візьмемо Docker.
Розробник команди зазвичай створює образ або просто контейнеризує додаток, який потім завантажується в репозиторій, наприклад, Docker Hub.
Тепер всі середовища, такі як dev, test і production, можуть без проблем витягувати образ з цього репозиторію за допомогою простих команд і запускати його без збоїв.

Початкові статті будуть охоплювати основи, а потім ми заглибимося в глибини концепцій.

Дякую (Tech Tutorials With Piyush) пану Піюшу Сачдева (Gurudev❤️).

Перекладено з: What is Kubernetes? Understanding the Basics (Article 1).

Leave a Reply

Your email address will not be published. Required fields are marked *