Deckhouse Platform в Яндекс.Облаке

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

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

  • config.yml — файл первичной конфигурации кластера. Содержит параметры инсталлятора, параметры доступа облачного проавайдера и начальные параметры кластера.
  • resources.yml — описание ресурсов для создания после установки (настройки узлов и Ingress-контроллера).

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

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

Полное описание параметров конфигурации cloud-провайдеров вы можете найти в документации.

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

# секция с общими параметрами кластера (ClusterConfiguration)
# используемая версия API Deckhouse Platform
apiVersion: deckhouse.io/v1
# тип секции конфигурации
kind: ClusterConfiguration
# тип инфраструктуры: bare metal (Static) или облако (Cloud)
clusterType: Cloud
# параметры облачного провайдера
cloud:
  # используемый облачный провайдер
  provider: Yandex
  # префикс для объектов кластера для их отличия (используется, например, при маршрутизации)
  prefix: "cloud-demo"
# адресное пространство 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"
---
# секция, описывающая параметры облачного провайдера
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
# тип секции конфигурации
kind: YandexClusterConfiguration
# layout — предопределённая архитектура расположения ресурсов в облаке
layout: <layout>
# параметры доступа к облаку Yandex
provider:
  # ID облака
  cloudID: *!CHANGE_CloudID*
  # ID каталога
  folderID: *!CHANGE_FolderID*
  # JSON-ключ, сгенерированный с помощью `yc iam key create` на предыдущем шаге
  # Пример заполнения serviceAccountJSON:
  # serviceAccountJSON: |
  #    {
  #      "id": "...",
  #      "service_account_id": "...",
  #      "created_at": "2022-08-04T05:38:34.756137618Z",
  #      "key_algorithm": "RSA_2048",
  #      "public_key": "-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----\n",
  #      "private_key": "-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----\n"
  #    }
  serviceAccountJSON: *!CHANGE_ServiceAccountJSON*
masterNodeGroup:
  # количество реплик мастера
  # если будет больше одного master-узла, то control-plane на всех master-узлах будет развернут автоматическии
  replicas: 1
  # параметры инстанса
  instanceClass:
    # количество ядер CPU
    cores: 4
    # RAM в МБ
    memory: 8192
    # ID образа в Яндекс.Клауде; рекомендуется использовать актуальную сборку Ubuntu 20.04 LTS;
    # Для её получения можете воспользоваться однострочником:
    # yc compute image list --folder-id standard-images --format json | jq -r '[.[] | select(.family == "ubuntu-2004-lts")] | sort_by(.created_at)[-1].id'
    # возможно, захотите изменить
    imageID: fd8firhksp7daa6msfes
    # список IP, которые будут выданы мастерам; Auto — выбрать автоматически
    externalIPAddresses:
    - "Auto"
# данная подсеть будет разделена на три равных части и использована для создания подсетей в трёх зонах Yandex.Cloud
nodeNetworkCIDR: "10.241.32.0/20"
# публичная часть SSH-ключа для доступа к узлам облака
sshPublicKey: <SSH_PUBLIC_KEY>
# секция с общими параметрами кластера (ClusterConfiguration) # используемая версия API Deckhouse Platform apiVersion: deckhouse.io/v1 # тип секции конфигурации kind: ClusterConfiguration # тип инфраструктуры: bare metal (Static) или облако (Cloud) clusterType: Cloud # параметры облачного провайдера cloud: # используемый облачный провайдер provider: Yandex # префикс для объектов кластера для их отличия (используется, например, при маршрутизации) prefix: "cloud-demo" # адресное пространство 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" --- # секция, описывающая параметры облачного провайдера # используемая версия API Deckhouse apiVersion: deckhouse.io/v1 # тип секции конфигурации kind: YandexClusterConfiguration # layout — предопределённая архитектура расположения ресурсов в облаке layout: <layout> # параметры доступа к облаку Yandex provider: # ID облака cloudID: *!CHANGE_CloudID* # ID каталога folderID: *!CHANGE_FolderID* # JSON-ключ, сгенерированный с помощью `yc iam key create` на предыдущем шаге # Пример заполнения serviceAccountJSON: # serviceAccountJSON: | # { # "id": "...", # "service_account_id": "...", # "created_at": "2022-08-04T05:38:34.756137618Z", # "key_algorithm": "RSA_2048", # "public_key": "-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----\n", # "private_key": "-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----\n" # } serviceAccountJSON: *!CHANGE_ServiceAccountJSON* masterNodeGroup: # количество реплик мастера # если будет больше одного master-узла, то control-plane на всех master-узлах будет развернут автоматическии replicas: 1 # параметры инстанса instanceClass: # количество ядер CPU cores: 4 # RAM в МБ memory: 8192 # ID образа в Яндекс.Клауде; рекомендуется использовать актуальную сборку Ubuntu 20.04 LTS; # Для её получения можете воспользоваться однострочником: # yc compute image list --folder-id standard-images --format json | jq -r '[.[] | select(.family == "ubuntu-2004-lts")] | sort_by(.created_at)[-1].id' # возможно, захотите изменить imageID: fd8firhksp7daa6msfes # список IP, которые будут выданы мастерам; Auto — выбрать автоматически externalIPAddresses: - "Auto" # данная подсеть будет разделена на три равных части и использована для создания подсетей в трёх зонах Yandex.Cloud nodeNetworkCIDR: "10.241.32.0/20" # публичная часть SSH-ключа для доступа к узлам облака sshPublicKey: <SSH_PUBLIC_KEY>

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

  • config.yml — файл первичной конфигурации кластера. Содержит параметры инсталлятора, параметры доступа облачного проавайдера и начальные параметры кластера.
  • resources.yml — описание ресурсов для создания после установки (настройки узлов и Ingress-контроллера).

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

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

