Deckhouse Platform в закрытом окружении

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

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

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

  • обязательные для самостоятельного заполнения параметры.
  • опциональные параметры.

Выполнять установку необходимо с персонального компьютера, имеющего SSH-доступ до узла, который будет master-узлом будущего кластера.

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

# Секция с общими параметрами кластера (ClusterConfiguration).
# Используемая версия API Deckhouse Platform.
apiVersion: deckhouse.io/v1
# Тип секции конфигурации.
kind: ClusterConfiguration
# Тип инфраструктуры: bare metal (Static) или облако (Cloud).
clusterType: Static
# Адресное пространство Pod’ов кластера.
podSubnetCIDR: 10.111.0.0/16
# Адресное пространство для service’ов кластера.
serviceSubnetCIDR: 10.222.0.0/16
# Устанавливаемая версия Kubernetes.
kubernetesVersion: "1.21"
# Домен кластера.
clusterDomain: "cluster.local"
packagesProxy:
  uri: https://example.com
  username: <PROXY-USERNAME>
  password: <PROXY-PASSWORD>
---
# Секция первичной инициализации кластера 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"
        # Настройки proxy-сервера для доступа в Интернет модулей Deckhouse.
        proxy:
          httpProxy: <HTTP_PROXY_ADDRESS>
          httpsProxy: <HTTPS_PROXY_ADDRESS>
          noProxy: <NO_PROXY_LIST>
    # Включить модуль cni-flannel.
    cniFlannelEnabled: true
    # Настройки модуля cni-flannel.
    cniFlannel:
      # Режим работы flannel, допустимые значения VXLAN (если ваши сервера имеют связность L3) или HostGW (для L2-сетей).
      # Возможно, захотите изменить.
      podNetworkMode: VXLAN
  # Адрес Docker registry с образами Deckhouse.
  imagesRepo: <IMAGES_REPO_URI>
  # Строка с ключом для доступа к Docker registry.
  registryDockerCfg: <YOUR_PRIVATE_ACCESS_STRING_IS_HERE>
  # Протокол доступа к registry (http или https).
  registryScheme: https
  # Корневой сертификат, которым можно проверить сертификат registry (если registry использует самоподписанные сертификаты).
  registryCA: <REGISTRY_CA>
---
# Секция с параметрами bare metal кластера (StaticClusterConfiguration).
# Используемая версия API Deckhouse.
apiVersion: deckhouse.io/v1
# Тип секции конфигурации.
kind: StaticClusterConfiguration
# Список внутренних сетей узлов кластера (например, '10.0.4.0/24'), который
# используется для связи компонентов Kubernetes (kube-apiserver, kubelet...) между собой.
internalNetworkCIDRs:
- *!CHANGE_internalNetworkCIDRs*
# Секция с общими параметрами кластера (ClusterConfiguration). # Используемая версия API Deckhouse Platform. apiVersion: deckhouse.io/v1 # Тип секции конфигурации. kind: ClusterConfiguration # Тип инфраструктуры: bare metal (Static) или облако (Cloud). clusterType: Static # Адресное пространство Pod’ов кластера. podSubnetCIDR: 10.111.0.0/16 # Адресное пространство для service’ов кластера. serviceSubnetCIDR: 10.222.0.0/16 # Устанавливаемая версия Kubernetes. kubernetesVersion: "1.21" # Домен кластера. clusterDomain: "cluster.local" packagesProxy: uri: https://example.com username: <PROXY-USERNAME> password: <PROXY-PASSWORD> --- # Секция первичной инициализации кластера 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" # Настройки proxy-сервера для доступа в Интернет модулей Deckhouse. proxy: httpProxy: <HTTP_PROXY_ADDRESS> httpsProxy: <HTTPS_PROXY_ADDRESS> noProxy: <NO_PROXY_LIST> # Включить модуль cni-flannel. cniFlannelEnabled: true # Настройки модуля cni-flannel. cniFlannel: # Режим работы flannel, допустимые значения VXLAN (если ваши сервера имеют связность L3) или HostGW (для L2-сетей). # Возможно, захотите изменить. podNetworkMode: VXLAN # Адрес Docker registry с образами Deckhouse. imagesRepo: <IMAGES_REPO_URI> # Строка с ключом для доступа к Docker registry. registryDockerCfg: <YOUR_PRIVATE_ACCESS_STRING_IS_HERE> # Протокол доступа к registry (http или https). registryScheme: https # Корневой сертификат, которым можно проверить сертификат registry (если registry использует самоподписанные сертификаты). registryCA: <REGISTRY_CA> --- # Секция с параметрами bare metal кластера (StaticClusterConfiguration). # Используемая версия API Deckhouse. apiVersion: deckhouse.io/v1 # Тип секции конфигурации. kind: StaticClusterConfiguration # Список внутренних сетей узлов кластера (например, '10.0.4.0/24'), который # используется для связи компонентов Kubernetes (kube-apiserver, kubelet...) между собой. internalNetworkCIDRs: - *!CHANGE_internalNetworkCIDRs*

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

docker run --pull=always -it -v "$PWD/config.yml:/config.yml" -v "$HOME/.ssh/:/tmp/.ssh/" \
 <IMAGES_REPO_URI>/install:stable bash
docker run --pull=always -it -v "$PWD/config.yml:/config.yml" -v "$HOME/.ssh/:/tmp/.ssh/" \ <IMAGES_REPO_URI>/install:stable bash

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

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

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

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

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

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

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

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

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

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

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

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