Автор обложки: InfoOnSecurity
Технология Kubernetes, также известная как k8s, – это open-source-система для автоматизации деплоинга и менеджмента контейнеризованных приложений (то есть запущенных в Docker).
Далее последует краткий ликбез по основным терминам, связанным с Kubernetes.
Понятия Docker и Docker Image
Что такое Docker? Это открытая платформа для разработки и запуска программ. Docker позволяет сепарировать приложение от инфраструктуры (системы развертки и т.п.), тем самым повышая скорость разработки в целом. Проще говоря, достаточно создать базовую конфигурацию Докера, и можно сколько угодно деплоить контейнеры с софтом, не отвлекаясь на сложную и долгую рутину.
Что такое Docker Image? Это файл для запуска кода внутри Docker-контейнера. Что-то в духе набора инструкций или шаблона для быстрой развертки программ с определенной ОС и т.п. Docker Image содержит в себе все необходимое для запуска конкретного ПО в изолированной контейнере и технически напоминает snapshot виртуальной машины (то есть готовую виртуальную систему типа Ubuntu с уже установленными утилитами для запуска именно вашей программы, но без обилия дополнительного софта, делающего саму ОС слишком тяжелой).
Пробежимся по остальным терминам
-
Нода – виртуальный или физический сервер, хранящий данные или поддерживающий в рабочем состояние какое-либо ПО.
-
Master-нода – сущность, контролирующая процессы разработки и следящая за состоянием других нод.
-
Worker-нода – здесь размещается приложение в виде контейнера.
-
Кластер – система менеджмента нескольких нод.
-
Контейнер – программное естество Докера, необходимое для изолированного запуска программ.
-
ETCD-кластер – это база данных, хранящая информацию о кластере в виде ключей и значений.
-
Kuberscheduler – утилита, отвечающая за планирование деплоя контейнерных приложений.
-
Kubelet – вспомогательный инструмент, запускаемый на каждой ноде и «слушающий» инструкции со стороны Kube API-сервера. Kubelet создает и удаляет контейнеры по мере необходимости.
-
Kube API-сервер – это сущность, буквально решающая судьбу всех операций, происходящих внутри кластера. Некий цифровой дирижер, контролирующий внутренние процедуры и время от времени запрашивающий данные из Kubelet'a, чтобы отслеживать состояния нод и контейнеров внутри этих нод (мониторит их статус и оповещает о важных изменениях).
-
kube-proxy – инструмент, позволяющий наладить коммуникацию между сервисами внутри одного кластера. Получается система взаимодействия на манер той, что существует между worker-нодами. Прокси гарантирует, что соблюдаются все правила работы Kubernetes и контейнеры на worker-нодах могут взаимодействовать друг с другом без каких-либо помех.
-
Менеджер управления (или Controller Manager). Есть масса контроллеров отвечающих за работу тех или иных аспектов Kubernetes. Менеджер нужен для управления этими контроллерами.
-
Replication Controller. Проверяет, что в текущий момент запущено необходимое количество контейнеров.
-
Node Controller. Контролирует работу нод. Этот контроллер ответственен за подключение новых нод к кластерам, а также решает проблемы по ходу появления сбоев в нодах или при их отключении.
Оригинал: InfoOnSecurity
Комментарии