Полное описание параметров конфигурации cloud-провайдеров вы можете найти в документации.

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

# секция с общими параметрами кластера (ClusterConfiguration)
# используемая версия API Deckhouse Platform
apiVersion: deckhouse.io/v1
# тип секции конфигурации
kind: ClusterConfiguration
# тип инфраструктуры: bare metal (Static) или облако (Cloud)
clusterType: Cloud
# параметры облачного провайдера
cloud:
  # используемый облачный провайдер
  provider: Yandex
  # префикс для объектов кластера для их отличия (используется, например, при маршрутизации)
  prefix: "cloud-demo"
# адресное пространство 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"
---
# секция, описывающая параметры облачного провайдера
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
# тип секции конфигурации
kind: YandexClusterConfiguration
# layout — предопределённая архитектура расположения ресурсов в облаке
layout: <layout>
# специальные параметры для layout'а WithNATInstance
withNATInstance: {}
# параметры доступа к облаку Yandex
provider:
  # ID облака
  cloudID: *!CHANGE_CloudID*
  # ID каталога
  folderID: *!CHANGE_FolderID*
  # JSON-ключ, сгенерированный с помощью `yc iam key create` на предыдущем шаге
  # Пример заполнения serviceAccountJSON:
  # serviceAccountJSON: |
  #    {
  #      "id": "...",
  #      "service_account_id": "...",
  #      "created_at": "2022-08-04T05:38:34.756137618Z",
  #      "key_algorithm": "RSA_2048",
  #      "public_key": "-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----\n",
  #      "private_key": "-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----\n"
  #    }
  serviceAccountJSON: *!CHANGE_ServiceAccountJSON*
masterNodeGroup:
  # количество реплик мастера
  # если будет больше одного master-узла, то control-plane на всех master-узлах будет развернут автоматическии
  replicas: 1
  # параметры инстанса
  instanceClass:
    # количество ядер CPU
    cores: 4
    # RAM в МБ
    memory: 8192
    # ID образа в Яндекс.Клауде; рекомендуется использовать актуальную сборку Ubuntu 20.04 LTS;
    # Для её получения можете воспользоваться однострочником:
    # yc compute image list --folder-id standard-images --format json | jq -r '[.[] | select(.family == "ubuntu-2004-lts")] | sort_by(.created_at)[-1].id'
    # возможно, захотите изменить
    imageID: fd8firhksp7daa6msfes
    externalIPAddresses:
    - "Auto"
# данная подсеть будет разделена на три равных части и использована для создания подсетей в трёх зонах Yandex.Cloud
nodeNetworkCIDR: "10.241.32.0/20"
# публичная часть SSH-ключа для доступа к узлам облака
sshPublicKey: <SSH_PUBLIC_KEY>
# секция с общими параметрами кластера (ClusterConfiguration) # используемая версия API Deckhouse Platform apiVersion: deckhouse.io/v1 # тип секции конфигурации kind: ClusterConfiguration # тип инфраструктуры: bare metal (Static) или облако (Cloud) clusterType: Cloud # параметры облачного провайдера cloud: # используемый облачный провайдер provider: Yandex # префикс для объектов кластера для их отличия (используется, например, при маршрутизации) prefix: "cloud-demo" # адресное пространство 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" --- # секция, описывающая параметры облачного провайдера # используемая версия API Deckhouse apiVersion: deckhouse.io/v1 # тип секции конфигурации kind: YandexClusterConfiguration # layout — предопределённая архитектура расположения ресурсов в облаке layout: <layout> # специальные параметры для layout'а WithNATInstance withNATInstance: {} # параметры доступа к облаку Yandex provider: # ID облака cloudID: *!CHANGE_CloudID* # ID каталога folderID: *!CHANGE_FolderID* # JSON-ключ, сгенерированный с помощью `yc iam key create` на предыдущем шаге # Пример заполнения serviceAccountJSON: # serviceAccountJSON: | # { # "id": "...", # "service_account_id": "...", # "created_at": "2022-08-04T05:38:34.756137618Z", # "key_algorithm": "RSA_2048", # "public_key": "-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----\n", # "private_key": "-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----\n" # } serviceAccountJSON: *!CHANGE_ServiceAccountJSON* masterNodeGroup: # количество реплик мастера # если будет больше одного master-узла, то control-plane на всех master-узлах будет развернут автоматическии replicas: 1 # параметры инстанса instanceClass: # количество ядер CPU cores: 4 # RAM в МБ memory: 8192 # ID образа в Яндекс.Клауде; рекомендуется использовать актуальную сборку Ubuntu 20.04 LTS; # Для её получения можете воспользоваться однострочником: # yc compute image list --folder-id standard-images --format json | jq -r '[.[] | select(.family == "ubuntu-2004-lts")] | sort_by(.created_at)[-1].id' # возможно, захотите изменить imageID: fd8firhksp7daa6msfes externalIPAddresses: - "Auto" # данная подсеть будет разделена на три равных части и использована для создания подсетей в трёх зонах Yandex.Cloud nodeNetworkCIDR: "10.241.32.0/20" # публичная часть SSH-ключа для доступа к узлам облака sshPublicKey: <SSH_PUBLIC_KEY>

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

