Підручник Kubernetes для початківців
⚡ Розумний підсумок
Kubernetes — це система керування контейнерами з відкритим кодом, розроблена Google що автоматизує розгортання, масштабування та роботу контейнерних додатків на кластерах фізичних, віртуальних та хмарних серверів, пропонуючи самовідновлення, автоматизоване розгортання, балансування навантаження та узгоджені середовища для надійної доставки додатків.

Перш ніж розпочати цей підручник Kubernetes, давайте дізнаємося:
Що таке кубернети?
Кубернетес це система управління контейнерами, розроблена на Google платформа. Kubernetes допомагає керувати контейнеризованими додатками в різних типах фізичних, віртуальних та хмарних середовищ. Google Kubernetes — це дуже гнучкий контейнерний інструмент для послідовної доставки складних застосунків, що працюють на кластерах від сотень до тисяч окремих серверів.
Навіщо потрібні контейнери?
Сучасний користувач Інтернету ніколи не погоджується на простої. Тому розробники повинні знайти спосіб виконувати технічне обслуговування та оновлення, не перериваючи своїх послуг.
Таким чином, контейнер є ізольованим середовищем. Він містить усе необхідне для роботи програми. Це полегшує розробнику редагування та розгортання програм. Крім того, контейнеризація стала кращим методом для упаковки, розгортання та оновлення веб-додатків.
Які завдання виконує Kubernetes?
Kubernetes — це ядро Linux, яке використовується для розподілених систем. Воно допомагає вам бути абсорбуючим.tracбазове обладнання вузлів (серверів) та пропонує узгоджений інтерфейс для програм, що споживають спільний пул ресурсів.
Навіщо використовувати Kubernetes?
Kubernetes допомагає вам контролювати розподіл ресурсів і керування трафіком для хмарних програм і мікросервісів. Це також допомагає спростити різні аспекти сервіс-орієнтованих інфраструктур. Kubernetes дозволяє вам гарантувати, де і коли запускаються контейнерні програми, і допомагає вам знайти ресурси та інструменти, з якими ви хочете працювати.
Особливості Кубернетів
Ось основні функції Kubernetes:
- Автоматизоване планування
- Можливості самовідновлення
- Автоматичне розгортання та відкат
- Горизонтальне масштабування та балансування навантаження
- Пропонує узгодженість середовища для розробки, тестування та виробництва
- Інфраструктура слабо пов'язана з кожним компонентом, який може діяти як окрема одиниця
- Забезпечує більш високу щільність використання ресурсів
- Пропонує корпоративні функції
- Управління, орієнтоване на застосування
- Автоматично масштабована інфраструктура
- Можна створити передбачувану інфраструктуру
Основи Kubernetes
Тепер у цьому підручнику з Kubernetes ми дізнаємося деякі важливі основи Kubernetes:
Cluster
Це набір хостів (серверів), який допомагає вам об’єднати доступні ресурси. Це включає оперативну пам’ять, ЦП, оперативну пам’ять, диск і їхні пристрої в придатний для використання пул.
Майстер
Master — це набір компонентів, які складають панель керування Kubernetes. Ці компоненти використовуються для всіх кластерних рішень. Він включає як планування, так і реагування на події кластера.
вузол
Це єдиний хост, який може працювати на фізичному або віртуальна машина. Вузол має запускати kube-proxy, minikube та kubelet, які вважаються частиною кластера.
Простір імен
Це логічний кластер або середовище. Це широко використовуваний метод, який використовується для оцінкиping доступ до кластера або його розділення.
Кубернетес Archiтектура
Нижче наведено детальну схему архітектури Kubernetes:

