Deckhouse Platform на bare metal

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

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

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

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

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

Создайте файл config.yml.

# секция с общими параметрами кластера (ClusterConfiguration)
# используемая версия API Deckhouse Platform
apiVersion: deckhouse.io/v1
# тип секции конфигурации
kind: ClusterConfiguration
# тип инфраструктуры: bare metal (Static) или облако (Cloud)
clusterType: Static
# адресное пространство Pod’ов кластера
podSubnetCIDR: 10.111.0.0/16
# адресное пространство для service’ов кластера
serviceSubnetCIDR: 10.222.0.0/16
# устанавливаемая версия Kubernetes
kubernetesVersion: "1.23"
# домен кластера
clusterDomain: "cluster.local"
---
# секция первичной инициализации кластера Deckhouse (InitConfiguration)
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
# тип секции конфигурации
kind: InitConfiguration
# секция с параметрами Deckhouse
deckhouse:
  # используемый канал обновлений
  releaseChannel: Stable
  configOverrides:
    global:
      modules:
        # шаблон, который будет использоваться для составления адресов системных приложений в кластере
        # например, Grafana для %s.example.com будет доступна на домене grafana.example.com
        publicDomainTemplate: "%s.example.com"
    # включить модуль cni-flannel
    cniFlannelEnabled: true
    # настройки модуля cni-flannel
    cniFlannel:
      # режим работы flannel, допустимые значения VXLAN (если ваши сервера имеют связность L3) или HostGW (для L2-сетей)
      # возможно, захотите изменить
      podNetworkMode: VXLAN
---
# секция с параметрами bare metal кластера (StaticClusterConfiguration)
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
# тип секции конфигурации
kind: StaticClusterConfiguration
# список внутренних сетей узлов кластера (например, '10.0.4.0/24'), который
# используется для связи компонентов Kubernetes (kube-apiserver, kubelet...) между собой
# Если каждый узел в кластере имеет только один сетевой интерфейс,
# ресурс StaticClusterConfiguration можно не создавать.
internalNetworkCIDRs:
- *!CHANGE_internalNetworkCIDRs*
# секция с общими параметрами кластера (ClusterConfiguration) # используемая версия API Deckhouse Platform apiVersion: deckhouse.io/v1 # тип секции конфигурации kind: ClusterConfiguration # тип инфраструктуры: bare metal (Static) или облако (Cloud) clusterType: Static # адресное пространство Pod’ов кластера podSubnetCIDR: 10.111.0.0/16 # адресное пространство для service’ов кластера serviceSubnetCIDR: 10.222.0.0/16 # устанавливаемая версия Kubernetes kubernetesVersion: "1.23" # домен кластера clusterDomain: "cluster.local" --- # секция первичной инициализации кластера Deckhouse (InitConfiguration) # используемая версия API Deckhouse apiVersion: deckhouse.io/v1 # тип секции конфигурации kind: InitConfiguration # секция с параметрами Deckhouse deckhouse: # используемый канал обновлений releaseChannel: Stable configOverrides: global: modules: # шаблон, который будет использоваться для составления адресов системных приложений в кластере # например, Grafana для %s.example.com будет доступна на домене grafana.example.com publicDomainTemplate: "%s.example.com" # включить модуль cni-flannel cniFlannelEnabled: true # настройки модуля cni-flannel cniFlannel: # режим работы flannel, допустимые значения VXLAN (если ваши сервера имеют связность L3) или HostGW (для L2-сетей) # возможно, захотите изменить podNetworkMode: VXLAN --- # секция с параметрами bare metal кластера (StaticClusterConfiguration) # используемая версия API Deckhouse apiVersion: deckhouse.io/v1 # тип секции конфигурации kind: StaticClusterConfiguration # список внутренних сетей узлов кластера (например, '10.0.4.0/24'), который # используется для связи компонентов Kubernetes (kube-apiserver, kubelet...) между собой # Если каждый узел в кластере имеет только один сетевой интерфейс, # ресурс StaticClusterConfiguration можно не создавать. internalNetworkCIDRs: - *!CHANGE_internalNetworkCIDRs*

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

Ввести

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

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

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

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

Создайте файл config.yml.

# секция с общими параметрами кластера (ClusterConfiguration)
# используемая версия API Deckhouse Platform
apiVersion: deckhouse.io/v1
# тип секции конфигурации
kind: ClusterConfiguration
# тип инфраструктуры: bare metal (Static) или облако (Cloud)
clusterType: Static
# адресное пространство Pod’ов кластера
podSubnetCIDR: 10.111.0.0/16
# адресное пространство для service’ов кластера
serviceSubnetCIDR: 10.222.0.0/16
# устанавливаемая версия Kubernetes
kubernetesVersion: "1.23"
# домен кластера
clusterDomain: "cluster.local"
---
# секция первичной инициализации кластера 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
  configOverrides:
    global:
      modules:
        # шаблон, который будет использоваться для составления адресов системных приложений в кластере
        # например, Grafana для %s.example.com будет доступна на домене grafana.example.com
        publicDomainTemplate: "%s.example.com"
    # включить модуль cni-flannel
    cniFlannelEnabled: true
    # настройки модуля cni-flannel
    cniFlannel:
      # режим работы flannel, допустимые значения VXLAN (если ваши сервера имеют связность L3) или HostGW (для L2-сетей)
      # возможно, захотите изменить
      podNetworkMode: VXLAN