Ввести

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

  • config.yml — файл первичной конфигурации кластера. Содержит параметры инсталлятора, параметры доступа облачного проавайдера и начальные параметры кластера.
  • resources.yml — описание ресурсов для создания после установки (настройки узлов и Ingress-контроллера).

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

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

Полное описание параметров конфигурации cloud-провайдеров вы можете найти в документации.

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

# секция с общими параметрами кластера (ClusterConfiguration)
# используемая версия API Deckhouse Platform
apiVersion: deckhouse.io/v1
# тип секции конфигурации
kind: ClusterConfiguration
# тип инфраструктуры: bare metal (Static) или облако (Cloud)
clusterType: Cloud
# параметры облачного провайдера
cloud:
  # используемый облачный провайдер
  provider: Yandex
  # префикс для объектов кластера для их отличия (используется, например, при маршрутизации)
  prefix: "cloud-demo"
# адресное пространство 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"
---
# секция, описывающая параметры облачного провайдера
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
# тип секции конфигурации
kind: YandexClusterConfiguration
# layout — предопределённая архитектура расположения ресурсов в облаке
layout: <layout>
# параметры доступа к облаку Yandex
provider:
  # ID облака
  cloudID: *!CHANGE_CloudID*
  # ID каталога
  folderID: *!CHANGE_FolderID*
  # JSON-ключ, сгенерированный с помощью `yc iam key create` на предыдущем шаге
  # Пример заполнения serviceAccountJSON:
  # serviceAccountJSON: |
  #   {
  #      "id": "...",
  #      "service_account_id": "...",
  #      "created_at": "2022-08-04T05:38:34.756137618Z",
  #      "key_algorithm": "RSA_2048",
  #      "public_key": "-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----\n",
  #      "private_key": "-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----\n"
  #   }
  serviceAccountJSON: *!CHANGE_ServiceAccountJSON*
masterNodeGroup:
  # количество реплик мастера
  # если будет больше одного master-узла, то control-plane на всех master-узлах будет развернут автоматическии
  replicas: 1
  # параметры инстанса
  instanceClass:
    # количество ядер CPU
    cores: 4
    # RAM в МБ
    memory: 8192
    # ID образа в Яндекс.Клауде; рекомендуется использовать актуальную сборку Ubuntu 20.04 LTS;
    # Для её получения можете воспользоваться однострочником:
    # yc compute image list --folder-id standard-images --format json | jq -r '[.[] | select(.family == "ubuntu-2004-lts")] | sort_by(.created_at)[-1].id'
    # возможно, захотите изменить
    imageID: fd8firhksp7daa6msfes
    # список IP, которые будут выданы мастерам; Auto — выбрать автоматически
    externalIPAddresses:
    - "Auto"
# данная подсеть будет разделена на три равных части и использована для создания подсетей в трёх зонах Yandex.Cloud
nodeNetworkCIDR: "10.241.32.0/20"
# публичная часть SSH-ключа для доступа к узлам облака
sshPublicKey: <SSH_PUBLIC_KEY>
# секция с общими параметрами кластера (ClusterConfiguration) # используемая версия API Deckhouse Platform apiVersion: deckhouse.io/v1 # тип секции конфигурации kind: ClusterConfiguration # тип инфраструктуры: bare metal (Static) или облако (Cloud) clusterType: Cloud # параметры облачного провайдера cloud: # используемый облачный провайдер provider: Yandex # префикс для объектов кластера для их отличия (используется, например, при маршрутизации) prefix: "cloud-demo" # адресное пространство 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" --- # секция, описывающая параметры облачного провайдера # используемая версия API Deckhouse apiVersion: deckhouse.io/v1 # тип секции конфигурации kind: YandexClusterConfiguration # layout — предопределённая архитектура расположения ресурсов в облаке layout: <layout> # параметры доступа к облаку Yandex provider: # ID облака cloudID: *!CHANGE_CloudID* # ID каталога folderID: *!CHANGE_FolderID* # JSON-ключ, сгенерированный с помощью `yc iam key create` на предыдущем шаге # Пример заполнения serviceAccountJSON: # serviceAccountJSON: | # { # "id": "...", # "service_account_id": "...", # "created_at": "2022-08-04T05:38:34.756137618Z", # "key_algorithm": "RSA_2048", # "public_key": "-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----\n", # "private_key": "-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----\n" # } serviceAccountJSON: *!CHANGE_ServiceAccountJSON* masterNodeGroup: # количество реплик мастера # если будет больше одного master-узла, то control-plane на всех master-узлах будет развернут автоматическии replicas: 1 # параметры инстанса instanceClass: # количество ядер CPU cores: 4 # RAM в МБ memory: 8192 # ID образа в Яндекс.Клауде; рекомендуется использовать актуальную сборку Ubuntu 20.04 LTS; # Для её получения можете воспользоваться однострочником: # yc compute image list --folder-id standard-images --format json | jq -r '[.[] | select(.family == "ubuntu-2004-lts")] | sort_by(.created_at)[-1].id' # возможно, захотите изменить imageID: fd8firhksp7daa6msfes # список IP, которые будут выданы мастерам; Auto — выбрать автоматически externalIPAddresses: - "Auto" # данная подсеть будет разделена на три равных части и использована для создания подсетей в трёх зонах Yandex.Cloud nodeNetworkCIDR: "10.241.32.0/20" # публичная часть SSH-ключа для доступа к узлам облака sshPublicKey: <SSH_PUBLIC_KEY>

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

