Основные понятия в Kubernetes

Автор обложки: InfoOnSecurity

Технология Kubernetes, также известная как k8s, – это open-source-система для автоматизации деплоинга и менеджмента контейнеризованных приложений (то есть запущенных в Docker). 

Далее последует краткий ликбез по основным терминам, связанным с Kubernetes.  

Понятия Docker и Docker Image

Что такое Docker? Это открытая платформа для разработки и запуска программ. Docker позволяет сепарировать приложение от инфраструктуры (системы развертки и т.п.), тем самым повышая скорость разработки в целом. Проще говоря, достаточно создать базовую конфигурацию Докера, и можно сколько угодно деплоить контейнеры с софтом, не отвлекаясь на сложную и долгую рутину. 

Что такое Docker Image? Это файл для запуска кода внутри Docker-контейнера. Что-то в духе набора инструкций или шаблона для быстрой развертки программ с определенной ОС и т.п. Docker Image содержит в себе все необходимое для запуска конкретного ПО в изолированной контейнере и технически напоминает snapshot виртуальной машины (то есть готовую виртуальную систему типа Ubuntu с уже установленными утилитами для запуска именно вашей программы, но без обилия дополнительного софта, делающего саму ОС слишком тяжелой). 

Kubernetes Timeweb Cloud

Пробежимся по остальным терминам

  • Нода – виртуальный или физический сервер, хранящий данные или поддерживающий в рабочем состояние какое-либо ПО.

  • 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

источник

Related Posts
AllEscortAllEscort