3 июня 2019 г. 1:17

141

Kubernetes что это ?

Kubernetes - открытое программное обеспечение для автоматизации развёртывания, масштабирования и управления контейнеризированными приложениями.

Предназначение Kubernetes — предоставить «платформу для автоматического развёртывания, масштабирования, управления приложениями на кластерах или отдельных хостах»

Ноды

Нода (узел, node) — это отдельная физическая или виртуальная машина, на которой развёрнуты и выполняются контейнеры приложений. Каждый узел в кластере Kubernetes содержит сервисы для запуска приложений в контейнерах (например Docker), а так же компоненты, предназначенные для централизованного управления нодой

Поды

Базовая единица для управления и запуска приложений в Kubernetes называется «под» (англ."pod"). Под — это один или несколько контейнеров, которым гарантирован запуск на одном узле (то есть на одной физической или виртуальной машине), обеспечивается разделение ресурсов[14] и предоставляется уникальный в пределах кластера IP-адрес

Разделы

Раздел (Volume) — это каталог или сетевой диск, возможно, с данными в нём, который доступен контейнерам пода.

Метки и селекторы Kubernetes обеспечивает работу простого хранилища пар ключ-значение (key-value). Этот механизм, называемый метки («labels») может быть использован для маркировки любого объекта API Kubernetes, например, пода или ноды. Селекторы меток («label selectors») — это запросы, которые позволяют получить ссылку на объекты, соответствующие какой-то из меток Метки и селекторы — это главный механизм Kubernetes, который позволяет выбрать, какой из объектов следует использовать для запрашиваемой операции

Сервисы Сервисом в Kubernetes называют совокупность логически связанных наборов pod и политик доступа к ним[18]. Например, сервис может соответствовать одному из уровней программного обеспечения, разработанного в соответствии с принципами многоуровневой архитектуры ПО. Набор подов, соответствующий сервису, получается в результате выполнения селектора соответствующей метки[14] Kubernetes обеспечивает функционал обнаружения сервисов, и маршрутизации по запросу. Он умеет переназначать необходимые для обращения к сервису IP-адрес и доменное имя сервиса различным подам, входящим в его состав. При этом обеспечивается балансировка нагрузки между подами, чьи метки соответствуют сервису в стиле Round robin DNS, а так же корректная работа в том случае, если один из узлов кластера вышел из строя и размещённые на нём поды автоматически переместились на другой.[15] По умолчанию сервис доступен внутри управляемого Kubernetes кластера, например поды бэкенда группируются для обеспечения балансировки нагрузки и в таком виде предоставляются фронтенду, но он может быть настроен и для того, чтобы предоставлять доступ к входящим в его состав подам извне, как к единому фронтенду

На всех узлах кластера minion устанавливаются агенты kubelet и kube-proxy (прокси-балансировщик)

Kubelet Kubelet отвечает за статус выполнения подов на ноде, что включает в себя отслеживание того, что каждый из контейнеров корректно выполняется, находясь в рабочем состоянии. Kubelet обеспечивает запуск, останов и управление контейнерами приложений, организованными в поды. Функционально Kubelet можно рассматривать как аналог supervisord. Kubelet мониторит состояние подов и, в случае, если обнаруживает, что какой-то из подов находится в неверном состоянии, пытается осуществить его повторное развёртывание (деплой) и перезапуск на узле. Статус самой ноды отправляется на мастер-ноду Kubernetes каждые несколько секунд в диагностических сообщениях (heartbeat messages). Если мастер-нода, исходя из содержания этих сообщений или их пропадания, обнаруживает, что конкретный узел не работает должным образом, процесс Replication Controller, выполняемый на мастер-ноде, пытается перезапустить необходимые поды на другом узле, находящемся в рабочем состоянии

Kube-proxy Kube-proxy — это компонент, являющийся комбинацией сетевого прокси-сервера и балансировщика нагрузки. Реализованные в нём операции сетевого уровня используют абстракцию сервиса. Он отвечает за маршрутизацию входящего трафика на конкретные контейнеры, работающие в пределах пода, расположенного на ноде. Маршрутизация обеспечивается на основе IP-адреса и порта входящего запроса.

comments powered by Disqus