Skip to content

Kubernetes

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

k8s #devops