Ввести

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

  • config.yml — файл первичной конфигурации кластера. Содержит параметры инсталлятора, параметры доступа облачного проавайдера и начальные параметры кластера.
  • resources.yml — описание ресурсов для создания после установки (настройки узлов и Ingress-контроллера).

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

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

Полное описание параметров конфигурации cloud-провайдеров вы можете найти в документации.

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

# секция с общими параметрами кластера (ClusterConfiguration)
# используемая версия API Deckhouse Platform
apiVersion: deckhouse.io/v1
# тип секции конфигурации
kind: ClusterConfiguration
# тип инфраструктуры: bare metal (Static) или облако (Cloud)
clusterType: Cloud
# параметры облачного провайдера
cloud:
  # используемый облачный провайдер
  provider: Yandex
  # префикс для объектов кластера для их отличия (используется, например, при маршрутизации)
  prefix: "cloud-demo"
# адресное пространство 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"
---
# секция, описывающая параметры облачного провайдера
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
# тип секции конфигурации
kind: YandexClusterConfiguration
# layout — предопределённая архитектура расположения ресурсов в облаке
layout: <layout>
# специальные параметры для layout'а WithNATInstance
withNATInstance: {}
# параметры доступа к облаку Yandex
provider:
  # ID облака
  cloudID: *!CHANGE_CloudID*
  # ID каталога
  folderID: *!CHANGE_FolderID*
  # JSON-ключ, сгенерированный с помощью `yc iam key create` на предыдущем шаге
  # Пример заполнения serviceAccountJSON:
  # serviceAccountJSON: |
  #    {
  #      "id": "...",
  #      "service_account_id": "...",
  #      "created_at": "2022-08-04T05:38:34.756137618Z",
  #      "key_algorithm": "RSA_2048",
  #      "public_key": "-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----\n",
  #      "private_key": "-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----\n"
  #    }
  serviceAccountJSON: *!CHANGE_ServiceAccountJSON*
masterNodeGroup:
  # количество реплик мастера
  # если будет больше одного master-узла, то control-plane на всех master-узлах будет развернут автоматическии
  replicas: 1
  # параметры инстанса
  instanceClass:
    # количество ядер CPU
    cores: 4
    # RAM в МБ
    memory: 8192
    # ID образа в Яндекс.Клауде; рекомендуется использовать актуальную сборку Ubuntu 20.04 LTS;
    # Для её получения можете воспользоваться однострочником:
    # yc compute image list --folder-id standard-images --format json | jq -r '[.[] | select(.family == "ubuntu-2004-lts")] | sort_by(.created_at)[-1].id'
    # возможно, захотите изменить
    imageID: fd8firhksp7daa6msfes
    externalIPAddresses:
    - "Auto"
# данная подсеть будет разделена на три равных части и использована для создания подсетей в трёх зонах Yandex.Cloud
nodeNetworkCIDR: "10.241.32.0/20"
# публичная часть SSH-ключа для доступа к узлам облака
sshPublicKey: <SSH_PUBLIC_KEY>
# секция с общими параметрами кластера (ClusterConfiguration) # используемая версия API Deckhouse Platform apiVersion: deckhouse.io/v1 # тип секции конфигурации kind: ClusterConfiguration # тип инфраструктуры: bare metal (Static) или облако (Cloud) clusterType: Cloud # параметры облачного провайдера cloud: # используемый облачный провайдер provider: Yandex # префикс для объектов кластера для их отличия (используется, например, при маршрутизации) prefix: "cloud-demo" # адресное пространство 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" --- # секция, описывающая параметры облачного провайдера # используемая версия API Deckhouse apiVersion: deckhouse.io/v1 # тип секции конфигурации kind: YandexClusterConfiguration # layout — предопределённая архитектура расположения ресурсов в облаке layout: <layout> # специальные параметры для layout'а WithNATInstance withNATInstance: {} # параметры доступа к облаку Yandex provider: # ID облака cloudID: *!CHANGE_CloudID* # ID каталога folderID: *!CHANGE_FolderID* # JSON-ключ, сгенерированный с помощью `yc iam key create` на предыдущем шаге # Пример заполнения serviceAccountJSON: # serviceAccountJSON: | # { # "id": "...", # "service_account_id": "...", # "created_at": "2022-08-04T05:38:34.756137618Z", # "key_algorithm": "RSA_2048", # "public_key": "-----BEGIN PUBLIC KEY-----...-----END PUBLIC KEY-----\n", # "private_key": "-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----\n" # } serviceAccountJSON: *!CHANGE_ServiceAccountJSON* masterNodeGroup: # количество реплик мастера # если будет больше одного master-узла, то control-plane на всех master-узлах будет развернут автоматическии replicas: 1 # параметры инстанса instanceClass: # количество ядер CPU cores: 4 # RAM в МБ memory: 8192 # ID образа в Яндекс.Клауде; рекомендуется использовать актуальную сборку Ubuntu 20.04 LTS; # Для её получения можете воспользоваться однострочником: # yc compute image list --folder-id standard-images --format json | jq -r '[.[] | select(.family == "ubuntu-2004-lts")] | sort_by(.created_at)[-1].id' # возможно, захотите изменить imageID: fd8firhksp7daa6msfes externalIPAddresses: - "Auto" # данная подсеть будет разделена на три равных части и использована для создания подсетей в трёх зонах Yandex.Cloud nodeNetworkCIDR: "10.241.32.0/20" # публичная часть SSH-ключа для доступа к узлам облака sshPublicKey: <SSH_PUBLIC_KEY>

