Kubernetes. Часть 1: концепции и основы

Last updated on 05.07.2019

Что такое Kubernetes простыми словами

Kubernetes – опенсорсная разработка компании Google на языке Go с 2014 года, также именуемая, как k8s. Данная платформа нужна для централизованного размещения, взаимодействия и управлением кластерами контейнеров (например, Docker).

Что умеет Kubernetes

  • Поднимать упавшие контейнеры;
  • Балансировать трафик в зависимости от нагрузки;
  • Мониторить СХД;
  • Проверять работоспособность приложений;
  • Реплицировать ноды с приложениями;
  • Мониторить ресурсы;
  • Предоставлять аутентификацию и авторизацию;
  • И многое другое…

Оркестрация контейнеров

Для гибкости и масштабирования используется координация взаимодействия двух и более контейнеров, называемая оркестрация. Kubernetes лишь один из инструментов по оркестрированию. Имеются также и другие: нативный Docker Swarm или Mesos.

Схема архитектуры

Описание компонентов архитектуры

Ниже кратко описаны основные компоненты из схемы выше.

Master Server (ведущий узел)

Основной сервер, через который происходит всё управление Kubernetes. Таких серверов может быть несколько для разделения нагрузки и отказоустойчивости. На нём располагаются такие основные компоненты, как kube-apiserver, etcd, kube-controller-manager, kube-scheduler, разного рода addons (провайдеры DNS, kube-ui, fluentd-elasticsearch и система мониторинга cluster-monitoring). Эти компоненты также могут быть разнесены по узлам, но, как правило, располагаются на одном мастер сервере.

Контроллер репликаций

Служит для определения количества запущенных подов и контейнеров, запуская или останавливая их.

Сервис

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

Метки\ярлыки

Применяются для установки особенных свойств объектам. Обычно используются для подов в виде пары ключ-значение и являются уникальными в рамках каждого объекта.

Узел\node

Узлом может быть как физический, так и виртуальный компьютер. На каждом узле будут располагаться компоненты Kubernetes, описанные ниже.

Под (pod)

Поды содержат в себе контейнеры, которые связаны между собой логически. Внутри пода контейнеры имеют один IP-адрес и пространство портов, а также доступ к общему локальному хранилищу узла. При удалении пода, хранилище внутри него также уничтожается. Экземпляры подов имеют уникальный ID для их различия.

kubelet

На каждом узле должен быть запущен агент, называемый kubelet. Его задачами является наблюдение за контейнерами, мониторинг ресурсов, загрузка параметров для пода, запуск контейнеров пода и прочее.

kube-proxy

Отвечает за обслуживание сетевых соединений.

Docker

Непосредственно для работы самих контейнеров.

Часть 2

Часть 3

Ваш комментарий будет первым

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *