Принципы и архитектура Kubernetes

Чтобы понять системные и предварительные требования к ArcGIS Enterprise on Kubernetes, ознакомьтесь с принципами и архитектурой Kubernetes. Ниже представлены основные термины, которые будут использоваться во всей документации.

Кластер

Кластер — это набор рабочих узлов, которые работают вместе для запуска контейнерных приложений. Кластер Kubernetes является предварительным требованием для развертывания ArcGIS Enterprise on Kubernetes.

Узел

Узел — это виртуальная или физическая машина, для которой задан минимальный набор требований к оборудованию. Количество необходимых для этого развертывания узлов зависит от профиля архитектуры, который был выбран в ходе развертывания. Посмотрите системные требования, чтобы определить минимальные требования к узлу для развертывания.

Пространство имен

Пространство имен используется для организации объектов в кластере Kubernetes. В кластере может быть одно или несколько пространств имен, каждое будет задано уникальным именем. При удалении пространства имен также будут удалены все его объекты. Пространство имен является предварительным требованием для развертывания ArcGIS Enterprise on Kubernetes.

Контроль доступа на основе роли (RBAC).

Контроль доступа на уровне роли используется для управления правами на ресурсы в рамках кластера.

Квоты ресурсов

Квоты ресурсов используются для управления лимитами ресурсов, таких как ЦП и память, в указанном пространстве имен.

Секреты

Секрет используется для хранения и управления паролями, токенами, ключами или другой чувствительной информацией в пространстве имен.

Модуль

Модуль — это наименьшая единица в кластере Kubernetes. Модули — это абстрактное понятие контейнера или, в некоторых случаях, набора контейнеров. Каждому модулю в кластере назначается уникальный и доступный внутри системы IP-адрес.

Развертывание

Развертывание — это группировка назначенного набора модулей, ReplicaSets и Services, которые работают вместе для запуска приложений из контейнеров. Развертывание управляет обновлениями для набора модулей, где они могут быть масштабированы и обновлены с оптимизированными лимитами ресурсов. В ArcGIS Enterprise on Kubernetes развертывания управляются из ArcGIS Enterprise Manager или ArcGIS Enterprise Administrator API. В ArcGIS Enterprise on Kubernetes администраторы управляют ГИС-сервисами и приложениями как развертываниями.

ReplicaSet

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

StatefulSets

StatefulSets используются для управления модулями, которые были созданы с тем же набором спецификаций. Они поддерживают уникальный ID для каждого модуля в рамках соответствующего развертывания, чтобы гарантировать то, что модули являются униклаьными и назначены в соответствии с постоянными объемами хранения. StatefulSets сохраняют состояние.

Сервис

Сервис используется для группирования набора модулей и предоставления к ним доступа по мере необходимости. Служба использует единое имя системы доменных имен (DNS) для группы модулей и направляет внутренний сетевой трафик на серию модулей для управления рабочей нагрузкой и обеспечения связи между модулями. Сервис определяется статическим IP адресом, который можно прикрепить и распознать по участвующим модулям.

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

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

Точка входа

Точка входа используется для маршрутизации внешнего трафика в кластер. Также ее можно использовать для предоставления дополнительной балансировки нагрузки для сервисов в рамках кластера.

Постоянный том

Постоянные тома представляют собой ресурсы, которые доступны кластеру в целях хранения системных ресурсов и данных. Контейнеры и модули в кластере получают доступ к постоянным томам с помощью заявления постоянных томов Следующая информация относится к постоянным томам:

  • Администратор может выполнить подключения из кластера Kubernetes к физическом хранилищу, например, облачному хранилищу, сетевой файловой системе (NFS) и т.п.
  • Они не зависят от жизненного цикла модуля.
  • Они не привязаны к конкретному узлу; они связаны со всем кластером.
  • Постоянные тома находятся за пределами пространства имен, чтобы обеспечить хранение всего кластера.

Постоянные тома определяются администратором как набор свойств. Необходимые спецификации в файле разнятся и зависят от типа физического хранилища. Постоянные тома можно подготовить статически перед развертыванием. Также их можно подготовить динамически в ходе развертывания при использовании класса хранения.

Дополнительную информацию о постоянных томах см. в разделе системные требования.

Класс хранения

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

Заявление постоянного тома

Заявляение постоянного тома отправляет запросы или заявления постоянных томов для передачи ресурсов модулю. Модуль запрашивает хранилище через заявление постоянного тома, которое, в свою очередь, запрашивает хранилище через класс хранилища. Заявления постоянных томов существуют внутри пространства имен. Постоянное хранилище используется для управления сохраненными данными, от файлов конфигурации и журналов до ресурсов участников.

Коммуникация модуль-модуль

Модули взаимодействуют друг с другом через сервис в виртуальной сети. Отдельным модулям назначается IP-адрес, который сервис распознает через жизненный цикл модуля. Когда модуль завершает работу, возможно, из-за сбоя приложения в его контейнере, на его месте создаются заменяющий модуль и связанный с ним IP-адрес.

Ограничения распространения топологии

TopologySpreadConstraint — это свойство, которое может быть применено к шаблонам модулей и которое управляет тем, как выполняется планирование по топологии кластера. Домен топологии определяется тем, что каждому уникальному значению присваивается один и тот же ключ надписи. TopologySpreadConstraint обеспечивает равномерное распределение по доменам топологии в соответствии с заданным свойством maxSkew. Если параметр maxSkew установлен на 1, то количество модулей в домене топологии может быть только в пределах 1 реплики друг от друга, поэтому при использовании трех доменов топологии планировщик не пропустит реплики 0, 1 и 2 в каждом из трех доменов и будет планировать как 1, 1, 1.