Deckhouse Platform в kind

Выберите редакцию Deckhouse Platform

Ниже сгенерированы рекомендованные настройки для установки Deckhouse Platform Community Edition:

  • config.yml — файл первичной конфигурации кластера. Содержит параметры инсталлятора и начальные параметры кластера.

Обратите внимание:

  • обязательные для самостоятельного заполнения параметры.
  • опциональные параметры.
  • Если вы запускаете инсталлятор под Windows, то убедитесь, что кодировка создаваемых YAML-файлов конфигурации UTF-8 (либо удалите примечания на русском языке).

Deckhouse Platform использует каналы обновлений (release channels), о чём вы можете подробнее узнать в документации.

# Секция первичной инициализации кластера Deckhouse (InitConfiguration).
# Используемая версия API Deckhouse.
apiVersion: deckhouse.io/v1
# Тип секции конфигурации.
kind: InitConfiguration
# Секция с параметрами Deckhouse.
deckhouse:
  # Используемый канал обновлений.
  releaseChannel: Stable
  # При установке Deckhouse в существующий кластер используется вариант поставки — Minimal.
  bundle: Minimal
  configOverrides:
    global:
      modules:
        # Шаблон для создания Ingress-ресурсов модулей Deckhouse.
        # Например, Grafana для %s.example.com будет доступна на домене grafana.example.com.
        # В качестве рабочего примера используется сервис nip.io.
        publicDomainTemplate: "%s-127-0-0-1.nip.io"
        https:
          mode: Disabled
    # Включение группы модулей, необходимых для работы мониторинга.
    operatorPrometheusCrdEnabled: true
    operatorPrometheusEnabled: true
    prometheusCrdEnabled: true
    prometheusEnabled: true
    # В настройках модуля prometheus отключаем запуск longterm Prometheus — для тестирования Deckhouse он избыточен.
    # Подробнее о longterm Prometheus — https://deckhouse.io/ru/documentation/v1/modules/300-prometheus/
    prometheus:
      longtermRetentionDays: 0
    # Включаем модуль мониторинга control plane кластера.
    monitoringKubernetesControlPlaneEnabled: true
    # Включаем модуль установки Ingress-контроллера.
    ingressNginxEnabled: true
# Секция первичной инициализации кластера Deckhouse (InitConfiguration). # Используемая версия API Deckhouse. apiVersion: deckhouse.io/v1 # Тип секции конфигурации. kind: InitConfiguration # Секция с параметрами Deckhouse. deckhouse: # Используемый канал обновлений. releaseChannel: Stable # При установке Deckhouse в существующий кластер используется вариант поставки — Minimal. bundle: Minimal configOverrides: global: modules: # Шаблон для создания Ingress-ресурсов модулей Deckhouse. # Например, Grafana для %s.example.com будет доступна на домене grafana.example.com. # В качестве рабочего примера используется сервис nip.io. publicDomainTemplate: "%s-127-0-0-1.nip.io" https: mode: Disabled # Включение группы модулей, необходимых для работы мониторинга. operatorPrometheusCrdEnabled: true operatorPrometheusEnabled: true prometheusCrdEnabled: true prometheusEnabled: true # В настройках модуля prometheus отключаем запуск longterm Prometheus — для тестирования Deckhouse он избыточен. # Подробнее о longterm Prometheus — https://deckhouse.io/ru/documentation/v1/modules/300-prometheus/ prometheus: longtermRetentionDays: 0 # Включаем модуль мониторинга control plane кластера. monitoringKubernetesControlPlaneEnabled: true # Включаем модуль установки Ingress-контроллера. ingressNginxEnabled: true

Лицензионный ключ доступа Deckhouse Platform Enterprise Edition

Лицензионный ключ используется компонентами Deckhouse для доступа к геораспределенному container registry, в котором хранятся все используемые Deckhouse образы.

Приведенные на данной странице команды и файлы конфигурации сгенерированы с учетом введенного лицензионного ключа.

Запросить лицензионный ключ

Заполните форму и мы отправим данные для доступа вам на почту.

