Описание архитектуры вычислительных узлов
В Nova Container Platform узлы платформы могут иметь разные логические роли, а также объединяться в группы узлов.
Поскольку в контексте Kubernetes роль определяется стандартной меткой узла, например, node-role.kubernetes.io/control-plane
, то пользователь может указать любое дополнительное количество меток, чтобы иметь возможность группировать узлы кластера по определенному признаку.
При формировании групп узлов на этапе установки платформы пользователь также может указать дополнительные параметры Labels
, Taints
и Tolerations
.
Дополнительная информация по формированию групп узлов на этапе установки платформы представлена в разделе Описание процессов установки и обновления.
Роли узлов в Nova Container Platform
По умолчанию Nova Container Platform использует несколько преднастроенных ролей: control-plane
, infra
, ingress
, worker
. С учетом данных определяется, какой набор базовых компонентов будет установлен на те или иные узлы.
Узлы Master
В кластере Kubernetes мастер-узлы имеют специальную метку node-role.kubernetes.io/control-plane
. Мастер узлы обеспечивают работу ключевых компонентов Kubernetes.
Компоненты Kubernetes на мастер-узлах платформы включают сервер Kubernetes API, Etcd, Kubernetes controller mamanger и Kubernetes Scheduler.
Таблица 1. Перечень компонентов Kubernetes на мастер-узлах платформы.
Компонент | Описание |
---|---|
Kubernetes API | Компонент, который предоставляет интерфейс взаимодействия (API) компонентам кластера и пользователям, проверяет и обслуживает их REST-запросы. |
Etcd | Основное хранилище данных Kubernetes в формате "ключ-значение". Другие компоненты кластера следят за конфигурациями в Etcd, чтобы привести свое состояние к указанному состоянию. |
Kubernetes controller manager | Компонент, обеспечивающий основные циклы управления Kubernetes. Controller Manager отслеживает конфигурации в Etcd в кластере и вносит необходимые изменения для достижения указанного состояния какого-либо компонента. |
Kubernetes scheduler | Компонент, задача которого состоит в определении подходящих узлов для вновь создаваемых Pod . |
Кроме этого, на мастер-узлах располагаются компоненты хранилища секретов Secrets Manager, локальный балансировщик Nginx, сервис автоматической разблокировки Secrets Manager Unseal. Данные сервисы запускаются в ОС как службы systemd, в виде статических Pod
и Deployment
в Kubernetes.
Таблица 2. Перечень дополнительных компонентов Nova Container Platform на мастер-узлах платформы.
Компонент | Тип | Описание |
---|---|---|
Secrets Manager | Служба Systemd | Компонент Nova Container Platform для реализации глобального внешнего хранилища секретов, внешней инфраструктуры PKI и OAuth-провайдера аутентификации. |
Secrets Manager Unseal | Служба Systemd | Служба, задача которой автоматически разблокировать (распечатывать) хранилище секретов Secrets Manager в случае его полного перезапуска. Для разблокировки хранилища требуется три специальных ключа из пяти доступных (алгоритм Шамира). Если платформа содержит один мастер-узел, то служба Secrets Manager Unseal использует три уникальных ключа для автоматической разблокировки Secrets Manager. Если платформа содержит три мастер-узла, то на каждом мастер-узле служба Secrets Manager Unseal использует один общий ключ и один уникальный ключ. Таким образом, два из трех мастер-узлов могут предоставить достаточное количество ключей для разблокировки хранилища Secrets Manager. |
Nginx | Kubernetes Static Pod | Локальный балансировщик нагрузки для обеспечения отказоустойчивого доступа ко всем Pod сервера Kubernetes API. Данный балансировщик нагрузки необходим для надежной работы метода аутентификации Kubernetes, используемого в Secrets Manager. Secrets Manager взаимодействует с Kubernetes SelfSubjectAccessReview API для валидации токенов Kubernetes. |
Secrets Store CSI | Kubernetes Deployment | Компонент Nova Container Platform, который позволяет с помощью поставщика секретов переносить ключи, секреты или сертификаты в кластер Kubernetes, сохранять их в объектах Secret или ConfigMap и монтировать в Pod в виде тома. В Nova Container Platform поставщиком секретов является хранилище Secrets Manager. |
Secrets Manager CSI | Kubernetes Deployment | Компонент кластера, который позволяет использовать хранилище секретов Secrets Manager в качестве поставщика секретов SecretProviderClass для компонента Secrets Store CSI. Secrets Manager CSI позволяет синхронизировать Secrets в Kubernetes c хранилищем секретов Secrets Manager. В Nova Container Platform вся чувствительная информация (учетные данные, параметры подключения к OAuth, PKI) хранится в Secrets Manager. Информация, которая должна быть доступна в Kubernetes в виде ресурса Secret , передается в кластер c помощью Secrets Manager CSI и Secrets Store CSI и синхронизируется с Secrets Manager на постоянной основе. |
Количество мастер-узлов в Nova Container Platform ограничено: допускается использование либо одного мастер-узла, либо трех мастер-узлов.
Для эксплуатации Nova Container Platform в продуктивных средах требуется три мастер-узла.
Узлы Infra
В кластере Kubernetes инфраструктурные узлы имеют специальную метку node-role.kubernetes.io/infra
. Инфраструктурные узлы обеспечивают работу платформенных компонентов Nova.
Компоненты Kubernetes на мастер-узлах платформы включают сервер Kubernetes API, Etcd, Kubernetes controller mamanger и Kubernetes Scheduler.
Таблица 1. Перечень компонентов Kubernetes на мастер-узлах платформы.
Компонент | Описание |
---|---|
Kubernetes API | Компонент, который предоставляет интерфейс взаимодействия (API) компонентам кластера и пользователям, проверяет и обслуживает их REST-запросы. |
Etcd | Основное хранилище данных Kubernetes в формате "ключ-значение". Другие компоненты кластера следят за конфигурациями в Etcd, чтобы привести свое состояние к указанному состоянию. |
Kubernetes controller manager | Компонент, обеспечивающий основные циклы управления Kubernetes. Controller Manager отслеживает конфигурации в Etcd в кластере и вносит необходимые изменения для достижения указанного состояния какого-либо компонента. |
Kubernetes scheduler | Компонент, задача которого состоит в определении подходящих узлов для вновь создаваемых Pod . |
Кроме этого, на мастер-узлах располагаются компоненты хранилища секретов Secrets Manager, локальный балансировщик Nginx, сервис автоматической разблокировки Secrets Manager Unseal. Данные сервисы запускаются в ОС как службы systemd, в виде статических Pod
и Deployment
в Kubernetes.