Whatis
Open source утилита для оркестрации контейнерами.
Оркестрация контейнеров - это автоматизация и управление жизненным циклом контейнеров и услуг.
K8s помогает управлять контейнеризированными приложениями (Pod-ами) в любой среде - физические серверы, виртуальные машины, публичные облака - Kuber-у без разницы. K8s не одна программа, а фреймворк (набор технологий). K8s - абстракция; вы переходите от управления сетями, узлами, серверами к управлению приложениями/микросервисами.
K8s автоматизирует рутинные задачи:
-
High Availability (отказоустойчивость)
отказоустойчивость приложения -
Scalability (масштабируемость)
автоматическая масштабируемость, на основе нагрузки
Kuber может и увеличивать кол-во контейнеров (pod-ов, точнее), и уменьшать (чтобы снизить потребляемые ресурсы). Kuber при повышении нагрузки, на, допустим, Pod с nginx, может запустить еще таких же pod-ов и убрать при отсутствии прежней нагрузки. -
Disaster Recovery (аварийное восстановление)
backups, откаты и т.д.
Причины и появления K8s
Почему контейнеры стали популярны?
- Скорость и простота создания образа
- Легкие и универсальные
- Быстрое изменение и откат
- Экономичное использование ресурсов
Какие проблемы принесли микросервисы?
- Сложность управления (если их много)
- Сложность масштабирования
- Сложность распределения нагрузки
- Сложность обеспечения отказоустойчивости
Kuber появился для решения проблем, которые принесли с собой микросервисы.
Разработка началась инженерами Google, которые хотели сделать публичный аналог их собственной внутренней разработке Google Borg (управление кластерами).
Исходный код был опубликован в 2014 г.
Версия 1.0 - в 2015 г.
Организован фонд Cloud Native Computing Foundation (CNCF).
Архитектура K8s
- Pod - самый маленький юнит (абстракция контейнера)
В нем обычно один контейнер, но иногда (при надобности доп. функций) могут быть несколько вспомогательных. - Один pod - одно приложение
- Каждый Pod имеет свой ip-адрес
Присваиваются автоматически