Требования

Перед установкой кластера global необходимо подготовить оборудование, сеть и ОС, соответствующие требованиям.

INFO
  1. В настоящее время платформа не поддерживает прямую установку кластера global в существующую среду Kubernetes. Если в вашей среде уже есть кластер Kubernetes, пожалуйста, сделайте резервную копию данных и очистите среду перед установкой.
  2. Если вы планируете использовать глобальное аварийное восстановление кластера (global Cluster Disaster Recovery), сначала ознакомьтесь с разделом global Cluster Disaster Recovery.

Содержание

Планирование ёмкости

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

Single Node
Single Cluster
Multi-Cluster

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

Требования к конфигурации ресурсов

ПараметрТребования спецификации
Количество узлов1 (физическая или виртуальная машина)
CPU≥16 ядер
Оперативная память≥32ГБ

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

  • All-in-one: кластер состоит из одного узла, на котором работают все компоненты управляющей плоскости и приложения.
  • Лёгкая нагрузка: может запускать только демонстрационные приложения с количеством Pod не более 10.
  • Не для производства: не поддерживает горизонтальное масштабирование и не обеспечивает непрерывность работы приложений и высокую доступность.
TIP
  1. Резервирование ресурсов: в производственной среде рекомендуется резервировать не менее 30% ресурсов для обработки внезапных нагрузок.
  2. Планирование сети: кластер global должен быть развернут в отдельном VPC или VLAN с пропускной способностью ≥1 Гбит/с.
  3. Изоляция хранилища: для хранения ETCD рекомендуется использовать NVMe SSD, физически изолированный от хранилища приложений.

Машины

INFO

В этом разделе описаны минимальные требования к оборудованию для построения высокодоступного кластера global. Если вы завершили планирование ёмкости, подготовьте соответствующие ресурсы согласно разделу Capacity Planning или масштабируйте их по необходимости после установки.

Базовые требования

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

КатегорияМинимальные требования
CPU≥ 8 ядер, тактовая частота ≥ 2.5 ГГц
Без оверпровиженинга; отключить энергосбережение
Память≥ 16 ГБ
Без оверпровиженинга; рекомендуется использовать минимум шестиканальную DDR4
Жёсткий дискIOPS одного устройства ≥ 2000
Пропускная способность ≥ 200 МБ/с
Обязательно использование SSD

Требования к архитектуре ARM

Для архитектур ARM (например, Kunpeng 920) рекомендуется увеличить конфигурацию в 2 раза по сравнению с минимальной конфигурацией x86, но не менее чем в 1.5 раза.

Например: если для x86 требуется 8 ядер 16ГБ, то для ARM минимум 12 ядер 24ГБ, а рекомендуемая конфигурация — 16 ядер 32ГБ.

Поддерживаемые ОС и ядра

INFO
  1. Требования к версиям ядра:
    Эти версии ядра официально выпущены и проверены нашими тестами платформы. В вашем реальном развертывании важно соблюдать основные номера версий A.B.C, тогда как последующие минорные версии могут отличаться.
  2. Неподдерживаемые среды:
    Если ОС, версия ядра или архитектура CPU не соответствуют требованиям, пожалуйста, обратитесь в техническую поддержку.
Red Hat Enterprise Linux (RHEL)
CentOS
Ubuntu
Kylin Linux Advanced Server
  • RHEL 7.8: 3.10.0-1127.el7.x86_64
  • RHEL 8.0 до 8.6: 4.18.0-80.el8.x86_64 до 4.18.0-372.9.1.el8.x86_64
WARNING

RHEL 7.8 не поддерживает Calico Vxlan IPv6.

Сеть

Перед установкой необходимо предварительно настроить следующие сетевые ресурсы. Если аппаратный LoadBalancer предоставить невозможно, установщик поддерживает настройку haproxy + keepalived в качестве программного балансировщика нагрузки, однако следует учитывать:

  • Низкая производительность: программный балансировщик уступает по производительности аппаратному LoadBalancer.
  • Повышенная сложность: незнание keepalived может привести к недоступности кластера global, длительному устранению проблем и серьёзному снижению надёжности платформы.

