Минимальные требования
Минимальные требования к виртуальной инфраструктуре для развертывания Deckhouse Stronghold в кластере Deckhouse Kubernetes Platform.
Кол-во | Назначение узла и особенности | OS | vCPU | RAM (GB) | Storage (GB) |
---|---|---|---|---|---|
1х | Bootstrap host – ПК, с которого производится установка. – Установленный docker для запуска инсталлятора Deckhouse (инструкции для Ubuntu, macOS, Windows). – HTTPS-доступ до хранилища образов контейнеров registry.deckhouse.io (установка также возможна и в закрытом окружении). – SSH-доступ по ключу до узла, который будет master-узлом будущего кластера. | – Windows 10+ – macOS 10.15+ – Linux (Ubuntu 18.04+, Fedora 35+) | 2 | 4 | 50Gb SSD |
3х | Master host – узел под control plane кластера. – Отказоустойчивая конфигурация – 3 мастер-узла. Для непродуктивных конфигураций допускается сетап с одним мастер-узлом. – HTTPS-доступ до хранилища образов контейнеров registry.deckhouse.io (установка также возможна и в закрытом окружении). – SSH-доступ от bootstrap узла по ключу. – На узле не должно быть установлено пакетов container runtime, например, containerd или docker. | Перечень поддерживаемых ОС При использовании Cilium требуется использовать ядро 5.7+ | 6 | 16 | 50Gb SSD |
Требования для установки
DNS
- Необходимо указать шаблон для DNS-имен кластера, например
%s.domain.my
. Используется для формирования доменов системных приложений в кластере. Например, Grafana для шаблона%s.domain.my
будет доступна какgrafana.domain.my
. - В данном руководстве предполагается использование публичного домена, направленного на публичный адрес кластера. Это необходимо для получения сертификатов Let’s Encrypt сервисам Deckhouse.
- В случае использования уже имеющихся сертификатов (включая Self-Signed), необходимо изменить глобальные настройки в секции modules.https.
- Если у вас нет возможности завести wildcard-записи DNS, для тестирования вы можете воспользоваться, например, сервисом nip.io или аналогами, и настроить DNS имя уже после получения IP адреса для вышеупомянутых сервисов.
Internet access
- Необходим HTTPS-доступ до хранилища образов контейнеров registry.deckhouse.io (порты 443, 80).
В случае установки в закрытом окружении:
- Доступ до проксирующего registry или до частного хранилища образов контейнеров с образами контейнеров Deckhouse (поддерживается работа только с Bearer token-схемой авторизации в registry)
- Доступ до репозитория deb/rpm-пакетов ОС с виртуальной машины для установки стандартных пакетов. Если на виртуальных машинах такой репозиторий не настроен, вы можете настроить HTTP-proxy для доступа к внешним репозиториям в конфигурационном файле Deckhouse.
Infrastructure
- Персональный компьютер, с которого будет производиться установка.
- Три мастер-узла.
- Два системных узла.
- Два фронтенд-узла.
- Необходимое количество воркер-узлов под пользовательские нагрузки.
- Подробнее требования к узлам смотри в разделе «Инфраструктура, виртуальные машины».
- Разбиение дисков на логические разделы не требуется.
Storage
- По умолчанию в качестве хранилища для системных компонентов используется default storage class, определенный в кластере (или emptydir, если он не определен).
- Указать storageClass можно с помощью глобального параметра storageClass.
- Если общего хранилища нет, вы можете использовать модуль local-path-provisioner для работы с локальными дисками.
- Есть возможность использовать любой CSI контроллер. В платформе есть поддержка CEPH CSI.
- Также в платформе есть поддержка sds-replicated-volume. Для проработки архитектуры вы можете обратиться за консультацией к вендору Deckhouse.
Load balancer
- По умолчанию внешний балансировщик для работы платформы не требуется.
- Рекомендации по организации балансировки трафика для продуктивных окружений смотрите в разделе «Балансировка трафика».
- Для настройки ingress controller в кластере обратитесь к документации.
Network address spaces
- Проверить на потенциальные конфликты (пересечения с уже существующими сетями, не занят ли дефолтный порт VXLAN при использовании flannel в этом режиме).
- Отсутствие фильтрации трафика между нодами
- Допустимые режимы работы flannel в кластере: VXLAN (если ваши сервера имеют связность L3) или HostGW (для L2-сетей).
- Адресное пространство Pod’ов кластера. По умолчанию 10.111.0.0/16.
- Адресное пространство для service’ов кластера. По умолчанию 10.222.0.0/16.
- Список внутренних сетей узлов кластера (например, ‘10.0.4.0/24’), который используется для связи компонентов Kubernetes (kube-apiserver, kubelet…) между собой.
Kubernetes version
- Версия Kubernetes выбирается при развертывании кластера.
- Список поддерживаемых версий Kubernetes.
Release channel
- Deckhouse Platform использует пять разных каналов обновлений для доставки обновлений в кластер.
- Для продуктивных сред рекомендуем Stable канал.
- Для непродуктивных сред рекомендуем Early Access канал.
Инструкция по установке
1. Произведите действия 1-3 шагов, описанных в настройках раздела «Быстрый старт».
2. На 4 шаге «Установка» в файле config.yml
выполните все необходимые изменения и укажите количество серверов и их типы в ресурсе ProviderClusterConfiguration, где Provider это выбранная вами инфраструктура:
- 3 мастер-ноды: 4 ядра и 12 ГБ памяти.
3. Отредактируйте config.yml
из 4 шага раздела «Быстрый старт»:
- В ресурс ModuleConfig/global добавьте параметр
spec.settings.modules.https.certManager.clusterIssuerName: selfsigned
- В ресурсе ModuleConfig/user-authn измените значение параметра на
spec.settings.controlPlaneConfigurator.dexCAMode: FromIngressSecret
4. В том же 4 шаге «Установка» в файле resources.yml
выполните все необходимые изменения. После этого:
- Удалите ресурс ProviderInstanceClass, где Provider это выбранная вами инфраструктура (если он вам не требуется)
- Удалите NodeGroup worker (если он вам не требуется)
- Добавьте NodeGroup master со следующим содержанием:
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
name: master
spec:
nodeType: CloudPermanent
nodeTemplate:
labels:
node-role.kubernetes.io/control-plane: ""
node-role.kubernetes.io/master: ""
taints: []
- В ресурсе IngressNginxController удалите параметр целиком
spec.nodeSelector
- Добавьте группу в конец файла, отделив блок от других тремя дефисами
---
:
---
apiVersion: deckhouse.io/v1alpha1
kind: Group
metadata:
name: admins
spec:
name: admins
members:
- kind: User
name: admin
- Добавьте модуль Stronghold в конец файла, отделив блок от других тремя дефисами
---
:
---
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: stronghold
spec:
enabled: true
version: 1
settings:
management:
mode: Automatic
administrators:
- type: Group
name: admins
5. Выполните оставшиеся шаги согласно раздела «Быстрый старт».