Deckhouse Virtualization Platform на bare metal
Выберите редакцию Deckhouse Virtualization Platform
- Community Edition
- Enterprise Edition
Ниже сгенерированы рекомендованные настройки для установки DVP Community Edition:
config.yml— файл первичной конфигурации кластера. Содержит параметры инсталлятора и начальные параметры кластера.
Обратите внимание:
- Так выделены параметры, которые можно изменить при необходимости.
- Если вы запускаете инсталлятор под Windows, то убедитесь, что кодировка создаваемых YAML-файлов конфигурации UTF-8 (либо удалите примечания на русском языке).
- Выполнять установку необходимо с персонального компьютера, имеющего SSH-доступ до узла, который будет master-узлом будущего кластера.
Создайте файл config.yml.
# Общие параметры кластера.
# https://deckhouse.ru/products/kubernetes-platform/documentation/v1/reference/api/cr.html#clusterconfiguration
apiVersion: deckhouse.io/v1
kind: ClusterConfiguration
clusterType: Static
# Адресное пространство подов кластера.
# Возможно, захотите изменить. Убедитесь, что не будет пересечений с другими подсетями.
podSubnetCIDR: <POD_SUBNET_CIDR>
# Адресное пространство сети сервисов кластера.
# Возможно, захотите изменить. Убедитесь, что не будет пересечений с другими подсетями.
serviceSubnetCIDR: <SERVICE_SUBNET_CIDR>
kubernetesVersion: "Automatic"
# Домен кластера.
clusterDomain: "internal.cluster.local"
# Тип container runtime, используемый на узлах кластера (в NodeGroup’ах) по умолчанию.
defaultCRI: "ContainerdV2"
---
# Настройки модуля deckhouse.
# https://deckhouse.ru/modules/deckhouse/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: deckhouse
spec:
version: 1
enabled: true
settings:
bundle: Default
# Канал обновлений Deckhouse. Канал Early Access достаточно стабилен для тестовых сред.
# Подробнее: https://deckhouse.ru/products/kubernetes-platform/documentation/v1/reference/release-channels.html
releaseChannel: EarlyAccess
logLevel: Info
# Настройки для доступа к хранилищу образов контейнеров с образами Deckhouse.
registry:
mode: Unmanaged
unmanaged:
imagesRepo: registry.deckhouse.ru/deckhouse/ce
---
# Глобальные настройки Deckhouse.
# https://deckhouse.ru/products/kubernetes-platform/documentation/v1/reference/api/global.html#parameters
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: global
spec:
version: 2
settings:
# StorageClass, который используется для PVC кластера, если он не указан явно.
defaultClusterStorageClass: nfs-storage-class
modules:
# Шаблон адресов системных приложений в кластере.
# Например, Grafana для `%s.example.com` будет на `grafana.example.com`, веб-интерфейс DVP — на `console.example.com`.
# Домен НЕ ДОЛЖЕН совпадать с доменом кластера (`clusterDomain`).
# Возможно, захотите изменить.
publicDomainTemplate: "<PUBLIC_DOMAIN_TEMPLATE>"
# Способ реализации протокола HTTPS, используемый модулями Deckhouse.
# https://deckhouse.ru/products/kubernetes-platform/documentation/v1/reference/api/global.html#parameters-modules-https
https:
certManager:
# Самоподписанные сертификаты: Let's Encrypt не сможет проверить домен, не опубликованный в интернете.
clusterIssuerName: selfsigned
---
# Настройки модуля cert-manager.
# https://deckhouse.ru/modules/cert-manager/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: cert-manager
spec:
version: 1
enabled: true
settings:
# ClusterIssuer'ы Let's Encrypt не создаются: домен кластера не опубликован в интернете.
disableLetsencrypt: true
---
# Настройки модуля user-authn.
# https://deckhouse.ru/modules/user-authn/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: user-authn
spec:
version: 2
enabled: true
settings:
# Включение доступа к API-серверу Kubernetes через Ingress.
# https://deckhouse.ru/modules/user-authn/configuration.html#parameters-publishapi
publishAPI:
enabled: true
https:
mode: Global
global:
kubeconfigGeneratorMasterCA: ""
---
# Настройки модуля cni-cilium.
# https://deckhouse.ru/modules/cni-cilium/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: cni-cilium
spec:
version: 1
# Включить модуль cni-cilium.
enabled: true
settings:
tunnelMode: VXLAN
---
# Настройки модуля admission-policy-engine.
# https://deckhouse.ru/modules/admission-policy-engine/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: admission-policy-engine
spec:
version: 1
enabled: true
---
# Настройки модуля multitenancy-manager (проекты, квоты).
# https://deckhouse.ru/modules/multitenancy-manager/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: multitenancy-manager
spec:
version: 1
enabled: true
---
# Параметры статического кластера (внутренние сети узлов).
# https://deckhouse.ru/products/kubernetes-platform/documentation/v1/reference/api/cr.html#staticclusterconfiguration
apiVersion: deckhouse.io/v1
kind: StaticClusterConfiguration
# Внутренние сети узлов для компонентов Kubernetes (kube-apiserver, kubelet и т.д.).
# Обязательны для статического кластера с virtualization и при нескольких сетевых интерфейсах на узлах.
# Должны включать IP-адреса master и worker.
internalNetworkCIDRs:
# Возможно, захотите изменить. Убедитесь, что не будет пересечений с другими подсетями.
- <INTERNAL_NETWORK_CIDRS>
---
# Группа worker-узлов для статических машин.
# https://deckhouse.ru/modules/node-manager/cr.html#nodegroup
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
name: worker
spec:
nodeType: Static
staticInstances:
# Один worker StaticInstance в этом быстром старте.
count: 1
labelSelector:
matchLabels:
role: worker
# Лейблы, которые проставляются на каждый узел группы.
nodeTemplate:
labels:
storage: "true"
---
# SSH-доступ для Cluster API Provider Static (CAPS) к worker-узлу (приватный ключ генерируется в браузере на шаге 2).
# https://deckhouse.ru/modules/node-manager/cr.html#sshcredentials
apiVersion: deckhouse.io/v1alpha2
kind: SSHCredentials
metadata:
name: caps
spec:
user: caps
privateSSHKey: <CAPS_SSH_PRIVATE_KEY_BASE64>
---
# Статический worker для CAPS (адрес из параметров кластера на шаге 2).
# https://deckhouse.ru/modules/node-manager/cr.html#staticinstance
apiVersion: deckhouse.io/v1alpha2
kind: StaticInstance
metadata:
name: dvp-worker-1
labels:
role: worker
spec:
address: "<WORKER_NODE_IP>"
credentialsRef:
kind: SSHCredentials
name: caps
---
# Настройки модуля csi-nfs.
# https://deckhouse.ru/modules/csi-nfs/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: csi-nfs
spec:
version: 1
enabled: true
---
# Настройки модуля virtualization (Deckhouse Virtualization Container Registry (DVCR), сети ВМ).
# https://deckhouse.ru/modules/virtualization/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: virtualization
spec:
version: 1
enabled: true
settings:
dvcr:
storage:
persistentVolumeClaim:
# Размер хранилища образов DVCR.
size: 50Gi
type: PersistentVolumeClaim
# CIDR для трафика виртуальных машин (не должен пересекаться с pod/service).
virtualMachineCIDRs:
# Возможно, захотите изменить. Убедитесь, что не будет пересечений с другими подсетями.
- <VIRTUAL_MACHINE_CIDRS>
---
# NFS StorageClass для хранения в кластере и виртуализации.
# https://deckhouse.ru/modules/csi-nfs/cr.html#nfsstorageclass
apiVersion: storage.deckhouse.io/v1alpha1
kind: NFSStorageClass
metadata:
name: nfs-storage-class
spec:
connection:
# Возможно, захотите изменить.
host: <NFS_HOST>
# Возможно, захотите изменить.
share: <NFS_SHARE>
nfsVersion: "4.1"
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
# Узлы, на которых разрешено монтировать тома этого StorageClass.
workloadNodes:
nodeSelector:
matchLabels:
storage: "true"
---
# Настройки модуля ingress-nginx.
# https://deckhouse.ru/modules/ingress-nginx/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: ingress-nginx
spec:
version: 1
enabled: true
---
# Ingress NGINX Controller (HostPort на control-plane для быстрого старта).
# https://deckhouse.ru/modules/ingress-nginx/cr.html
apiVersion: deckhouse.io/v1
kind: IngressNginxController
metadata:
name: nginx
spec:
ingressClass: nginx
# HostPort публикует HTTP/HTTPS на master-узле (порты 80 и 443).
inlet: HostPort
hostPort:
httpPort: 80
httpsPort: 443
# Возможно, захотите изменить. Сколько NGINX ждёт завершения worker-процессов при перезагрузке конфигурации.
config:
worker-shutdown-timeout: 300s
nodeSelector:
node-role.kubernetes.io/control-plane: ""
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/control-plane
operator: Exists
---
# Настройки модуля snapshot-controller.
# https://deckhouse.ru/modules/snapshot-controller/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: snapshot-controller
spec:
version: 1
enabled: true
---
# Настройки модуля console.
# https://deckhouse.ru/modules/console/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: console
spec:
version: 2
enabled: true
---
# Настройки модуля prometheus (метрики, Grafana).
# https://deckhouse.ru/modules/prometheus/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: prometheus
spec:
version: 2
enabled: true
settings:
# Долговременное хранение метрик не запускается; основной Prometheus хранит метрики 15 дней.
longtermRetentionDays: 0
---
# Настройки модуля upmeter (метрики доступности, страница статуса).
# https://deckhouse.ru/modules/upmeter/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: upmeter
spec:
enabled: true
---
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: local-path-provisioner
spec:
enabled: false
---
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: pod-reloader
spec:
enabled: false
---
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: secret-copier
spec:
enabled: false
---
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: namespace-configurator
spec:
enabled: false
---
# Проект для multitenancy-manager (квота ресурсов и администраторы).
# https://deckhouse.ru/modules/multitenancy-manager/cr.html#project
apiVersion: deckhouse.io/v1alpha2
kind: Project
metadata:
name: test-project
spec:
description: test-project
projectTemplateName: default
parameters:
resourceQuota:
requests:
cpu: 20
memory: 20Gi
limits:
cpu: 20
memory: 20Gi
# Возможно, захотите изменить. С `Isolated` (значение шаблона по умолчанию) образы ВМ не скачаются по HTTP, а у самих ВМ не будет доступа в интернет.
networkPolicy: NotRestricted
administrators:
- subject: User
name: admin@deckhouse.io
---
# Доступ администратора ко всему кластеру для Dex / веб-интерфейсов (нужно для веб-интерфейса DVP).
# https://deckhouse.ru/modules/user-authz/cr.html#clusterauthorizationrule
apiVersion: deckhouse.io/v1
kind: ClusterAuthorizationRule
metadata:
name: admin
spec:
# Список учётных записей Kubernetes RBAC.
subjects:
- kind: User
name: admin@deckhouse.io
# Предустановленный шаблон уровня доступа.
accessLevel: SuperAdmin
# Разрешить kubectl port-forward.
portForwarding: true
---
# Статический пользователь для входа через Dex (веб-интерфейс DVP и другие веб-интерфейсы).
# https://deckhouse.ru/modules/user-authn/cr.html#user
apiVersion: deckhouse.io/v1
kind: User
metadata:
name: admin
spec:
# E-mail пользователя (логин).
email: admin@deckhouse.io
# Возможно, захотите изменить. Генерируется автоматически.
# Хеш пароля `<GENERATED_PASSWORD>`.
# echo -n '<GENERATED_PASSWORD>' | htpasswd -BinC 10 "" | cut -d: -f2 | tr -d '\n' | base64 -w0; echo
password: '<GENERATED_PASSWORD_HASH>'
При загрузке больших образов ВМ (особенно при медленном канале), если загрузка обрывается при перезагрузке конфигурации Ingress-контроллера, замените значение worker-shutdown-timeout в config.yml (ресурс IngressNginxController / nginx) на 1800s или больше:
config:
worker-shutdown-timeout: 1800s # 30 минут или более при необходимости
Без него используется значение по умолчанию — 300s (5 минут).
Введите лицензионный ключ
Нет ключа?
Ниже сгенерированы рекомендованные настройки для установки DVP Enterprise Edition:
config.yml— файл первичной конфигурации кластера. Содержит параметры инсталлятора и начальные параметры кластера.
Обратите внимание:
- Так выделены параметры, которые можно изменить при необходимости.
- Если вы запускаете инсталлятор под Windows, то убедитесь, что кодировка создаваемых YAML-файлов конфигурации UTF-8 (либо удалите примечания на русском языке).
- Выполнять установку необходимо с персонального компьютера, имеющего SSH-доступ до узла, который будет master-узлом будущего кластера.
Создайте файл config.yml.
# Общие параметры кластера.
# https://deckhouse.ru/products/kubernetes-platform/documentation/v1/reference/api/cr.html#clusterconfiguration
apiVersion: deckhouse.io/v1
kind: ClusterConfiguration
clusterType: Static
# Адресное пространство подов кластера.
# Возможно, захотите изменить. Убедитесь, что не будет пересечений с другими подсетями.
podSubnetCIDR: <POD_SUBNET_CIDR>
# Адресное пространство сети сервисов кластера.
# Возможно, захотите изменить. Убедитесь, что не будет пересечений с другими подсетями.
serviceSubnetCIDR: <SERVICE_SUBNET_CIDR>
kubernetesVersion: "Automatic"
# Домен кластера.
clusterDomain: "internal.cluster.local"
# Тип container runtime, используемый на узлах кластера (в NodeGroup’ах) по умолчанию.
defaultCRI: "ContainerdV2"
---
# Настройки модуля deckhouse.
# https://deckhouse.ru/modules/deckhouse/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: deckhouse
spec:
version: 1
enabled: true
settings:
bundle: Default
# Канал обновлений Deckhouse.
# Подробнее: https://deckhouse.ru/products/kubernetes-platform/documentation/v1/reference/release-channels.html
releaseChannel: Stable
logLevel: Info
# Настройки для доступа к хранилищу образов контейнеров с образами Deckhouse.
registry:
mode: Unmanaged
unmanaged:
imagesRepo: registry.deckhouse.ru/deckhouse/ee
license: <YOUR_ACCESS_STRING_IS_HERE>
---
# Глобальные настройки Deckhouse.
# https://deckhouse.ru/products/kubernetes-platform/documentation/v1/reference/api/global.html#parameters
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: global
spec:
version: 2
settings:
# StorageClass, который используется для PVC кластера, если он не указан явно.
defaultClusterStorageClass: nfs-storage-class
modules:
# Шаблон адресов системных приложений в кластере.
# Например, Grafana для `%s.example.com` будет на `grafana.example.com`, веб-интерфейс DVP — на `console.example.com`.
# Домен НЕ ДОЛЖЕН совпадать с доменом кластера (`clusterDomain`).
# Возможно, захотите изменить.
publicDomainTemplate: "<PUBLIC_DOMAIN_TEMPLATE>"
# Способ реализации протокола HTTPS, используемый модулями Deckhouse.
# https://deckhouse.ru/products/kubernetes-platform/documentation/v1/reference/api/global.html#parameters-modules-https
https:
certManager:
# Самоподписанные сертификаты: Let's Encrypt не сможет проверить домен, не опубликованный в интернете.
clusterIssuerName: selfsigned
---
# Настройки модуля cert-manager.
# https://deckhouse.ru/modules/cert-manager/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: cert-manager
spec:
version: 1
enabled: true
settings:
# ClusterIssuer'ы Let's Encrypt не создаются: домен кластера не опубликован в интернете.
disableLetsencrypt: true
---
# Настройки модуля user-authn.
# https://deckhouse.ru/modules/user-authn/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: user-authn
spec:
version: 2
enabled: true
settings:
# Включение доступа к API-серверу Kubernetes через Ingress.
# https://deckhouse.ru/modules/user-authn/configuration.html#parameters-publishapi
publishAPI:
enabled: true
https:
mode: Global
global:
kubeconfigGeneratorMasterCA: ""
---
# Настройки модуля cni-cilium.
# https://deckhouse.ru/modules/cni-cilium/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: cni-cilium
spec:
version: 1
# Включить модуль cni-cilium.
enabled: true
settings:
tunnelMode: VXLAN
---
# Настройки модуля admission-policy-engine.
# https://deckhouse.ru/modules/admission-policy-engine/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: admission-policy-engine
spec:
version: 1
enabled: true
---
# Настройки модуля multitenancy-manager (проекты, квоты).
# https://deckhouse.ru/modules/multitenancy-manager/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: multitenancy-manager
spec:
version: 1
enabled: true
---
# Параметры статического кластера (внутренние сети узлов).
# https://deckhouse.ru/products/kubernetes-platform/documentation/v1/reference/api/cr.html#staticclusterconfiguration
apiVersion: deckhouse.io/v1
kind: StaticClusterConfiguration
# Внутренние сети узлов для компонентов Kubernetes (kube-apiserver, kubelet и т.д.).
# Обязательны для статического кластера с virtualization и при нескольких сетевых интерфейсах на узлах.
# Должны включать IP-адреса master и worker.
internalNetworkCIDRs:
# Возможно, захотите изменить. Убедитесь, что не будет пересечений с другими подсетями.
- <INTERNAL_NETWORK_CIDRS>
---
# Группа worker-узлов для статических машин.
# https://deckhouse.ru/modules/node-manager/cr.html#nodegroup
apiVersion: deckhouse.io/v1
kind: NodeGroup
metadata:
name: worker
spec:
nodeType: Static
staticInstances:
# Один worker StaticInstance в этом быстром старте.
count: 1
labelSelector:
matchLabels:
role: worker
# Лейблы, которые проставляются на каждый узел группы.
nodeTemplate:
labels:
storage: "true"
---
# SSH-доступ для Cluster API Provider Static (CAPS) к worker-узлу (приватный ключ генерируется в браузере на шаге 2).
# https://deckhouse.ru/modules/node-manager/cr.html#sshcredentials
apiVersion: deckhouse.io/v1alpha2
kind: SSHCredentials
metadata:
name: caps
spec:
user: caps
privateSSHKey: <CAPS_SSH_PRIVATE_KEY_BASE64>
---
# Статический worker для CAPS (адрес из параметров кластера на шаге 2).
# https://deckhouse.ru/modules/node-manager/cr.html#staticinstance
apiVersion: deckhouse.io/v1alpha2
kind: StaticInstance
metadata:
name: dvp-worker-1
labels:
role: worker
spec:
address: "<WORKER_NODE_IP>"
credentialsRef:
kind: SSHCredentials
name: caps
---
# Настройки модуля csi-nfs.
# https://deckhouse.ru/modules/csi-nfs/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: csi-nfs
spec:
version: 1
enabled: true
---
# Настройки модуля virtualization (Deckhouse Virtualization Container Registry (DVCR), сети ВМ).
# https://deckhouse.ru/modules/virtualization/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: virtualization
spec:
version: 1
enabled: true
settings:
dvcr:
storage:
persistentVolumeClaim:
# Размер хранилища образов DVCR.
size: 50Gi
type: PersistentVolumeClaim
# CIDR для трафика виртуальных машин (не должен пересекаться с pod/service).
virtualMachineCIDRs:
# Возможно, захотите изменить. Убедитесь, что не будет пересечений с другими подсетями.
- <VIRTUAL_MACHINE_CIDRS>
---
# NFS StorageClass для хранения в кластере и виртуализации.
# https://deckhouse.ru/modules/csi-nfs/cr.html#nfsstorageclass
apiVersion: storage.deckhouse.io/v1alpha1
kind: NFSStorageClass
metadata:
name: nfs-storage-class
spec:
connection:
# Возможно, захотите изменить.
host: <NFS_HOST>
# Возможно, захотите изменить.
share: <NFS_SHARE>
nfsVersion: "4.1"
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
# Узлы, на которых разрешено монтировать тома этого StorageClass.
workloadNodes:
nodeSelector:
matchLabels:
storage: "true"
---
# Настройки модуля ingress-nginx.
# https://deckhouse.ru/modules/ingress-nginx/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: ingress-nginx
spec:
version: 1
enabled: true
---
# Ingress NGINX Controller (HostPort на control-plane для быстрого старта).
# https://deckhouse.ru/modules/ingress-nginx/cr.html
apiVersion: deckhouse.io/v1
kind: IngressNginxController
metadata:
name: nginx
spec:
ingressClass: nginx
# HostPort публикует HTTP/HTTPS на master-узле (порты 80 и 443).
inlet: HostPort
hostPort:
httpPort: 80
httpsPort: 443
# Возможно, захотите изменить. Сколько NGINX ждёт завершения worker-процессов при перезагрузке конфигурации.
config:
worker-shutdown-timeout: 300s
nodeSelector:
node-role.kubernetes.io/control-plane: ""
tolerations:
- effect: NoSchedule
key: node-role.kubernetes.io/control-plane
operator: Exists
---
# Настройки модуля snapshot-controller.
# https://deckhouse.ru/modules/snapshot-controller/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: snapshot-controller
spec:
version: 1
enabled: true
---
# Настройки модуля console.
# https://deckhouse.ru/modules/console/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: console
spec:
version: 2
enabled: true
---
# Настройки модуля prometheus (метрики, Grafana).
# https://deckhouse.ru/modules/prometheus/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: prometheus
spec:
version: 2
enabled: true
settings:
# Долговременное хранение метрик не запускается; основной Prometheus хранит метрики 15 дней.
longtermRetentionDays: 0
---
# Настройки модуля upmeter (метрики доступности, страница статуса).
# https://deckhouse.ru/modules/upmeter/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: upmeter
spec:
enabled: true
---
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: local-path-provisioner
spec:
enabled: false
---
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: pod-reloader
spec:
enabled: false
---
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: secret-copier
spec:
enabled: false
---
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
name: namespace-configurator
spec:
enabled: false
---
# Проект для multitenancy-manager (квота ресурсов и администраторы).
# https://deckhouse.ru/modules/multitenancy-manager/cr.html#project
apiVersion: deckhouse.io/v1alpha2
kind: Project
metadata:
name: test-project
spec:
description: test-project
projectTemplateName: default
parameters:
resourceQuota:
requests:
cpu: 20
memory: 20Gi
limits:
cpu: 20
memory: 20Gi
# Возможно, захотите изменить. С `Isolated` (значение шаблона по умолчанию) образы ВМ не скачаются по HTTP, а у самих ВМ не будет доступа в интернет.
networkPolicy: NotRestricted
administrators:
- subject: User
name: admin@deckhouse.io
---
# Доступ администратора ко всему кластеру для Dex / веб-интерфейсов (нужно для веб-интерфейса DVP).
# https://deckhouse.ru/modules/user-authz/cr.html#clusterauthorizationrule
apiVersion: deckhouse.io/v1
kind: ClusterAuthorizationRule
metadata:
name: admin
spec:
# Список учётных записей Kubernetes RBAC.
subjects:
- kind: User
name: admin@deckhouse.io
# Предустановленный шаблон уровня доступа.
accessLevel: SuperAdmin
# Разрешить kubectl port-forward.
portForwarding: true
---
# Статический пользователь для входа через Dex (веб-интерфейс DVP и другие веб-интерфейсы).
# https://deckhouse.ru/modules/user-authn/cr.html#user
apiVersion: deckhouse.io/v1
kind: User
metadata:
name: admin
spec:
# E-mail пользователя (логин).
email: admin@deckhouse.io
# Возможно, захотите изменить. Генерируется автоматически.
# Хеш пароля `<GENERATED_PASSWORD>`.
# echo -n '<GENERATED_PASSWORD>' | htpasswd -BinC 10 "" | cut -d: -f2 | tr -d '\n' | base64 -w0; echo
password: '<GENERATED_PASSWORD_HASH>'
При загрузке больших образов ВМ (особенно при медленном канале), если загрузка обрывается при перезагрузке конфигурации Ingress-контроллера, замените значение worker-shutdown-timeout в config.yml (ресурс IngressNginxController / nginx) на 1800s или больше:
config:
worker-shutdown-timeout: 1800s # 30 минут или более при необходимости
Без него используется значение по умолчанию — 300s (5 минут).
Для установки DVP используется Docker-образ, в который необходимо передать конфигурационный файл и SSH-ключ Ed25519 для доступа на master-узел (~/.ssh/id_ed25519).
Запустите установщик на персональном компьютере.
- Linux / macOS
- Windows
Если при включенном VPN контейнер с установщиком не может получить доступ к сети, воспользуйтесь инструкцией.
Запустите контейнер с установщиком:
docker run --pull=always -it -v "$PWD/config.yml:/config.yml" -v "$HOME/.ssh/:/tmp/.ssh/" registry.deckhouse.ru/deckhouse/ce/install:stable bash -c "chmod 400 /tmp/.ssh/id_ed25519; bash"
Запустите контейнер с установщиком:
docker run --pull=always -it -v "%cd%\config.yml:/config.yml" -v "%userprofile%\.ssh\:/tmp/.ssh/" registry.deckhouse.ru/deckhouse/ce/install:stable bash -c "chmod 400 /tmp/.ssh/id_ed25519; bash"
Внутри контейнера выполните команду:
dhctl bootstrap --ssh-user=ubuntu --ssh-host=<MASTER_IP> --ssh-agent-private-keys=/tmp/.ssh/id_ed25519 \
--config=/config.yml \
--ask-become-pass
Переменные, используемые в данной команде:
<MASTER_IP>— адрес master-узла для подключения по SSH.--ssh-user=ubuntu— имя пользователя на master-узле (по умолчаниюubuntu; замените, если на master используется другая учётная запись).--ssh-agent-private-keys=/tmp/.ssh/id_ed25519— приватный ключ Ed25519: файлid_ed25519из~/.ssh/на персональном компьютере (в контейнере —/tmp/.ssh/id_ed25519).--ask-become-pass— укажите параметр, если для запускаsudoна сервере необходим пароль; введите пароль в ответ на запрос[sudo] Password:.
Процесс установки может занять от 5 до 30 минут, в зависимости от качества соединения между master-узлом и хранилищем образов.
Пример вывода при успешном окончании установки:
...
│ │ No more converge tasks found in Deckhouse queue.
│ │ Deckhouse pod is Ready!
│ └ Waiting for Deckhouse to become Ready (157.34 seconds)
└ ⛵ ~ Bootstrap: Install Deckhouse (158.47 seconds)
┌ ⛵ ~ Bootstrap: Create Resources
│ ...
│ 🎉 Succeeded!
└ ⛵ ~ Bootstrap: Create Resources (420.15 seconds)
┌ ⛵ ~ Bootstrap: Run post bootstrap actions
│ ...
│ │ 🎉 Succeeded!
│ └ Set release channel to deckhouse module config (25.35 seconds)
└ ⛵ ~ Bootstrap: Run post bootstrap actions (25.35 seconds)
┌ ⛵ ~ Bootstrap: Clear cache
│ ❗ ~ Next run of "dhctl bootstrap" will create a new Kubernetes cluster.
└ ⛵ ~ Bootstrap: Clear cache (0.00 seconds)
🎉 Deckhouse cluster was created successfully!
Кластер с worker-узлом готов. Перейдите к следующему шагу для настройки доступа к веб-интерфейсам DVP.
Для установки DVP используется Docker-образ, в который необходимо передать конфигурационный файл и SSH-ключ Ed25519 для доступа на master-узел (~/.ssh/id_ed25519).
Запустите установщик на персональном компьютере.
- Linux / macOS
- Windows
Авторизуйтесь на персональном компьютере в container image registry:
echo <LICENSE_TOKEN> | docker login -u license-token --password-stdin registry.deckhouse.ru
Запустите контейнер с установщиком:
Если при включенном VPN контейнер с установщиком не может получить доступ к сети, воспользуйтесь инструкцией.
docker run --pull=always -it -v "$PWD/config.yml:/config.yml" -v "$HOME/.ssh/:/tmp/.ssh/" registry.deckhouse.ru/deckhouse/ee/install:stable bash -c "chmod 400 /tmp/.ssh/id_ed25519; bash"
Авторизуйтесь на персональном компьютере в container image registry, введя лицензионный ключ на запрос пароля:
docker login -u license-token registry.deckhouse.ru
Запустите контейнер с установщиком:
docker run --pull=always -it -v "%cd%\config.yml:/config.yml" -v "%userprofile%\.ssh\:/tmp/.ssh/" registry.deckhouse.ru/deckhouse/ee/install:stable bash -c "chmod 400 /tmp/.ssh/id_ed25519; bash"
Внутри контейнера выполните команду:
dhctl bootstrap --ssh-user=ubuntu --ssh-host=<MASTER_IP> --ssh-agent-private-keys=/tmp/.ssh/id_ed25519 \
--config=/config.yml \
--ask-become-pass
Переменные, используемые в данной команде:
<MASTER_IP>— адрес master-узла для подключения по SSH.--ssh-user=ubuntu— имя пользователя на master-узле (по умолчаниюubuntu; замените, если на master используется другая учётная запись).--ssh-agent-private-keys=/tmp/.ssh/id_ed25519— приватный ключ Ed25519: файлid_ed25519из~/.ssh/на персональном компьютере (в контейнере —/tmp/.ssh/id_ed25519).--ask-become-pass— укажите параметр, если для запускаsudoна сервере необходим пароль; введите пароль в ответ на запрос[sudo] Password:.
Процесс установки может занять от 5 до 30 минут, в зависимости от качества соединения между master-узлом и хранилищем образов.
Пример вывода при успешном окончании установки:
...
│ │ No more converge tasks found in Deckhouse queue.
│ │ Deckhouse pod is Ready!
│ └ Waiting for Deckhouse to become Ready (157.34 seconds)
└ ⛵ ~ Bootstrap: Install Deckhouse (158.47 seconds)
┌ ⛵ ~ Bootstrap: Create Resources
│ ...
│ 🎉 Succeeded!
└ ⛵ ~ Bootstrap: Create Resources (420.15 seconds)
┌ ⛵ ~ Bootstrap: Run post bootstrap actions
│ ...
│ │ 🎉 Succeeded!
│ └ Set release channel to deckhouse module config (25.35 seconds)
└ ⛵ ~ Bootstrap: Run post bootstrap actions (25.35 seconds)
┌ ⛵ ~ Bootstrap: Clear cache
│ ❗ ~ Next run of "dhctl bootstrap" will create a new Kubernetes cluster.
└ ⛵ ~ Bootstrap: Clear cache (0.00 seconds)
🎉 Deckhouse cluster was created successfully!
Кластер с worker-узлом готов. Перейдите к следующему шагу для настройки доступа к веб-интерфейсам DVP.