Сетевые ресурсы

РесурсОбязательностьКоличествоОписание
global VIPОбязательно1Используется для доступа узлов к kube-apiserver, настраивается в устройстве балансировки нагрузки для обеспечения высокой доступности.
Этот IP также может использоваться как адрес доступа к Web UI платформы.
Кластеры рабочих нагрузок в той же сети, что и global, могут обращаться к кластеру global через этот IP.
Внешний IPОпциональноПо требованиюЕсли есть кластеры рабочих нагрузок вне сети global (например, в гибридном облаке), необходимо предоставить этот IP. Кластеры в других сетях обращаются к global через этот IP.
Должен быть настроен в устройстве балансировки нагрузки для обеспечения высокой доступности.
Также может использоваться как адрес доступа к Web UI платформы.
Доменное имяОпциональноПо требованиюЕсли требуется доступ к кластеру global или Web UI платформы по доменному имени, предоставьте его заранее и убедитесь в корректности разрешения домена.
СертификатОпциональноПо требованиюРекомендуется использовать доверенный сертификат для избежания предупреждений безопасности браузера; если не предоставлен, установщик сгенерирует самоподписанный сертификат, что может нести риски при использовании HTTPS.
INFO

Доменное имя обязательно в следующих случаях:

  1. Кластер global должен поддерживать доступ по IPv6.
  2. Планируется аварийное восстановление кластера global.
NOTE

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

Конфигурация сети

ТипОписание требования
Скорость сетиСкорость между кластером global и кластерами рабочих нагрузок в одной сети ≥1 Гбит/с (рекомендуется 10 Гбит/с); между сетями ≥100 Мбит/с (рекомендуется 1 Гбит/с).
Недостаточная скорость значительно снижает производительность запросов данных.
Задержка сетиЗадержка ≤2 мс в одной сети; задержка ≤100 мс (рекомендуется ≤30 мс) между сетями.
Сетевая политикаСм. LoadBalancer Forwarding Rules для обеспечения открытия необходимых портов; при использовании Calico CNI необходимо включить протокол IP-in-IP.
Диапазон IP-адресовУзлы кластера global должны избегать использования сетевого сегмента 172.16-32. Если он используется, необходимо скорректировать конфигурацию Docker (добавить параметр bip) для предотвращения конфликтов.

Правила переадресации LoadBalancer

Эти правила обеспечивают нормальный приём трафика кластером global от LoadBalancer. Проверьте сетевую политику согласно таблице ниже, чтобы убедиться, что соответствующие порты открыты.

Исходный IPПротоколIP назначенияПорт назначенияОписание
global VIP, External IPTCPВсе IP узлов управляющей плоскости443

Обеспечивает доступ к Web UI платформы, репозиторию образов и Kubernetes API Server через протокол HTTPS. По умолчанию порт 443. Если требуется использовать нестандартный HTTPS-порт, выполните:

  • Замените порт назначения в правиле переадресации на ваш порт.
  • В параметрах установки Web UI укажите ваш порт.
global VIP, External IPTCPВсе IP узлов управляющей плоскости6443

Порт для доступа к Kubernetes API Server изнутри кластера.

global VIP, External IPTCPВсе IP узлов управляющей плоскости11443

Порт для доступа к репозиторию образов изнутри кластера.
Примечание: если планируется использовать внешний репозиторий образов вместо стандартного, предоставляемого кластером global, этот порт настраивать не нужно.

TIP
  • Рекомендуется настроить проверку состояния (health check) на LoadBalancer для мониторинга статуса портов.
  • При планировании аварийного восстановления кластера global необходимо открыть порт 2379 для всех узлов управляющей плоскости для синхронизации данных ETCD между основным и аварийным кластерами.
  • Платформа по умолчанию поддерживает только HTTPS. Если требуется поддержка HTTP, необходимо открыть HTTP-порт для всех узлов управляющей плоскости.