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-адрес Присваиваются автоматически