Введите лицензионный ключ

Ниже сгенерированы рекомендованные настройки для установки Deckhouse Platform Enterprise Edition:

  • config.yml — файл первичной конфигурации кластера. Содержит параметры инсталлятора и начальные параметры кластера.

Обратите внимание:

  • обязательные для самостоятельного заполнения параметры.
  • опциональные параметры.
  • Если вы запускаете инсталлятор под Windows, то убедитесь, что кодировка создаваемых YAML-файлов конфигурации UTF-8 (либо удалите примечания на русском языке).

Deckhouse Platform использует каналы обновлений (release channels), о чём вы можете подробнее узнать в документации.

# Секция первичной инициализации кластера Deckhouse (InitConfiguration).
# Используемая версия API Deckhouse.
apiVersion: deckhouse.io/v1
# Тип секции конфигурации.
kind: InitConfiguration
# Секция с параметрами Deckhouse.
deckhouse:
  # Адрес Docker registry с образами Deckhouse.
  imagesRepo: registry.deckhouse.io/deckhouse/ee
  # Строка с ключом для доступа к Docker registry (сгенерировано автоматически для вашего токена доступа).
  registryDockerCfg: <YOUR_ACCESS_STRING_IS_HERE>
  # Используемый канал обновлений.
  releaseChannel: Stable
  # При установке Deckhouse в существующий кластер используется вариант поставки — Minimal.
  bundle: Minimal
  configOverrides:
    global:
      modules:
        # Шаблон для создания Ingress-ресурсов модулей Deckhouse.
        # Например, Grafana для %s.example.com будет доступна на домене grafana.example.com.
        # В качестве рабочего примера используется сервис nip.io.
        publicDomainTemplate: "%s-127-0-0-1.nip.io"
        https:
          mode: Disabled
    # Включение группы модулей, необходимых для работы мониторинга.
    operatorPrometheusCrdEnabled: true
    operatorPrometheusEnabled: true
    prometheusCrdEnabled: true
    prometheusEnabled: true
    # В настройках модуля prometheus отключаем запуск longterm Prometheus — для тестирования Deckhouse он избыточен.
    # Подробнее о longterm Prometheus — https://deckhouse.io/ru/documentation/v1/modules/300-prometheus/
    prometheus:
      longtermRetentionDays: 0
    # Включаем модуль мониторинга control plane кластера.
    monitoringKubernetesControlPlaneEnabled: true
    # Включаем модуль установки Ingress-контроллера.
    ingressNginxEnabled: true
# Секция первичной инициализации кластера Deckhouse (InitConfiguration). # Используемая версия API Deckhouse. apiVersion: deckhouse.io/v1 # Тип секции конфигурации. kind: InitConfiguration # Секция с параметрами Deckhouse. deckhouse: # Адрес Docker registry с образами Deckhouse. imagesRepo: registry.deckhouse.io/deckhouse/ee # Строка с ключом для доступа к Docker registry (сгенерировано автоматически для вашего токена доступа). registryDockerCfg: <YOUR_ACCESS_STRING_IS_HERE> # Используемый канал обновлений. releaseChannel: Stable # При установке Deckhouse в существующий кластер используется вариант поставки — Minimal. bundle: Minimal configOverrides: global: modules: # Шаблон для создания Ingress-ресурсов модулей Deckhouse. # Например, Grafana для %s.example.com будет доступна на домене grafana.example.com. # В качестве рабочего примера используется сервис nip.io. publicDomainTemplate: "%s-127-0-0-1.nip.io" https: mode: Disabled # Включение группы модулей, необходимых для работы мониторинга. operatorPrometheusCrdEnabled: true operatorPrometheusEnabled: true prometheusCrdEnabled: true prometheusEnabled: true # В настройках модуля prometheus отключаем запуск longterm Prometheus — для тестирования Deckhouse он избыточен. # Подробнее о longterm Prometheus — https://deckhouse.io/ru/documentation/v1/modules/300-prometheus/ prometheus: longtermRetentionDays: 0 # Включаем модуль мониторинга control plane кластера. monitoringKubernetesControlPlaneEnabled: true # Включаем модуль установки Ingress-контроллера. ingressNginxEnabled: true

