Deckhouse Platform в Amazon AWS
Выберите редакцию 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: AWS
# префикс для объектов кластера для их отличия (используется, например, при маршрутизации)
prefix: "cloud-demo"
# адресное пространство Pod’ов кластера
podSubnetCIDR: 10.111.0.0/16
# адресное пространство для service’ов кластера
serviceSubnetCIDR: 10.222.0.0/16
# устанавливаемая версия Kubernetes
kubernetesVersion: "1.21"
# домен кластера
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: AWSClusterConfiguration
# layout — архитектура расположения ресурсов в облаке
layout: WithoutNAT
# параметры доступа к облаку AWS
provider:
providerAccessKeyId: *!CHANGE_MYACCESSKEY*
providerSecretAccessKey: *!CHANGE_mYsEcReTkEy*
# регион привязки кластера
# возможно, захотите изменить
region: eu-central-1
# параметры группы master-узлов
masterNodeGroup:
# количество реплик мастера
# если будет больше одного master-узла, то control-plane на всех master-узлах будет развернут автоматическии
replicas: 1
# параметры инстанса
instanceClass:
# размер диска для виртуальной машины master-узла
# возможно, захотите изменить
diskSizeGb: 30
# используемый тип диска для виртуальной машины master-узла
# возможно, захотите изменить
diskType: gp3
# тип используемого инстанса
# возможно, захотите изменить
instanceType: c5.large
# id образа виртуальной машины в Amazon
# возможно, захотите изменить
ami: ami-0fee04b212b7499e2
# адресное пространство облака внутри AWS
vpcNetworkCIDR: "10.241.0.0/16"
# адресное пространство узлов кластера
nodeNetworkCIDR: "10.241.32.0/20"
# публичная часть SSH-ключа для доступа к узлам облака
sshPublicKey: ssh-rsa <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: AWS
# префикс для объектов кластера для их отличия (используется, например, при маршрутизации)
prefix: "cloud-demo"
# адресное пространство Pod’ов кластера
podSubnetCIDR: 10.111.0.0/16
# адресное пространство для service’ов кластера
serviceSubnetCIDR: 10.222.0.0/16
# устанавливаемая версия Kubernetes
kubernetesVersion: "1.21"
# домен кластера
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: AWSClusterConfiguration
# layout — архитектура расположения ресурсов в облаке
layout: WithNAT
# параметры доступа к облаку AWS
provider:
providerAccessKeyId: *!CHANGE_MYACCESSKEY*
providerSecretAccessKey: *!CHANGE_mYsEcReTkEy*
# регион привязки кластера
# возможно, захотите изменить
region: eu-central-1
withNAT:
# параметры инстанса bastion-хоста
bastionInstance:
# зона в которой создавать bastion-хост
# возможно, захотите изменить
zone: eu-central-1a
instanceClass:
# тип используемого инстанса bastion-хоста
# возможно, захотите изменить
instanceType: m5.large
# id образа виртуальной машины в Amazon
# возможно, захотите изменить
ami: ami-09a4a23815cdb5e06
# Тип диска
diskType: gp3
# параметры группы master-узлов
masterNodeGroup:
# количество реплик мастера
# если будет больше одного master-узла, то control-plane на всех master-узлах будет развернут автоматическии
replicas: 1
# параметры инстанса
instanceClass:
# размер диска для виртуальной машины master-узла
# возможно, захотите изменить
diskSizeGb: 30
# используемый тип диска для виртуальной машины master-узла
# возможно, захотите изменить
diskType: gp3
# тип используемого инстанса
# возможно, захотите изменить
instanceType: c5.large
# id образа виртуальной машины в Amazon
# возможно, захотите изменить
ami: ami-0fee04b212b7499e2
# адресное пространство облака внутри AWS
vpcNetworkCIDR: "10.241.0.0/16"
# адресное пространство узлов кластера
nodeNetworkCIDR: "10.241.32.0/20"
# публичная часть SSH-ключа для доступа к узлам облака
sshPublicKey: ssh-rsa <SSH_PUBLIC_KEY>
Лицензионный ключ доступа Deckhouse Platform Enterprise Edition
Лицензионный ключ используется компонентами Deckhouse для доступа к геораспределенному container registry, в котором хранятся все используемые Deckhouse образы.
Приведенные на данной странице команды и файлы конфигурации сгенерированы с учетом введенного лицензионного ключа.
Запросить лицензионный ключ
Заполните форму и мы отправим данные для доступа вам на почту.
Введите лицензионный ключ
Ниже сгенерированы рекомендованные настройки для установки 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: AWS
# префикс для объектов кластера для их отличия (используется, например, при маршрутизации)
prefix: "cloud-demo"
# адресное пространство Pod’ов кластера
podSubnetCIDR: 10.111.0.0/16
# адресное пространство для service’ов кластера
serviceSubnetCIDR: 10.222.0.0/16
# устанавливаемая версия Kubernetes
kubernetesVersion: "1.21"
# домен кластера
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: AWSClusterConfiguration
# layout — архитектура расположения ресурсов в облаке
layout: WithoutNAT
# параметры доступа к облаку AWS
provider:
providerAccessKeyId: *!CHANGE_MYACCESSKEY*
providerSecretAccessKey: *!CHANGE_mYsEcReTkEy*
# регион привязки кластера
# возможно, захотите изменить
region: eu-central-1
# параметры группы master-узлов
masterNodeGroup:
# количество реплик мастера
# если будет больше одного master-узла, то control-plane на всех master-узлах будет развернут автоматическии
replicas: 1
# параметры инстанса
instanceClass:
# размер диска для виртуальной машины master-узла
# возможно, захотите изменить
diskSizeGb: 30
# используемый тип диска для виртуальной машины master-узла
# возможно, захотите изменить
diskType: gp3
# тип используемого инстанса
# возможно, захотите изменить
instanceType: c5.large
# id образа виртуальной машины в Amazon
# возможно, захотите изменить
ami: ami-0fee04b212b7499e2
# адресное пространство облака внутри AWS
vpcNetworkCIDR: "10.241.0.0/16"
# адресное пространство узлов кластера
nodeNetworkCIDR: "10.241.32.0/20"
# публичная часть SSH-ключа для доступа к узлам облака
sshPublicKey: ssh-rsa <SSH_PUBLIC_KEY>
Лицензионный ключ доступа Deckhouse Platform Enterprise Edition
Лицензионный ключ используется компонентами Deckhouse для доступа к геораспределенному container registry, в котором хранятся все используемые Deckhouse образы.
Приведенные на данной странице команды и файлы конфигурации сгенерированы с учетом введенного лицензионного ключа.
Запросить лицензионный ключ
Заполните форму и мы отправим данные для доступа вам на почту.
Введите лицензионный ключ
Ниже сгенерированы рекомендованные настройки для установки 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: AWS
# префикс для объектов кластера для их отличия (используется, например, при маршрутизации)
prefix: "cloud-demo"
# адресное пространство Pod’ов кластера
podSubnetCIDR: 10.111.0.0/16
# адресное пространство для service’ов кластера
serviceSubnetCIDR: 10.222.0.0/16
# устанавливаемая версия Kubernetes
kubernetesVersion: "1.21"
# домен кластера
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: AWSClusterConfiguration
# layout — архитектура расположения ресурсов в облаке
layout: WithNAT
# параметры доступа к облаку AWS
provider:
providerAccessKeyId: *!CHANGE_MYACCESSKEY*
providerSecretAccessKey: *!CHANGE_mYsEcReTkEy*
# регион привязки кластера
# возможно, захотите изменить
region: eu-central-1
withNAT:
# параметры инстанса bastion-хоста
bastionInstance:
# зона в которой создавать bastion-хост
# возможно, захотите изменить
zone: eu-central-1a
instanceClass:
# тип используемого инстанса bastion-хоста
# возможно, захотите изменить
instanceType: m5.large
# id образа виртуальной машины в Amazon
# возможно, захотите изменить
ami: ami-09a4a23815cdb5e06
# Тип диска
diskType: gp3
# параметры группы master-узлов
masterNodeGroup:
# количество реплик мастера
# если будет больше одного master-узла, то control-plane на всех master-узлах будет развернут автоматическии
replicas: 1
# параметры инстанса
instanceClass:
# размер диска для виртуальной машины master-узла
# возможно, захотите изменить
diskSizeGb: 30
# используемый тип диска для виртуальной машины master-узла
# возможно, захотите изменить
diskType: gp3
# тип используемого инстанса
# возможно, захотите изменить
instanceType: c5.large
# id образа виртуальной машины в Amazon
# возможно, захотите изменить
ami: ami-0fee04b212b7499e2
# адресное пространство облака внутри AWS
vpcNetworkCIDR: "10.241.0.0/16"
# адресное пространство узлов кластера
nodeNetworkCIDR: "10.241.32.0/20"
# публичная часть SSH-ключа для доступа к узлам облака
sshPublicKey: ssh-rsa <SSH_PUBLIC_KEY>
Описание ресурсов для набора узлов “Минимальный”.
# секция, описывающая параметры инстанс-класса для узлов c компонентами, обеспечивающими рабочую нагрузку
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: AWSInstanceClass
metadata:
# имя инстанс класса
name: worker
spec:
# размер диска для виртуальной машины
# возможно, захотите изменить
diskSizeGb: 30
# используемый тип диска для виртуальной машины
# возможно, захотите изменить
diskType: gp3
# возможно, захотите изменить
instanceType: c5.xlarge
---
# секция, описывающая параметры группы узлов c компонентами, обеспечивающими рабочую нагрузку
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
# имя группы узлов
name: worker
spec:
# параметры заказа облачных виртуальных машин
cloudInstances:
# ссылка на объект InstanceClass
classReference:
kind: AWSInstanceClass
name: worker
# максимальное количество инстансов в зоне
maxPerZone: 1
# минимальное количество инстансов в зоне
minPerZone: 1
# переопределение перечня зон, в которых создаются инстансы
# возможно, захотите изменить
zones:
- eu-central-1a
nodeType: CloudEphemeral
---
# секция, описывающая параметры nginx ingress controller
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: IngressNginxController
metadata:
name: nginx
spec:
# имя Ingress-класса для использования Ingress Nginx controller
ingressClass: nginx
# способ поступления трафика из внешнего мира
inlet: LoadBalancer
loadBalancer:
# аннотации, которые будут проставлены сервису для гибкой настройки балансировщика
annotations:
# использовать Network Load Balancer для сервиса Ingress контроллера
service.beta.kubernetes.io/aws-load-balancer-type: nlb
# описывает, на каких узлах будет находиться компонент. Лейбл 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
---
# секция, описывающая параметры статического пользователя
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: User
metadata:
name: admin
spec:
# e-mail пользователя
email: admin@example.com
# это хэш пароля <GENERATED_PASSWORD>, сгенерированного сейчас
# сгенерируйте свой или используйте этот, но только для тестирования
# echo "<GENERATED_PASSWORD>" | htpasswd -BinC 10 "" | cut -d: -f2
# возможно, захотите изменить
password: <GENERATED_PASSWORD_HASH>
Описание ресурсов для набора узлов “Мультимастер”.
# секция, описывающая параметры инстанс-класса для узлов c компонентами, обеспечивающими рабочую нагрузку
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: AWSInstanceClass
metadata:
# имя инстанс класса
name: worker
spec:
# размер диска для виртуальной машины
# возможно, захотите изменить
diskSizeGb: 30
# используемый тип диска для виртуальной машины
# возможно, захотите изменить
diskType: gp3
# возможно, захотите изменить
instanceType: c5.xlarge
---
# секция, описывающая параметры группы узлов c компонентами, обеспечивающими рабочую нагрузку
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
# имя группы узлов
name: worker
spec:
# параметры заказа облачных виртуальных машин
cloudInstances:
# ссылка на объект InstanceClass
classReference:
kind: AWSInstanceClass
name: worker
# максимальное количество инстансов в зоне
maxPerZone: 2
# минимальное количество инстансов в зоне
minPerZone: 2
# переопределение перечня зон, в которых создаются инстансы
# возможно, захотите изменить
zones:
- eu-central-1a
nodeType: CloudEphemeral
---
# секция, описывающая параметры nginx ingress controller
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: IngressNginxController
metadata:
name: nginx
spec:
# имя Ingress-класса для использования Ingress Nginx controller
ingressClass: nginx
# способ поступления трафика из внешнего мира
inlet: LoadBalancer
loadBalancer:
# аннотации, которые будут проставлены сервису для гибкой настройки балансировщика
annotations:
# использовать Network Load Balancer для сервиса Ingress контроллера
service.beta.kubernetes.io/aws-load-balancer-type: nlb
# описывает, на каких узлах будет находиться компонент. Лейбл 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
---
# секция, описывающая параметры статического пользователя
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: User
metadata:
name: admin
spec:
# e-mail пользователя
email: admin@example.com
# это хэш пароля <GENERATED_PASSWORD>, сгенерированного сейчас
# сгенерируйте свой или используйте этот, но только для тестирования
# echo "<GENERATED_PASSWORD>" | htpasswd -BinC 10 "" | cut -d: -f2
# возможно, захотите изменить
password: <GENERATED_PASSWORD_HASH>
Описание ресурсов для набора узлов “Рекомендовано для production”.
# секция, описывающая параметры инстанс-класса для узлов c системными компонентами
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: AWSInstanceClass
metadata:
# имя инстанс класса
name: system
spec:
# размер диска для виртуальной машины
# возможно, захотите изменить
diskSizeGb: 30
# используемый тип диска для виртуальной машины
# возможно, захотите изменить
diskType: gp3
# возможно, захотите изменить
instanceType: c5.xlarge
---
# секция, описывающая параметры группы узлов c системными компонентами
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
# имя группы узлов
name: system
spec:
# параметры заказа облачных виртуальных машин
cloudInstances:
# ссылка на объект InstanceClass
classReference:
kind: AWSInstanceClass
name: system
# максимальное количество инстансов в зоне
maxPerZone: 1
# минимальное количество инстансов в зоне
minPerZone: 1
# переопределение перечня зон, в которых создаются инстансы
# возможно, захотите изменить
zones:
- eu-central-1a
- eu-central-1b
nodeTemplate:
# аналогично стандартному полю metadata.labels
labels:
node-role.deckhouse.io/system: ""
# аналогично полю .spec.taints из объекта Node
# доступны только поля effect, key, value
taints:
- effect: NoExecute
key: dedicated.deckhouse.io
value: system
nodeType: CloudEphemeral
---
# секция, описывающая параметры инстанс-класса для узлов c компонентами, принимающими трафик
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: AWSInstanceClass
metadata:
name: frontend
spec:
# размер диска для виртуальной машины
# возможно, захотите изменить
diskSizeGb: 30
# используемый тип диска для виртуальной машины
# возможно, захотите изменить
diskType: gp3
# возможно, захотите изменить
instanceType: c5.large
---
# секция, описывающая параметры группы узлов c компонентами, принимающими трафик
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
name: frontend
spec:
chaos:
mode: Disabled
cloudInstances:
classReference:
kind: AWSInstanceClass
name: frontend
maxPerZone: 1
minPerZone: 1
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: AWSInstanceClass
metadata:
name: worker
spec:
diskSizeGb: 30
diskType: gp3
# возможно, захотите изменить
instanceType: c5.xlarge
---
# секция, описывающая параметры группы узлов c компонентами, обеспечивающими рабочую нагрузку
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
# имя группы узлов
name: worker
spec:
# параметры заказа облачных виртуальных машин
cloudInstances:
# ссылка на объект InstanceClass
classReference:
kind: AWSInstanceClass
name: worker
# максимальное количество инстансов в зоне
maxPerZone: 1
# минимальное количество инстансов в зоне
minPerZone: 1
# переопределение перечня зон, в которых создаются инстансы
# возможно, захотите изменить
zones:
- eu-central-1a
nodeType: CloudEphemeral
---
# секция, описывающая параметры nginx ingress controller
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: IngressNginxController
metadata:
name: nginx
spec:
# имя Ingress-класса для использования Ingress Nginx controller
ingressClass: nginx
# способ поступления трафика из внешнего мира
inlet: LoadBalancer
loadBalancer:
# аннотации, которые будут проставлены сервису для гибкой настройки балансировщика
annotations:
# использовать Network Load Balancer для сервиса Ingress контроллера
service.beta.kubernetes.io/aws-load-balancer-type: nlb
# описывает, на каких узлах будет находиться компонент
nodeSelector:
node-role.deckhouse.io/frontend: ""
# максимальное количество реплик контроллера
maxReplicas: 6
# минимальное количество реплик контроллера
minReplicas: 6
---
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
---
# секция, описывающая параметры статического пользователя
# используемая версия API Deckhouse
apiVersion: deckhouse.io/v1
kind: User
metadata:
name: admin
spec:
# e-mail пользователя
email: admin@example.com
# это хэш пароля <GENERATED_PASSWORD>, сгенерированного сейчас
# сгенерируйте свой или используйте этот, но только для тестирования
# echo "<GENERATED_PASSWORD>" | htpasswd -BinC 10 "" | cut -d: -f2
# возможно, захотите изменить
password: <GENERATED_PASSWORD_HASH>
Для установки Deckhouse Platform используется Docker-образ, в который необходимо передать конфигурационные файлы и SSH-ключи доступа на master-узлы.
Запустите установщик на персональном компьютере.
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"
Внутри контейнера выполните команду:
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-узлы.
Запустите установщик на персональном компьютере.
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 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
Здесь, в параметре --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!