Описание ресурсов для набора узлов “Минимальный”.

apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
  name: worker
spec:
  cloudInstances:
    classReference:
      kind: YandexInstanceClass
      name: worker
    maxPerZone: 1
    minPerZone: 1
    # возможно, захотите изменить
    zones:
    - ru-central1-a
  disruptions:
    approvalMode: Automatic
  nodeTemplate:
    labels:
      node.deckhouse.io/group: worker
  nodeType: CloudEphemeral
---
apiVersion: deckhouse.io/v1
kind: YandexInstanceClass
metadata:
  name: worker
spec:
  # возможно, захотите изменить
  cores: 4
  # возможно, захотите изменить
  memory: 8192
  # возможно, захотите изменить
  diskSizeGB: 30
---
apiVersion: deckhouse.io/v1
kind: IngressNginxController
metadata:
  name: nginx
spec:
  # имя Ingress-класса для использования Ingress Nginx controller
  ingressClass: nginx
  # версия Ingress-контроллера (используйте версию 1.1 с Kubernetes 1.23+)
  controllerVersion: "1.1"
  # способ поступления трафика из внешнего мира
  inlet: LoadBalancer
  # описывает, на каких узлах будет находиться компонент. Лейбл node.deckhouse.io/group: <NODE_GROUP_NAME> устанавливается автоматически.
  nodeSelector:
    node.deckhouse.io/group: worker
---
apiVersion: deckhouse.io/v1
kind: ClusterAuthorizationRule
metadata:
  name: admin
spec:
  # список учётных записей Kubernetes RBAC
  subjects:
  - kind: User
    name: admin@example.com
  # предустановленный шаблон уровня доступа
  accessLevel: SuperAdmin
  # разрешить пользователю делать kubectl port-forward
  portForwarding: true
---
apiVersion: deckhouse.io/v1
kind: User
metadata:
  name: admin
spec:
  email: admin@example.com
  # это хэш пароля <GENERATED_PASSWORD>, сгенерированного сейчас
  # сгенерируйте свой или используйте этот, но только для тестирования
  # echo "<GENERATED_PASSWORD>" | htpasswd -BinC 10 "" | cut -d: -f2
  # возможно, захотите изменить
  password: <GENERATED_PASSWORD_HASH>
apiVersion: deckhouse.io/v1 kind: NodeGroup metadata: name: worker spec: cloudInstances: classReference: kind: YandexInstanceClass name: worker maxPerZone: 1 minPerZone: 1 # возможно, захотите изменить zones: - ru-central1-a disruptions: approvalMode: Automatic nodeTemplate: labels: node.deckhouse.io/group: worker nodeType: CloudEphemeral --- apiVersion: deckhouse.io/v1 kind: YandexInstanceClass metadata: name: worker spec: # возможно, захотите изменить cores: 4 # возможно, захотите изменить memory: 8192 # возможно, захотите изменить diskSizeGB: 30 --- apiVersion: deckhouse.io/v1 kind: IngressNginxController metadata: name: nginx spec: # имя Ingress-класса для использования Ingress Nginx controller ingressClass: nginx # версия Ingress-контроллера (используйте версию 1.1 с Kubernetes 1.23+) controllerVersion: "1.1" # способ поступления трафика из внешнего мира inlet: LoadBalancer # описывает, на каких узлах будет находиться компонент. Лейбл node.deckhouse.io/group: <NODE_GROUP_NAME> устанавливается автоматически. nodeSelector: node.deckhouse.io/group: worker --- apiVersion: deckhouse.io/v1 kind: ClusterAuthorizationRule metadata: name: admin spec: # список учётных записей Kubernetes RBAC subjects: - kind: User name: admin@example.com # предустановленный шаблон уровня доступа accessLevel: SuperAdmin # разрешить пользователю делать kubectl port-forward portForwarding: true --- apiVersion: deckhouse.io/v1 kind: User metadata: name: admin spec: email: admin@example.com # это хэш пароля <GENERATED_PASSWORD>, сгенерированного сейчас # сгенерируйте свой или используйте этот, но только для тестирования # echo "<GENERATED_PASSWORD>" | htpasswd -BinC 10 "" | cut -d: -f2 # возможно, захотите изменить password: <GENERATED_PASSWORD_HASH>

Описание ресурсов для набора узлов “Мультимастер”.

apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
  name: worker
spec:
  cloudInstances:
    classReference:
      kind: YandexInstanceClass
      name: worker
    maxPerZone: 1
    minPerZone: 1
    # возможно, захотите изменить
    zones:
    - ru-central1-a
    - ru-central1-b
  disruptions:
    approvalMode: Automatic
  nodeType: CloudEphemeral
---
apiVersion: deckhouse.io/v1
kind: YandexInstanceClass
metadata:
  name: worker
spec:
  # возможно, захотите изменить
  cores: 4
  # возможно, захотите изменить
  memory: 8192
  # возможно, захотите изменить
  diskSizeGB: 30
---
apiVersion: deckhouse.io/v1
kind: IngressNginxController
metadata:
  name: nginx