Для установки Deckhouse Platform используется Docker-образ, в который необходимо передать конфигурационные файлы и SSH-ключи доступа на master-узлы.

Запустите установщик на персональном компьютере.

Linux / macOS Windows

docker run --pull=always  --network host -it -v "$PWD/config.yml:/config.yml" -v "$HOME/.ssh/:/tmp/.ssh/" \
  -v "$HOME/.kube/config:/kubeconfig" registry.deckhouse.io/deckhouse/ce/install:stable bash
docker run --pull=always --network host -it -v "$PWD/config.yml:/config.yml" -v "$HOME/.ssh/:/tmp/.ssh/" \ -v "$HOME/.kube/config:/kubeconfig" registry.deckhouse.io/deckhouse/ce/install:stable bash
docker run --pull=always  --network host -it -v "%cd%\config.yml:/config.yml" -v "%userprofile%\.ssh\:/tmp/.ssh/" -v "%userprofile%\.kube\config:/kubeconfig"  registry.deckhouse.io/deckhouse/ce/install:stable bash -c "chmod 400 /tmp/.ssh/id_rsa; bash"
docker run --pull=always --network host -it -v "%cd%\config.yml:/config.yml" -v "%userprofile%\.ssh\:/tmp/.ssh/" -v "%userprofile%\.kube\config:/kubeconfig" registry.deckhouse.io/deckhouse/ce/install:stable bash -c "chmod 400 /tmp/.ssh/id_rsa; bash"

Примечание:

  • В файл /kubeconfig контейнера необходимо смонтировать файл конфигурации kubectl с доступом к Kubernetes API. В руководстве предполагается, что он находится в файле .kube/config домашнего каталога пользователя.

Внутри контейнера выполните команду:

dhctl bootstrap-phase install-deckhouse --kubeconfig=/kubeconfig --config=/config.yml
dhctl bootstrap-phase install-deckhouse --kubeconfig=/kubeconfig --config=/config.yml

По окончании установки произойдёт возврат к командной строке.

Осталось создать конфигурацию Ingress-контроллера. Для этого создайте файл ingress-nginx-controller.yml следующего содержания:

# Секция, описывающая параметры nginx ingress controller.
# Используемая версия API Deckhouse.
apiVersion: deckhouse.io/v1
kind: IngressNginxController
metadata:
  name: nginx
spec:
  # Имя Ingress-класса для обслуживания Ingress NGINX controller.
  # версия Ingress-контроллера (используйте версию 1.1 с Kubernetes 1.23+)
  controllerVersion: "1.1"
  ingressClass: nginx
  # Способ поступления трафика из внешнего мира.
  inlet: HostPort
  hostPort:
    httpPort: 80
    httpsPort: 443
# Секция, описывающая параметры nginx ingress controller. # Используемая версия API Deckhouse. apiVersion: deckhouse.io/v1 kind: IngressNginxController metadata: name: nginx spec: # Имя Ingress-класса для обслуживания Ingress NGINX controller. # версия Ingress-контроллера (используйте версию 1.1 с Kubernetes 1.23+) controllerVersion: "1.1" ingressClass: nginx # Способ поступления трафика из внешнего мира. inlet: HostPort hostPort: httpPort: 80 httpsPort: 443

Примените его, выполнив следующую команду:

kubectl create -f ingress-nginx-controller.yml
kubectl create -f ingress-nginx-controller.yml

Запуск Ingress-контроллера может занять около минуты.

Чтобы проверить статус работы Pod’а Ingress-контроллера, выполните следующую команду:

kubectl -n d8-ingress-nginx get po
kubectl -n d8-ingress-nginx get po

Дождитесь перехода Pod’а Ingress-контроллера в статус Ready.

Вы установили Deckhouse Platform в kind!

Для установки Deckhouse Platform используется Docker-образ, в который необходимо передать конфигурационные файлы и SSH-ключи доступа на master-узлы.

