Предварительные требования

Перед установкой кластера 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: кластер состоит из одного узла, на котором работают все компоненты управляющей плоскости и приложения.
  • Легкая нагрузка: может запускать только демонстрационные приложения с не более чем 10 Pod.
  • Не для производства: не поддерживает горизонтальное масштабирование и не обеспечивает непрерывность работы приложений и высокую доступность.
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 кластер, могут обращаться к нему через этот 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 checks) на LoadBalancer для мониторинга статуса портов.
  • Если планируется аварийное восстановление кластера global, необходимо открыть порт 2379 для всех узлов управляющей плоскости для синхронизации данных ETCD между основным и аварийным кластерами.
  • По умолчанию платформа поддерживает только HTTPS. Если требуется поддержка HTTP, необходимо открыть HTTP-порт для всех узлов управляющей плоскости.