spec:
  # имя Ingress-класса для использования Ingress Nginx controller
  ingressClass: nginx
  # версия Ingress-контроллера (используйте версию 1.1 с Kubernetes 1.23+)
  controllerVersion: "1.1"
  # способ поступления трафика из внешнего мира
  inlet: LoadBalancer
  # описывает, на каких узлах будет находиться компонент. Лейбл node.deckhouse.io/group: <NODE_GROUP_NAME> устанавливается автоматически.
  nodeSelector:
    node.deckhouse.io/group: worker
---
apiVersion: deckhouse.io/v1
kind: ClusterAuthorizationRule
metadata:
  name: admin
spec:
  # список учётных записей Kubernetes RBAC
  subjects:
  - kind: User
    name: admin@example.com
  # предустановленный шаблон уровня доступа
  accessLevel: SuperAdmin
  # разрешить пользователю делать kubectl port-forward
  portForwarding: true
---
apiVersion: deckhouse.io/v1
kind: User
metadata:
  name: admin
spec:
  email: admin@example.com
  # это хэш пароля <GENERATED_PASSWORD>, сгенерированного сейчас
  # сгенерируйте свой или используйте этот, но только для тестирования
  # echo "<GENERATED_PASSWORD>" | htpasswd -BinC 10 "" | cut -d: -f2
  # возможно, захотите изменить
  password: <GENERATED_PASSWORD_HASH>
apiVersion: deckhouse.io/v1 kind: NodeGroup metadata: name: worker spec: cloudInstances: classReference: kind: YandexInstanceClass name: worker maxPerZone: 1 minPerZone: 1 # возможно, захотите изменить zones: - ru-central1-a - ru-central1-b disruptions: approvalMode: Automatic nodeType: CloudEphemeral --- apiVersion: deckhouse.io/v1 kind: YandexInstanceClass metadata: name: worker spec: # возможно, захотите изменить cores: 4 # возможно, захотите изменить memory: 8192 # возможно, захотите изменить diskSizeGB: 30 --- apiVersion: deckhouse.io/v1 kind: IngressNginxController metadata: name: nginx spec: # имя Ingress-класса для использования Ingress Nginx controller ingressClass: nginx # версия Ingress-контроллера (используйте версию 1.1 с Kubernetes 1.23+) controllerVersion: "1.1" # способ поступления трафика из внешнего мира inlet: LoadBalancer # описывает, на каких узлах будет находиться компонент. Лейбл node.deckhouse.io/group: <NODE_GROUP_NAME> устанавливается автоматически. nodeSelector: node.deckhouse.io/group: worker --- apiVersion: deckhouse.io/v1 kind: ClusterAuthorizationRule metadata: name: admin spec: # список учётных записей Kubernetes RBAC subjects: - kind: User name: admin@example.com # предустановленный шаблон уровня доступа accessLevel: SuperAdmin # разрешить пользователю делать kubectl port-forward portForwarding: true --- apiVersion: deckhouse.io/v1 kind: User metadata: name: admin spec: email: admin@example.com # это хэш пароля <GENERATED_PASSWORD>, сгенерированного сейчас # сгенерируйте свой или используйте этот, но только для тестирования # echo "<GENERATED_PASSWORD>" | htpasswd -BinC 10 "" | cut -d: -f2 # возможно, захотите изменить password: <GENERATED_PASSWORD_HASH>

Описание ресурсов для набора узлов “Рекомендовано для production”.

# секция, описывающая параметры группы узлов system
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
  name: system
spec:
  # параметры заказа облачных виртуальных машин
  cloudInstances:
    # ссылка на объект InstanceClass
    classReference:
      kind: YandexInstanceClass
      name: system
    # максимальное количество инстансов в зоне
    maxPerZone: 1
    # минимальное количество инстансов в зоне
    minPerZone: 1
    # переопределение перечня зон, в которых создаются инстансы
    # возможно, захотите изменить
    zones:
    - ru-central1-a
    - ru-central1-b
  disruptions:
    approvalMode: Automatic
  nodeTemplate:
    labels:
      node-role.deckhouse.io/system: ""
    taints:
      - effect: NoExecute
        key: dedicated.deckhouse.io
        value: system
  nodeType: CloudEphemeral
---
# секция, описывающая параметры инстанс-класса для узлов c системными компонентами
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: YandexInstanceClass
metadata:
  # имя инстанс класса
  name: system
spec:
  # возможно, захотите изменить
  cores: 4
  # возможно, захотите изменить
  memory: 8192
  # возможно, захотите изменить
  diskSizeGB: 30
---
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
  name: frontend
spec:
  cloudInstances:
    classReference:
      kind: YandexInstanceClass
      name: frontend
    # максимальное количество инстансов в зоне
    maxPerZone: 2
    # минимальное количество инстансов в зоне
    minPerZone: 1
  disruptions:
    approvalMode: Automatic
  nodeTemplate:
    labels:
      node-role.deckhouse.io/frontend: ""
    taints:
      - effect: NoExecute
        key: dedicated.deckhouse.io
        value: frontend
  nodeType: CloudEphemeral
---
# секция, описывающая параметры инстанс-класса для узлов c компонентами, принимающими трафик
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: YandexInstanceClass
metadata:
  # имя инстанс класса
  name: frontend
# возможно, захотите изменить
spec:
  cores: 2
  memory: 4096
  diskSizeGB: 30
---
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
  name: worker
