Підручник Kubernetes для початківців: основи, функції, Archiтектура
Перш ніж розпочати цей підручник Kubernetes, давайте дізнаємося:
Що таке кубернети?
Кубернетес – це система керування контейнерами, розроблена на платформі Google. Kubernetes допомагає керувати контейнерними програмами в різних типах фізичних, віртуальних і хмарних середовищ. Google Kubernetes — це надзвичайно гнучкий інструмент-контейнер для постійної доставки складних програм, що працюють у кластерах із сотень до тисяч окремих серверів.
Навіщо потрібні контейнери?
Сучасний користувач Інтернету ніколи не погоджується на простої. Тому розробники повинні знайти спосіб виконувати технічне обслуговування та оновлення, не перериваючи своїх послуг.
Тому контейнер, який є ізольованими середовищами. Він містить усе необхідне для роботи програми. Це полегшує розробнику редагування та розгортання програм. Крім того, контейнеризація стала кращим методом для упаковки, розгортання та оновлення веб-додатків.
Які завдання виконує Kubernetes?
Kubernetes — це ядро Linux, яке використовується для розподілених систем. Це допомагає вам абстрагуватися від апаратного забезпечення, що лежить в основі вузлів (серверів), і пропонує узгоджений інтерфейс для програм, які споживають спільний пул ресурсів.
Навіщо використовувати Kubernetes?
Kubernetes допомагає вам контролювати розподіл ресурсів і керування трафіком для хмарних програм і мікросервісів. Це також допомагає спростити різні аспекти сервіс-орієнтованих інфраструктур. Kubernetes дозволяє вам гарантувати, де і коли запускаються контейнерні програми, і допомагає вам знайти ресурси та інструменти, з якими ви хочете працювати.
Особливості Кубернетів
Ось основні функції Kubernetes:
- Автоматизоване планування
- Можливості самовідновлення
- Автоматичне розгортання та відкат
- Горизонтальне масштабування та балансування навантаження
- Пропонує узгодженість середовища для розробки, тестування та виробництва
- Інфраструктура слабо пов'язана з кожним компонентом, який може діяти як окрема одиниця
- Забезпечує більш високу щільність використання ресурсів
- Пропонує корпоративні функції
- Управління, орієнтоване на застосування
- Автоматично масштабована інфраструктура
- Можна створити передбачувану інфраструктуру
Основи Kubernetes
Тепер у цьому підручнику з Kubernetes ми дізнаємося деякі важливі основи Kubernetes:
-
Cluster
Це набір хостів (серверів), який допомагає вам об’єднати доступні ресурси. Це включає оперативну пам’ять, ЦП, оперативну пам’ять, диск і їхні пристрої в придатний для використання пул.
-
Майстер
Master — це набір компонентів, які складають панель керування Kubernetes. Ці компоненти використовуються для всіх кластерних рішень. Він включає як планування, так і реагування на події кластера.
-
вузол
Це єдиний хост, який може працювати на фізичному або віртуальна машина. Вузол має запускати kube-proxy, minikube та kubelet, які вважаються частиною кластера.
-
Простір імен
Це логічний кластер або середовище. Це широко використовуваний метод, який використовується для визначення обсягу доступу або поділу кластера.
Кубернетес Archiтектура
Нижче наведено детальну схему архітектури Kubernetes:
Головний вузол
Головний вузол — це перший і найважливіший компонент, який відповідає за керування кластером Kubernetes. Це точка входу для всіх видів адміністративних завдань. Для перевірки відмовостійкості в кластері може бути більше одного головного вузла.
Головний вузол має різні компоненти, такі як сервер API, менеджер контролера, планувальник і ETCD. Дайте побачити їх усіх.
Сервер API: Сервер API діє як точка входу для всіх команд REST, які використовуються для керування кластером.
Планувальник
Планувальник розкладає завдання на підлеглий вузол. Він зберігає інформацію про використання ресурсів для кожного підлеглого вузла. Він відповідає за розподіл робочого навантаження.
Це також допомагає відстежувати, як робоче навантаження використовується на вузлах кластера. Це допомагає розподілити навантаження на доступні ресурси та прийняти навантаження.
тощо
Компоненти 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 надає абстракцію, наприклад балансування навантаження та сховище.
- Контейнерізація за допомогою kubernetes дозволяє пакетному програмному забезпеченню виконувати ці цілі. Це дозволить додаткам, які потрібно випускати та оновлювати без будь-яких простоїв.
- Kubernetes дозволяє гарантувати, що ці контейнерні додатки запускаються, де і коли ви хочете, і допомагає вам знайти ресурси та інструменти, які ви хочете працювати.
Недоліки Kubernetes
- Інформаційна панель Kubenetes не така корисна, як мала б бути
- Kubernetes дещо складний і непотрібний у середовищах, де вся розробка виконується локально.
- Безпека не дуже ефективна.
Підсумки
- Контейнер допомагає організації виконувати технічне обслуговування та оновлення без переривання послуг
- Kubernetes є прикладом системи керування контейнерами, розробленої на платформі Google.
- Найбільша перевага використання Kubernetes полягає в тому, що він може запускати локальні OpenStack, публічні хмари Google, Azure, AWS тощо.
- Kubernetes пропонує автоматизовані можливості планування та самовідновлення.
- Cluster, master, node і простір імен є важливою основою kubernetes
- Головний вузол і робочий вузол є важливими компонентами архітектури Kubernetes.
- Контролери реплікації, набори реплікації, розгортання, набори стану, набори демонов — інші важливі терміни, які використовуються в Kubernetes.
- Docker swarm не дозволяє автоматичне масштабування, тоді як Kubernetes дозволяє автомасштабування.
- Найбільшим недоліком Kubenetes є те, що його інформаційна панель не дуже корисна та ефективна