---
# секция с параметрами bare metal-кластера (StaticClusterConfiguration)
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
# тип секции конфигурации
kind: StaticClusterConfiguration
# список внутренних сетей узлов кластера (например, '10.0.4.0/24'), который
# используется для связи компонентов Kubernetes (kube-apiserver, kubelet...) между собой
# Если каждый узел в кластере имеет только один сетевой интерфейс,
# ресурс StaticClusterConfiguration можно не создавать.
internalNetworkCIDRs:
- *!CHANGE_internalNetworkCIDRs*
# секция с общими параметрами кластера (ClusterConfiguration) # используемая версия API Deckhouse Platform apiVersion: deckhouse.io/v1 # тип секции конфигурации kind: ClusterConfiguration # тип инфраструктуры: bare metal (Static) или облако (Cloud) clusterType: Static # адресное пространство Pod’ов кластера podSubnetCIDR: 10.111.0.0/16 # адресное пространство для service’ов кластера serviceSubnetCIDR: 10.222.0.0/16 # устанавливаемая версия Kubernetes kubernetesVersion: "1.23" # домен кластера clusterDomain: "cluster.local" --- # секция первичной инициализации кластера 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 configOverrides: global: modules: # шаблон, который будет использоваться для составления адресов системных приложений в кластере # например, Grafana для %s.example.com будет доступна на домене grafana.example.com publicDomainTemplate: "%s.example.com" # включить модуль cni-flannel cniFlannelEnabled: true # настройки модуля cni-flannel cniFlannel: # режим работы flannel, допустимые значения VXLAN (если ваши сервера имеют связность L3) или HostGW (для L2-сетей) # возможно, захотите изменить podNetworkMode: VXLAN --- # секция с параметрами bare metal-кластера (StaticClusterConfiguration) # используемая версия API Deckhouse apiVersion: deckhouse.io/v1 # тип секции конфигурации kind: StaticClusterConfiguration # список внутренних сетей узлов кластера (например, '10.0.4.0/24'), который # используется для связи компонентов Kubernetes (kube-apiserver, kubelet...) между собой # Если каждый узел в кластере имеет только один сетевой интерфейс, # ресурс StaticClusterConfiguration можно не создавать. internalNetworkCIDRs: - *!CHANGE_internalNetworkCIDRs*

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

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

Linux / macOS Windows

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

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

dhctl bootstrap --ssh-user=<username> --ssh-host=<master_ip> --ssh-agent-private-keys=/tmp/.ssh/id_rsa \
  --config=/config.yml \
  --ask-become-pass
dhctl bootstrap --ssh-user=<username> --ssh-host=<master_ip> --ssh-agent-private-keys=/tmp/.ssh/id_rsa \ --config=/config.yml \ --ask-become-pass

В параметре --ssh-user укажите имя пользователя, от которого генерировался SSH-ключ для установки. Если для запуска sudo на сервере необходим пароль, то укажите его в ответ на запрос [sudo] Password:.

Процесс установки может занять 15-30 минут при хорошем соединении.

По окончании установки инсталлятор выведет IP-адрес master-узла (он вам потребуется далее). Пример вывода:

...
┌ 🎈 ~ Common: Kubernetes Master Node addresses for SSH
│ cloud-demo-master-0 | ssh ubuntu@1.2.3.4
└ 🎈 ~ Common: Kubernetes Master Node addresses for SSH (0.00 seconds)

Почти все готово для полноценной работы Deckhouse Platform!

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

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

Linux / macOS Windows

 echo <LICENSE_TOKEN> | docker login -u license-token --password-stdin registry.deckhouse.io
docker run --pull=always -it -v "$PWD/config.yml:/config.yml" -v "$HOME/.ssh/:/tmp/.ssh/" 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 -it -v "$PWD/config.yml:/config.yml" -v "$HOME/.ssh/:/tmp/.ssh/" 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 -it -v "%cd%\config.yml:/config.yml" -v "%userprofile%\.ssh\:/tmp/.ssh/" registry.deckhouse.io/deckhouse/ee/install:stable bash -c "chmod 400 /tmp/.ssh/id_rsa; bash"
docker run --pull=always -it -v "%cd%\config.yml:/config.yml" -v "%userprofile%\.ssh\:/tmp/.ssh/" registry.deckhouse.io/deckhouse/ee/install:stable bash -c "chmod 400 /tmp/.ssh/id_rsa; bash"

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

dhctl bootstrap --ssh-user=<username> --ssh-host=<master_ip> --ssh-agent-private-keys=/tmp/.ssh/id_rsa \
  --config=/config.yml \
  --ask-become-pass
dhctl bootstrap --ssh-user=<username> --ssh-host=<master_ip> --ssh-agent-private-keys=/tmp/.ssh/id_rsa \ --config=/config.yml \ --ask-become-pass

В параметре --ssh-user укажите имя пользователя, от которого генерировался SSH-ключ для установки. Если для запуска sudo на сервере необходим пароль, то укажите его в ответ на запрос [sudo] Password:.

Процесс установки может занять 15-30 минут при хорошем соединении.

По окончании установки инсталлятор выведет IP-адрес master-узла (он вам потребуется далее). Пример вывода:

...
┌ 🎈 ~ Common: Kubernetes Master Node addresses for SSH
│ cloud-demo-master-0 | ssh ubuntu@1.2.3.4
└ 🎈 ~ Common: Kubernetes Master Node addresses for SSH (0.00 seconds)

Почти все готово для полноценной работы Deckhouse Platform!