spec:
  cloudInstances:
    classReference:
      kind: YandexInstanceClass
      name: worker
    maxPerZone: 1
    minPerZone: 1
    # возможно, захотите изменить
    zones:
    - ru-central1-a
  disruptions:
    approvalMode: Automatic
  nodeType: CloudEphemeral
---
# секция, описывающая параметры инстанс-класса для узлов c компонентами, обеспечивающими рабочую нагрузку
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: YandexInstanceClass
metadata:
  name: worker
# возможно, захотите изменить
spec:
  cores: 4
  memory: 8192
  diskSizeGB: 30
---
apiVersion: deckhouse.io/v1
kind: IngressNginxController
metadata:
  name: nginx
spec:
  # имя Ingress-класса для использования Ingress Nginx controller
  ingressClass: nginx
  # версия Ingress-контроллера (используйте версию 1.1 с Kubernetes 1.23+)
  controllerVersion: "1.1"
  # способ поступления трафика из внешнего мира
  inlet: LoadBalancer
  # описывает, на каких узлах будет находиться компонент. Лейбл node.deckhouse.io/group: <NODE_GROUP_NAME> устанавливается автоматически.
  nodeSelector:
    node-role.deckhouse.io/frontend: ""
---
apiVersion: deckhouse.io/v1
kind: ClusterAuthorizationRule
metadata:
  name: admin
spec:
  # список учётных записей Kubernetes RBAC
  subjects:
  - kind: User
    name: admin@example.com
  # предустановленный шаблон уровня доступа
  accessLevel: SuperAdmin
  # разрешить пользователю делать kubectl port-forward
  portForwarding: true
---
apiVersion: deckhouse.io/v1
kind: User
metadata:
  name: admin
spec:
  email: admin@example.com
  # это хэш пароля <GENERATED_PASSWORD>, сгенерированного сейчас
  # сгенерируйте свой или используйте этот, но только для тестирования
  # echo "<GENERATED_PASSWORD>" | htpasswd -BinC 10 "" | cut -d: -f2
  # возможно, захотите изменить
  password: <GENERATED_PASSWORD_HASH>
# секция, описывающая параметры группы узлов system # используемая версия API Deckhouse apiVersion: deckhouse.io/v1 kind: NodeGroup metadata: name: system spec: # параметры заказа облачных виртуальных машин cloudInstances: # ссылка на объект InstanceClass classReference: kind: YandexInstanceClass name: system # максимальное количество инстансов в зоне maxPerZone: 1 # минимальное количество инстансов в зоне minPerZone: 1 # переопределение перечня зон, в которых создаются инстансы # возможно, захотите изменить zones: - ru-central1-a - ru-central1-b disruptions: approvalMode: Automatic nodeTemplate: labels: node-role.deckhouse.io/system: "" taints: - effect: NoExecute key: dedicated.deckhouse.io value: system nodeType: CloudEphemeral --- # секция, описывающая параметры инстанс-класса для узлов c системными компонентами # используемая версия API Deckhouse apiVersion: deckhouse.io/v1 kind: YandexInstanceClass metadata: # имя инстанс класса name: system spec: # возможно, захотите изменить cores: 4 # возможно, захотите изменить memory: 8192 # возможно, захотите изменить diskSizeGB: 30 --- apiVersion: deckhouse.io/v1 kind: NodeGroup metadata: name: frontend spec: cloudInstances: classReference: kind: YandexInstanceClass name: frontend # максимальное количество инстансов в зоне maxPerZone: 2 # минимальное количество инстансов в зоне minPerZone: 1 disruptions: approvalMode: Automatic nodeTemplate: labels: node-role.deckhouse.io/frontend: "" taints: - effect: NoExecute key: dedicated.deckhouse.io value: frontend nodeType: CloudEphemeral --- # секция, описывающая параметры инстанс-класса для узлов c компонентами, принимающими трафик # используемая версия API Deckhouse apiVersion: deckhouse.io/v1 kind: YandexInstanceClass metadata: # имя инстанс класса name: frontend # возможно, захотите изменить spec: cores: 2 memory: 4096 diskSizeGB: 30 --- apiVersion: deckhouse.io/v1 kind: NodeGroup metadata: name: worker spec: cloudInstances: classReference: kind: YandexInstanceClass name: worker maxPerZone: 1 minPerZone: 1 # возможно, захотите изменить zones: - ru-central1-a disruptions: approvalMode: Automatic nodeType: CloudEphemeral --- # секция, описывающая параметры инстанс-класса для узлов c компонентами, обеспечивающими рабочую нагрузку # используемая версия API Deckhouse apiVersion: deckhouse.io/v1 kind: YandexInstanceClass metadata: name: worker # возможно, захотите изменить spec: cores: 4 memory: 8192 diskSizeGB: 30 --- apiVersion: deckhouse.io/v1 kind: IngressNginxController metadata: name: nginx spec: # имя Ingress-класса для использования Ingress Nginx controller ingressClass: nginx # версия Ingress-контроллера (используйте версию 1.1 с Kubernetes 1.23+) controllerVersion: "1.1" # способ поступления трафика из внешнего мира inlet: LoadBalancer # описывает, на каких узлах будет находиться компонент. Лейбл node.deckhouse.io/group: <NODE_GROUP_NAME> устанавливается автоматически. nodeSelector: node-role.deckhouse.io/frontend: "" --- apiVersion: deckhouse.io/v1 kind: ClusterAuthorizationRule metadata: name: admin spec: # список учётных записей Kubernetes RBAC subjects: - kind: User name: admin@example.com # предустановленный шаблон уровня доступа accessLevel: SuperAdmin # разрешить пользователю делать kubectl port-forward portForwarding: true --- apiVersion: deckhouse.io/v1 kind: User metadata: name: admin spec: email: admin@example.com # это хэш пароля <GENERATED_PASSWORD>, сгенерированного сейчас # сгенерируйте свой или используйте этот, но только для тестирования # echo "<GENERATED_PASSWORD>" | htpasswd -BinC 10 "" | cut -d: -f2 # возможно, захотите изменить password: <GENERATED_PASSWORD_HASH>

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

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

