Установка Deckhouse Stronghold

Кол-воНазначение узла и особенностиOSvCPURAM (GB)Storage (GB)
Bootstrap host – ПК, с которого производится установка.

– Установленный docker для запуска инсталлятора Deckhouse (инструкции для Ubuntu, macOS, Windows).
– HTTPS-доступ до хранилища образов контейнеров registry.deckhouse.io (установка также возможна и в закрытом окружении).
– SSH-доступ по ключу до узла, который будет master-узлом будущего кластера.
– Windows 10+
– macOS 10.15+
– Linux (Ubuntu 18.04+, Fedora 35+)
2450Gb SSD
Master host – узел под control plane кластера.

– Отказоустойчивая конфигурация – 3 мастер-узла. Для непродуктивных конфигураций допускается сетап с одним мастер-узлом.
– HTTPS-доступ до хранилища образов контейнеров registry.deckhouse.io (установка также возможна и в закрытом окружении).
– SSH-доступ от bootstrap узла по ключу.
– На узле не должно быть установлено пакетов container runtime, например, containerd или docker.
Перечень поддерживаемых ОС

При использовании Cilium требуется использовать ядро 5.7+
61650Gb 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

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. Выполните оставшиеся шаги согласно раздела «Быстрый старт».

Мы используем файлы cookie, чтобы сделать работу с сайтом удобнее.
Подробнее — в политике обработки персональных данных и политике использования файлов «cookie».