Требования к инфраструктуре
В статье представлены основные требования к инфраструктуре для работы с zVirt Containers. Параметры могут меняться в зависимости от масштаба проекта и используемых модулей.
1. Требования к вычислительным ресурсам
Ниже приведены минимальные конфигурации для работы с zVirt Containers. Фактические требования могут увеличиваться в зависимости от нагрузки выбранных модулей.
1.1. Nova Universe
Для развертывания кластера Nova Container Platform используется сервер управления Nova Universe.
| Наименование узла | Количество ВМ | vCPU | RAM, ГБ | Диск, ГБ | IOPS |
|---|---|---|---|---|---|
Nova Universe |
1 |
4 |
16 |
256 |
300+ |
1.2. Конфигурация кластера (без дополнительных модулей)
Минимальная конфигурация
| Наименование узла | Количество ВМ | vCPU | RAM, ГБ | Диск, ГБ | IOPS |
|---|---|---|---|---|---|
Master |
1 |
4 |
8 |
32 |
500+ |
Infra |
1 |
8 |
16 |
128 |
1000+ |
Worker |
1 |
2 |
4 |
32 |
300+ |
Итого |
3 |
14 |
28 |
192 |
Рекомендуемая конфигурация
| Наименование узла | Количество ВМ | vCPU | RAM, ГБ | Диск, ГБ | IOPS |
|---|---|---|---|---|---|
Master |
3 |
4 |
8 |
32 |
500+ |
Infra |
3 |
6 |
12 |
128 |
1000+ |
Ingress |
2 и более |
2 |
4 |
32 |
300+ |
Worker |
2 и более |
2 |
4 |
32 |
300+ |
Итого |
10 и более |
38 |
76 |
608 |
1.3. Требования для установки дополнительных модулей
1.3.1. NeuVector
Для использования модуля NeuVector в кластере Nova Container Platform необходимо добавить следующее количество ресурсов:
| Наименование узла | vCPU | RAM, ГБ |
|---|---|---|
Master |
1 |
3 |
Infra |
4 |
10 |
Ingress |
1 |
3 |
Worker |
1 |
3 |
Итого |
7 |
19 |
1.3.2. OpenSearch
Для использования модуля OpenSearch в кластере Nova Container Platform необходимо добавить следующее количество ресурсов:
| Наименование узла | vCPU | RAM, ГБ |
|---|---|---|
Master |
1 |
1 |
Infra |
3 |
4 |
Ingress |
1 |
1 |
Worker |
1 |
1 |
Итого |
6 |
7 |
1.3.3. Velero
Для использования модуля Velero в кластере Nova Container Platform необходимо добавить следующее количество ресурсов:
| Наименование узла | vCPU | RAM, ГБ |
|---|---|---|
Master |
1 |
1 |
Infra |
1 |
1 |
Ingress |
1 |
1 |
Worker |
1 |
1 |
Итого |
4 |
4 |
1.3.4. Longhorn
Для использования хранилища Longhorn в кластере Nova Container Platform необходимо добавить следующее количество ресурсов:
| Наименование узла | vCPU | RAM, ГБ |
|---|---|---|
Worker |
2 |
4 |
Для минимальной конфигурации используется 1 узел, совмещающий роли client и storage.
Для высокодоступной конфигурации требуется 3 storage-узла. На этих узлах должны быть доступны отдельные блочные устройства, например диски, которые Longhorn сможет использовать для создания виртуальных томов.
1.3.5. Nova Service Mesh (Tech Preview)
Для установки дополнительного модуля Nova Service Mesh требуется следующее количество ресурсов:
| Наименование узла | vCPU | RAM, ГБ | Диск, ГБ |
|---|---|---|---|
Master |
1 |
1 |
- |
Infra |
4 |
6 |
36 |
Worker |
1 |
1 |
- |
Для каждого Pod, в котором будет установлен sidecar, требуется дополнительное количество ресурсов из расчета на 1000 RPS:
| Ресурс | vCPU | RAM, МиБ |
|---|---|---|
Pod |
1 |
50 |
1.4. Пример конфигурации с дополнительными модулями
Минимальная конфигурация с дополнительными модулями (NeuVector, OpenSearch, Velero)
| Наименование узла | Количество ВМ | vCPU | RAM, ГБ | Диск, ГБ | IOPS |
|---|---|---|---|---|---|
Master |
1 |
8 |
14 |
32 |
500+ |
Infra |
1 |
16 |
32 |
128 |
1000+ |
Worker |
1 |
6 |
10 |
32 |
300+ |
Итого |
3 |
30 |
56 |
192 |
Рекомендуемая конфигурация с дополнительными модулями (NeuVector, OpenSearch, Velero)
| Наименование узла | Количество ВМ | vCPU | RAM, ГБ | Диск, ГБ | IOPS |
|---|---|---|---|---|---|
Master |
3 |
8 |
14 |
32 |
500+ |
Infra |
3 |
14 |
28 |
128 |
1000+ |
Ingress |
2 и более |
6 |
10 |
32 |
300+ |
Worker |
2 и более |
6 |
10 |
32 |
300+ |
Итого |
10 и более |
90 |
166 |
608 |
2. Требования к DNS и сети
Для работы с zVirt Containers необходимо выполнить требования к DNS и обеспечить сетевую связность между компонентами решения.
2.1. Требования к zVirt
DNS-сервер, обслуживающий корневой домен инсталляции zVirt, должен быть доступен из сети управления zVirt (management network).
2.2. Требования к Nova
2.2.1. DNS записи для встроенных сервисов
|
Подготовьте DNS-записи до установки Nova Container Platform. Чтобы избежать задержек при развертывании кластера, заранее зарезервируйте и настройте DNS-имена, указывающие на infra-узлы кластера. Эти DNS-записи используют встроенные компоненты платформы. |
Рекомендуемые записи для базовой установки:
-
nova-cilium-hubble.nova.mycompany.local -
nova-release-git-main.nova.mycompany.local -
nova-console.nova.mycompany.local -
nova-oauth.nova.mycompany.local -
nova-alertmanager-main.nova.mycompany.local -
nova-grafana-main.nova.mycompany.local -
nova-prometheus-main.nova.mycompany.local
При использовании OpenSearch и NeuVector добавьте:
-
nova-neuvector-ui.nova.mycompany.local -
nova-neuvector-api-docs.nova.mycompany.local -
nova-logs-main.nova.mycompany.local
При использовании Nova Service Mesh добавьте:
-
nova-jaeger-main.nova.mycompany.local -
nova-kiali.nova.mycompany.local -
nova-prometheus-mesh.nova.mycompany.local -
nova-grafana-mesh.nova.mycompany.local
|
Замените |
2.3. Внешние взаимодействия
Для установки кластера Nova Container Platform по умолчанию требуется доступ к сети Интернет. В вашей инфраструктуре необходимо обеспечить доступ к следующим ресурсам:
| Ресурс | DNS-имя | Порт | IP-адреса |
|---|---|---|---|
Хранилище образов |
|
HTTPS/443 |
|
Сервис проверки лицензии |
|
HTTPS/443 |
|
Сервис доставки ПО |
|
HTTPS/443 |
|
Сервис настройки ПО |
|
HTTPS/8140 |
|
2.4. Закрытое сетевое окружение
Сервер управления Nova Universe поддерживает IP-адрес, настроенный как через DHCP, так и статически. Рекомендуется размещать сервер управления в отдельной от кластеров Kubernetes сети.
|
|
Требования к DNS Для установки платформы с использованием Nova Universe требуется внутренний DNS-сервер, при этом создание записей в нем является обязательным условием. При использовании внешнего DNS-сервера, например 8.8.8.8, невозможно установить платформу. |
2.4.1. DNS-записи для сервисов Nova Universe
|
Подготовьте DNS-записи до установки Nova Container Platform. Чтобы избежать задержек при развертывании кластера, заранее зарезервируйте и настройте DNS-имена, указывающие на Nova Universe. |
Необходимые DNS-записи для установки в закрытом сетевом окружении:
-
hub.universe.mycompany.local -
sun.universe.mycompany.local -
repo.universe.mycompany.local
DNS-записи, необходимые для взаимодействия с сервисами Nova Universe с АРМ пользователя:
-
cluster-manager.universe.mycompany.local -
api.universe.mycompany.local -
nova-api.universe.mycompany.local -
uploads.universe.mycompany.local
|
Замените |
2.4.2. Требования к межсетевому экранированию
Сетевые правила для обеспечения взаимодействия Nova Universe и узлов Nova Container Platform приведены в таблице:
| Источник | Адресат | Тип трафика | Порт/протокол | Описание |
|---|---|---|---|---|
Nova Universe |
Мастер-узлы |
Входящий |
6443/TCP |
Kubernetes API |
Nova Universe |
Мастер-узлы |
Входящий |
8200/TCP |
StarVault API |
Nova Universe |
Все узлы |
Входящий |
22/TCP |
SSH |
Nova Universe |
Инфраструктурные узлы |
Входящий |
80/TCP |
Ingress Nginx Controller HTTP |
Nova Universe |
Инфраструктурные узлы |
Входящий |
443/TCP |
Ingress Nginx Controller HTTPS |
Все узлы |
Nova Universe |
Входящий |
443/TCP |
Ingress Nginx Controller HTTPS |
Сетевые правила для обеспечения взаимодействия Nova Universe и АРМ пользователя приведены в таблице:
| Источник | Адресат | Тип трафика | Порт/протокол | Описание |
|---|---|---|---|---|
АРМ пользователя платформы |
Nova Universe |
Входящий |
443/TCP |
Ingress Nginx Controller HTTPS |
2.5. Внутренние взаимодействия
Для корректной установки и работы Nova Container Platform настройте правила ниже в сетевом сегменте, где расположены узлы платформы, либо не ограничивайте взаимодействие узлов.
2.5.1. Узел nova-ctl
| Источник | Адресат | Тип трафика | Порт/протокол | Описание |
|---|---|---|---|---|
Узел |
Мастер-узлы |
Входящий |
6443/TCP |
Kubernetes API |
Узел |
Мастер-узлы |
Входящий |
8200/TCP |
StarVault API |
Узел |
Все узлы |
Входящий |
22/TCP |
SSH |
Узел |
Инфраструктурные узлы |
Входящий |
80/TCP |
Ingress Nginx Controller HTTP |
Узел |
Инфраструктурные узлы |
Входящий |
443/TCP |
Ingress Nginx Controller HTTPS |
2.5.2. Мастер-узлы кластера Kubernetes
| Источник | Адресат | Тип трафика | Порт/протокол | Описание |
|---|---|---|---|---|
Все узлы, АРМ пользователей платформы |
Мастер-узлы |
Входящий |
6443/TCP |
Kubernetes API |
Все узлы |
Мастер-узлы |
Входящий |
8200/TCP |
StarVault API |
Все узлы |
Мастер-узлы |
Входящий |
18200/TCP |
StarVault API |
Все узлы |
Мастер-узлы |
Входящий |
2379/TCP |
Etcd Client Requests |
Инфраструктурные узлы |
Мастер-узлы |
Входящий |
10259/TCP |
Kubernetes Scheduler metrics |
Инфраструктурные узлы |
Мастер-узлы |
Входящий |
10257/TCP |
Kubernetes Controller Manager metrics |
Мастер-узлы |
Мастер-узлы |
Двунаправленный |
8201/TCP |
StarVault Cluster Endpoint |
Мастер-узлы |
Мастер-узлы |
Двунаправленный |
2380/TCP |
Etcd Peer Requests |
Мастер-узлы |
Все узлы |
Исходящий |
10250/TCP |
Kubelet |
2.5.3. Инфраструктурные узлы кластера Kubernetes
| Источник | Адресат | Тип трафика | Порт/протокол | Описание |
|---|---|---|---|---|
Все узлы, АРМ пользователей платформы |
Инфраструктурные узлы |
Входящий |
80/TCP |
Ingress Nginx Controller HTTP |
Все узлы, АРМ пользователей платформы |
Инфраструктурные узлы |
Входящий |
443/TCP |
Ingress Nginx Controller HTTPS |
Все узлы |
Инфраструктурные узлы |
Входящий |
8443/TCP |
Ingress Nginx Controller Validating webhook |
Инфраструктурные узлы |
Все узлы |
Исходящий |
9100/TCP |
Prometheus Node Exporter |
Инфраструктурные узлы |
Все узлы |
Исходящий |
9962/TCP |
Cilium Agent metrics |
Инфраструктурные узлы |
Все узлы |
Исходящий |
9963/TCP |
Cilium Operator metrics |
Инфраструктурные узлы |
Мастер-узлы |
Исходящий |
10259/TCP |
Kubernetes Scheduler metrics |
Инфраструктурные узлы |
Мастер-узлы |
Исходящий |
10257/TCP |
Kubernetes Controller Manager metrics |
Инфраструктурные узлы |
Все узлы |
Исходящий |
10250/TCP |
Kubelet |
Инфраструктурные узлы |
Инфраструктурные узлы |
Исходящий |
10249/TCP |
Kube Proxy metrics |
2.5.4. Узлы балансировки входящих запросов (Ingress-узлы)
| Источник | Адресат | Тип трафика | Порт/протокол | Описание |
|---|---|---|---|---|
Все узлы, АРМ пользователей платформы |
Ingress-узлы |
Входящий |
80/TCP |
Ingress Nginx Controller HTTP |
Все узлы, АРМ пользователей платформы |
Ingress-узлы |
Входящий |
443/TCP |
Ingress Nginx Controller HTTPS |
Все узлы |
Ingress-узлы |
Входящий |
8443/TCP |
Ingress Nginx Controller Validating webhook |
Инфраструктурные узлы |
Ingress-узлы |
Входящий |
10254/TCP |
Ingress Nginx Controller metrics |
|
Если в конфигурации кластера Nova Container Platform не используются выделенные Ingress-узлы, примените все правила для Ingress-узлов к рабочим узлам (Worker). |
2.5.5. Все узлы кластера Kubernetes
| Источник | Адресат | Тип трафика | Порт/протокол | Описание |
|---|---|---|---|---|
Все узлы |
Все узлы |
Двунаправленный |
179/TCP |
BGP |
Все узлы |
Все узлы |
Двунаправленный |
4789/UDP |
VXLAN Overlay |
Все узлы |
Все узлы |
Двунаправленный |
8472/UDP |
VXLAN Overlay |
Все узлы |
Все узлы |
Двунаправленный |
IPIP (4) |
IP in IP Protocol |
Все узлы |
Все узлы |
Двунаправленный |
4240/TCP |
Cilium Health Check |
Все узлы |
Все узлы |
Двунаправленный |
ICMP (8/0) |
Cilium Health Check |
Все узлы |
Все узлы |
Двунаправленный |
4244/TCP |
Cilium Hubble server |
Все узлы |
Все узлы |
Двунаправленный |
4245/TCP |
Cilium Hubble relay |
Инфраструктурные узлы |
Все узлы |
Входящий |
9100/TCP |
Prometheus Node Exporter |
Инфраструктурные узлы |
Все узлы |
Входящий |
9962/TCP |
Cilium Agent metrics |
Инфраструктурные узлы |
Все узлы |
Входящий |
9963/TCP |
Cilium Operator metrics |
Инфраструктурные узлы |
Все узлы |
Входящий |
10249/TCP |
Kube Proxy metrics |
Инфраструктурные узлы и мастер-узлы |
Все узлы |
Входящий |
10250/TCP |
Kubelet |
Все узлы |
Мастер-узлы |
Исходящий |
2379/TCP |
Etcd Client Requests |
Все узлы |
Мастер-узлы |
Исходящий |
8200/TCP |
StarVault API |
Все узлы |
Инфраструктурные узлы |
Исходящий |
80/TCP |
Ingress Nginx Controller HTTP (Internal) |
Все узлы |
Инфраструктурные узлы |
Исходящий |
443/TCP |
Ingress Nginx Controller HTTPS (Internal) |
Все узлы |
Инфраструктурные узлы, Ingress-узлы |
Исходящий |
8443/TCP |
Ingress Nginx Controller Validating webhook |
Все узлы |
Мастер-узлы |
Исходящий |
6443/TCP |
Kubernetes API |
|
Если планируете устанавливать Nova Container Platform с использованием HTTP-прокси, добавьте в список разрешающих правил доступ к HTTP-прокси со всех узлов платформы. |
2.5.6. АРМ пользователей платформы
| Источник | Адресат | Тип трафика | Порт/протокол | Описание |
|---|---|---|---|---|
АРМ пользователей платформы |
Ingress-узлы |
Исходящий |
80/TCP |
Ingress Nginx Controller HTTP (Public) |
АРМ пользователей платформы |
Ingress-узлы |
Исходящий |
443/TCP |
Ingress Nginx Controller HTTPS (Public) |
АРМ пользователей платформы |
Инфраструктурные узлы |
Исходящий |
80/TCP |
Ingress Nginx Controller HTTP (Internal) |
АРМ пользователей платформы |
Инфраструктурные узлы |
Исходящий |
443/TCP |
Ingress Nginx Controller HTTPS (Internal) |
АРМ пользователей платформы |
Мастер-узлы |
Исходящий |
6443/TCP |
Kubernetes API |
|
При развертывании Nova Container Platform в публичных облаках за контроль сетевого взаимодействия отвечают списки контроля доступа (Network ACL) и группы безопасности. Убедитесь, что настроенные в инфраструктуре правила не пересекаются и не блокируют друг друга. При необходимости добавьте узлы платформы в общую группу безопасности без ограничений сетевого взаимодействия. |
2.6. Требования к сетевым балансировщикам
Для работы внутренних компонентов Nova Container Platform не требуется наличие внешних сетевых балансировщиков в пользовательской инфраструктуре.
Конфигурация кластера предусматривает наличие необходимых встроенных механизмов для обеспечения отказоустойчивого доступа к компонентам Kubernetes API и Ingress.
Чтобы обеспечить внешний отказоустойчивый доступ пользователей к компонентам Kubernetes API и Ingress, учтите следующие требования к настройке собственных сетевых балансировщиков:
Балансировщик Kubernetes API предоставляет общую точку подключения пользователю и сервисам для работы с кластером.
-
Поддерживается только Layer-4 балансировка (Raw TCP, SSL Passthrough).
|
Для работы с Kubernetes API не требуется настройка сохранения сессий (персистентность). |
На сетевом балансировщике должны быть настроены следующие порты:
| Порт | Backend-узлы | Внутренний доступ | Внешний доступ | Описание |
|---|---|---|---|---|
6443 |
Мастер-узлы. Для проверки доступности узла (healthcheck) необходимо настроить HTTP-проверку, используя путь |
Да |
Да |
Kubernetes API |
Балансировщики Ingress предоставляют общую точку подключения пользователям и сервисам для работы с веб-сервисами, публикуемыми через Ingress-контроллеры, а также сервисами Kubernetes, для которых используется Layer-4 балансировка средствами Ingress-контроллера.
-
Поддерживается Layer-4 балансировка (Raw TCP, Raw UDP, SSL Passthrough).
-
Поддерживается Layer-7 балансировка для доступа к публикуемым веб-сервисам.
|
Использование дополнительной Layer-7 балансировки для доступа к публикуемым веб-сервисам может привести к увеличению затрат на их настройку и поддержание стабильности сессий и подключений. |
На сетевом балансировщике должны быть настроены следующие порты:
| Порт | Backend-узлы | Внутренний доступ | Внешний доступ | Описание |
|---|---|---|---|---|
80 |
Инфраструктурные узлы. Для healthcheck настройте HTTP-проверку пути |
Да |
Да |
Доступ к служебным веб-сервисам Ingress по HTTP |
443 |
Инфраструктурные узлы. Для healthcheck настройте HTTP-проверку пути |
Да |
Да |
Доступ к служебным веб-сервисам Ingress по HTTPS |
53 |
Инфраструктурные узлы |
Да |
Да |
Доступ к DNS-службе при внутреннем или гибридном режиме работы DNS |
80 |
Ingress-узлы. Для healthcheck настройте HTTP-проверку пути |
Да |
Да |
Доступ к публичным веб-сервисам Ingress по HTTP |
443 |
Ingress-узлы. Для healthcheck настройте HTTP-проверку пути |
Да |
Да |
Доступ к публичным веб-сервисам Ingress по HTTPS |
|
Указанный выше перечень портов может быть расширен при использовании собственных дополнительных правил TCP и UDP балансировки. |
|
При установке Nova Container Platform в минимальной конфигурации роль узлов балансировки входящего трафика (Ingress) выполняют рабочие узлы, выделенные для пользовательских нагрузок. |