Linux / macOS Windows

docker run --pull=always -it -v "$PWD/config.yml:/config.yml" -v "$HOME/.ssh/:/tmp/.ssh/" \
  -v "$PWD/resources.yml:/resources.yml" -v "$PWD/dhctl-tmp:/tmp/dhctl" registry.deckhouse.io/deckhouse/ce/install:stable bash
docker run --pull=always -it -v "$PWD/config.yml:/config.yml" -v "$HOME/.ssh/:/tmp/.ssh/" \ -v "$PWD/resources.yml:/resources.yml" -v "$PWD/dhctl-tmp:/tmp/dhctl" registry.deckhouse.io/deckhouse/ce/install:stable bash
docker run --pull=always -it -v "%cd%\config.yml:/config.yml" -v "%userprofile%\.ssh\:/tmp/.ssh/" -v "%cd%\resources.yml:/resources.yml" -v "%cd%\dhctl-tmp:/tmp/dhctl"  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/" -v "%cd%\resources.yml:/resources.yml" -v "%cd%\dhctl-tmp:/tmp/dhctl" registry.deckhouse.io/deckhouse/ce/install:stable bash -c "chmod 400 /tmp/.ssh/id_rsa; bash"

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

dhctl bootstrap --ssh-user=ubuntu --ssh-agent-private-keys=/tmp/.ssh/id_rsa --config=/config.yml --resources=/resources.yml
dhctl bootstrap --ssh-user=ubuntu --ssh-agent-private-keys=/tmp/.ssh/id_rsa --config=/config.yml --resources=/resources.yml

Здесь, в параметре --ssh-user указывается имя пользователя по умолчанию для выбранного образа виртуальной машины. Для предложенных в этом руководстве образов, это — ubuntu.

Примечания:

  • Благодаря использованию параметра -v "$PWD/dhctl-tmp:/tmp/dhctl" состояние данных Terraform-инстяллятора будет сохранено во временной директории на хосте запуска, что позволит корректно продолжить установку в случае прерывания работы контейнера с инсталлятором.

  • В случае возникновения проблем во время разворачивания кластера, для прерывания процесса установки и удаления созданных при инсталляции объектов воспользуйтесь следующей командой (файл конфигурации должен совпадать с тем, с которым производилось разворачивание кластера):

    dhctl bootstrap-phase abort --ssh-user=ubuntu --ssh-agent-private-keys=/tmp/.ssh/id_rsa --config=/config.yml
    
    dhctl bootstrap-phase abort --ssh-user=ubuntu --ssh-agent-private-keys=/tmp/.ssh/id_rsa --config=/config.yml

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

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

Для установки 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 -it -v "$PWD/config.yml:/config.yml" -v "$HOME/.ssh/:/tmp/.ssh/" \
  -v "$PWD/resources.yml:/resources.yml" -v "$PWD/dhctl-tmp:/tmp/dhctl" 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/" \ -v "$PWD/resources.yml:/resources.yml" -v "$PWD/dhctl-tmp:/tmp/dhctl" 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/" -v "%cd%\resources.yml:/resources.yml" -v "%cd%\dhctl-tmp:/tmp/dhctl"  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/" -v "%cd%\resources.yml:/resources.yml" -v "%cd%\dhctl-tmp:/tmp/dhctl" registry.deckhouse.io/deckhouse/ee/install:stable bash -c "chmod 400 /tmp/.ssh/id_rsa; bash"

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

dhctl bootstrap --ssh-user=ubuntu --ssh-agent-private-keys=/tmp/.ssh/id_rsa --config=/config.yml --resources=/resources.yml
dhctl bootstrap --ssh-user=ubuntu --ssh-agent-private-keys=/tmp/.ssh/id_rsa --config=/config.yml --resources=/resources.yml

Здесь, в параметре --ssh-user указывается имя пользователя по умолчанию для выбранного образа виртуальной машины. Для предложенных в этом руководстве образов, это — ubuntu.

Примечания:

  • Благодаря использованию параметра -v "$PWD/dhctl-tmp:/tmp/dhctl" состояние данных Terraform-инстяллятора будет сохранено во временной директории на хосте запуска, что позволит корректно продолжить установку в случае прерывания работы контейнера с инсталлятором.

  • В случае возникновения проблем во время разворачивания кластера, для прерывания процесса установки и удаления созданных при инсталляции объектов воспользуйтесь следующей командой (файл конфигурации должен совпадать с тем, с которым производилось разворачивание кластера):

    dhctl bootstrap-phase abort --ssh-user=ubuntu --ssh-agent-private-keys=/tmp/.ssh/id_rsa --config=/config.yml
    
    dhctl bootstrap-phase abort --ssh-user=ubuntu --ssh-agent-private-keys=/tmp/.ssh/id_rsa --config=/config.yml

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

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