Запустите установщик на персональном компьютере.

Linux / macOS Windows

 echo <LICENSE_TOKEN> | docker login -u license-token --password-stdin registry.deckhouse.io
docker run --pull=always  --network host -it -v "$PWD/config.yml:/config.yml" -v "$HOME/.ssh/:/tmp/.ssh/" \
  -v "$HOME/.kube/config:/kubeconfig" registry.deckhouse.io/deckhouse/ee/install:stable bash
echo <LICENSE_TOKEN> | docker login -u license-token --password-stdin registry.deckhouse.io docker run --pull=always --network host -it -v "$PWD/config.yml:/config.yml" -v "$HOME/.ssh/:/tmp/.ssh/" \ -v "$HOME/.kube/config:/kubeconfig" registry.deckhouse.io/deckhouse/ee/install:stable bash

Авторизуйтесь на персональном компьютере в container image registry, введя лицензионный ключ на запрос пароля:

docker login -u license-token registry.deckhouse.io
docker login -u license-token registry.deckhouse.io

Запустите контейнер с установщиком:

docker run --pull=always  --network host -it -v "%cd%\config.yml:/config.yml" -v "%userprofile%\.ssh\:/tmp/.ssh/" -v "%userprofile%\.kube\config:/kubeconfig" registry.deckhouse.io/deckhouse/ee/install:stable bash -c "chmod 400 /tmp/.ssh/id_rsa; bash"
docker run --pull=always --network host -it -v "%cd%\config.yml:/config.yml" -v "%userprofile%\.ssh\:/tmp/.ssh/" -v "%userprofile%\.kube\config:/kubeconfig" registry.deckhouse.io/deckhouse/ee/install:stable bash -c "chmod 400 /tmp/.ssh/id_rsa; bash"

Примечание:

  • В файл /kubeconfig контейнера необходимо смонтировать файл конфигурации kubectl с доступом к Kubernetes API. В руководстве предполагается, что он находится в файле .kube/config домашнего каталога пользователя.

Внутри контейнера выполните команду:

dhctl bootstrap-phase install-deckhouse --kubeconfig=/kubeconfig --config=/config.yml
dhctl bootstrap-phase install-deckhouse --kubeconfig=/kubeconfig --config=/config.yml

По окончании установки произойдёт возврат к командной строке.

Осталось создать конфигурацию Ingress-контроллера. Для этого создайте файл ingress-nginx-controller.yml следующего содержания:

# Секция, описывающая параметры nginx ingress controller.
# Используемая версия API Deckhouse.
apiVersion: deckhouse.io/v1
kind: IngressNginxController
metadata:
  name: nginx
spec:
  # Имя Ingress-класса для обслуживания Ingress NGINX controller.
  # версия Ingress-контроллера (используйте версию 1.1 с Kubernetes 1.23+)
  controllerVersion: "1.1"
  ingressClass: nginx
  # Способ поступления трафика из внешнего мира.
  inlet: HostPort
  hostPort:
    httpPort: 80
    httpsPort: 443
# Секция, описывающая параметры nginx ingress controller. # Используемая версия API Deckhouse. apiVersion: deckhouse.io/v1 kind: IngressNginxController metadata: name: nginx spec: # Имя Ingress-класса для обслуживания Ingress NGINX controller. # версия Ingress-контроллера (используйте версию 1.1 с Kubernetes 1.23+) controllerVersion: "1.1" ingressClass: nginx # Способ поступления трафика из внешнего мира. inlet: HostPort hostPort: httpPort: 80 httpsPort: 443

Примените его, выполнив следующую команду:

kubectl create -f ingress-nginx-controller.yml
kubectl create -f ingress-nginx-controller.yml

Запуск Ingress-контроллера может занять около минуты.

Чтобы проверить статус работы Pod’а Ingress-контроллера, выполните следующую команду:

kubectl -n d8-ingress-nginx get po
kubectl -n d8-ingress-nginx get po

Дождитесь перехода Pod’а Ingress-контроллера в статус Ready.

Вы установили Deckhouse Platform в kind!