Головний вузол
Головний вузол — це перший і найважливіший компонент, який відповідає за керування кластером Kubernetes. Це точка входу для всіх видів адміністративних завдань. Для перевірки відмовостійкості в кластері може бути більше одного головного вузла.
Головний вузол має різні компоненти, такі як сервер API, менеджер контролера, планувальник і ETCD. Дайте побачити їх усіх.
Сервер API: Сервер API діє як точка входу для всіх команд REST, які використовуються для керування кластером.
Планувальник
Планувальник розкладає завдання на підлеглий вузол. Він зберігає інформацію про використання ресурсів для кожного підлеглого вузла. Він відповідає за розподіл робочого навантаження.
Це також допомагає вам track як використовується робоче навантаження на вузлах кластера. Це допомагає розподілити робоче навантаження на доступні ресурси та прийняти це робоче навантаження.
тощо
Компоненти etcd зберігають деталі конфігурації та значення Wright. Він спілкується з більшістю компонентів для отримання команд і роботи. Він також керує мережевими правилами та активністю переадресації портів.
Робочі/підлеглі вузли
Робочі вузли — ще один важливий компонент, який містить усі необхідні служби для керування мережею між контейнерами, зв’язку з головним вузлом, що дозволяє призначати ресурси запланованим контейнерам.
- Kubelet: отримує конфігурацію Pod із сервера API та гарантує, що описані контейнери запущені та працюють.
- Контейнер Docker: Docker контейнер працює на кожному з робочих вузлів, які запускають налаштовані модулі
- Kube-proxy: Kube-proxy діє як балансир навантаження та мережевий проксі для надання послуг на одному робочому вузлі
- Поди: модуль — це комбінація одного або кількох контейнерів, які логічно працюють разом на вузлах
Інші ключові термінології
Контролери реплікації
Контролер реплікації — це об’єкт, який визначає шаблон модуля. Він також керує параметрами для горизонтального масштабування ідентичних копій Pod шляхом збільшення або зменшення кількості запущених копій.
Набори реплікації
Набори реплікації — це взаємодія в дизайні контролера реплікації з гнучкістю в тому, як контролер розпізнає модулі, якими він призначений керувати. Він замінює контролери реплікації через їхню вищу здатність вибору реплікацій.
Розгортання
Розгортання – це звичайне робоче навантаження, яке можна безпосередньо створювати та керувати ним. Розгортання використовує набір реплікації як будівельний блок, який додає функцію керування життєвим циклом.
Набори із збереженням стану
Це спеціалізований капсульний контроль, який пропонує порядок і унікальність. Він в основному використовується для детального контролю, який вам особливо потрібен щодо порядку розгортання, стабільної мережі та постійних даних.
Набори демонов
Набори демонов — це ще одна спеціалізована форма контролера модулів, який запускає копію модуля на кожному вузлі в кластері. Цей тип контролера модулів є ефективним методом розгортання модулів, який дозволяє виконувати технічне обслуговування та пропонує послуги для самих вузлів.
Kubernetes проти Docker Swarm
Ось важливі відмінності між Kubernetes проти Docker.
| Параметр | Докер-рій | Кубернетес |
|---|---|---|
| Масштабування | Без автомасштабування | Автоматичне масштабування |
| Балансування навантаження | Автоматичне балансування навантаження | Вручну налаштуйте параметри балансування навантаження |
| Спільне використання обсягу пам’яті | Ділиться обсягами зберігання з будь-яким іншим контейнером | Спільне використання об’ємів сховища для кількох контейнерів в одному Pod |
| Використання інструментів входу та моніторингу | Використовуйте 3rd партійний інструмент, як ELK | Надайте вбудований інструмент для журналювання та моніторингу. |
| Встановлення | Легко та швидко | Складний і трудомісткий |
| графічний інтерфейс користувача | GUI недоступний | Доступний графічний інтерфейс |
| масштабованість | Масштабування відбувається швидше, ніж K8S, але потужність кластера не така надійна | Масштабування відбувається повільно порівняно з Swarm, але гарантує сильніший стан кластера. Балансування навантаження вимагає налаштування служби вручну |
| Балансування навантаження | Забезпечує вбудовану техніку балансування навантаження | Планування процесу для підтримки служб під час оновлення |
| Оновлення та відкат Обсяги даних Реєстрація та моніторинг | Прогресивні оновлення та моніторинг працездатності служби. | Спільний доступ лише до контейнерів у тому самому модулі вбудованих інструментів журналювання та моніторингу. |
Переваги Kubernetes
- Легка організація обслуговування з підс
- Його розробляє Google, які привносять багаторічний цінний досвід роботи в галузі
- Найбільша спільнота серед інструментів оркестровки контейнерів
- Пропонує різноманітні варіанти зберігання, включаючи локальні, SAN та публічні хмари
- Дотримується принципів незмінної інфраструктури
- Kubernetes може запускати локальні «голі метали», OpenStack, публічні хмари Google, Azure, AWS, І т.д.
- Допомагає уникнути проблем із блокуванням постачальника, оскільки може використовувати будь-які API або сервіси, специфічні для певного постачальника, окрім випадків, коли Kubernetes надає abstracція, наприклад, балансувальник навантаження та сховище.
- Контейнерізація за допомогою kubernetes дозволяє пакетному програмному забезпеченню виконувати ці цілі. Це дозволить додаткам, які потрібно випускати та оновлювати без будь-яких простоїв.
- Kubernetes дозволяє гарантувати, що ці контейнерні додатки запускаються, де і коли ви хочете, і допомагає вам знайти ресурси та інструменти, які ви хочете працювати.
Недоліки Kubernetes
- Інформаційна панель Kubenetes не така корисна, як мала б бути
- Kubernetes дещо складний і непотрібний у середовищах, де вся розробка виконується локально.
- Безпека не дуже ефективна.
