saibaneko
@saibaneko

Установка deckhouse. Самоподписанный SSL сертификат. Кому удалось запустить? Правильный config.yml?

Задача проста - хотел бы посмотреть и пощупать что из себя представляет deckhouse от компании flant в домашней сетке с ВМ в proxmox. Однако на их сайте нет самого очевидного варианта развертывания - в локальной сетке с самоподписанными сертификатами. Основываясь на инструкции c сайта создал следующий конфиг:
config.yml

# Общие параметры кластера.
# https://deckhouse.ru/documentation/v1/installing/configuration.html#clusterconfiguration
apiVersion: deckhouse.io/v1
kind: ClusterConfiguration
clusterType: Static
# Адресное пространство подов кластера.

podSubnetCIDR: 10.111.0.0/16
# Адресное пространство сети сервисов кластера.
serviceSubnetCIDR: 10.222.0.0/16
kubernetesVersion: "Automatic"
# Домен кластера.
clusterDomain: "cluster.local"
---
# Настройки первичной инициализации кластера Deckhouse.
# https://deckhouse.ru/documentation/v1/installing/configuration.html#initconfiguration
apiVersion: deckhouse.io/v1
kind: InitConfiguration
deckhouse:
  imagesRepo: registry.deckhouse.ru/deckhouse/ce
  registryDockerCfg: eyJhdXRocyI6IHsgInJlZ2lzdHJ5LmRlY2tob3VzZS5ydSI6IHt9fX0K
---
# Настройки модуля deckhouse.
# https://deckhouse.ru/documentation/v1/modules/002-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/documentation/v1/deckhouse-release-channels.html
    releaseChannel: EarlyAccess
    logLevel: Info
---
# Глобальные настройки Deckhouse.
# https://deckhouse.ru/documentation/v1/deckhouse-configure-global.html#%D0%BF%D0%B0%D1%80%D0%B0%D0%BC%D0%B5%D1%82%D1%80%D1%8B
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: global
spec:
  version: 1
  settings:
    modules:
      # Шаблон, который будет использоваться для составления адресов системных приложений в кластере.
      # Например, Grafana для %s.dh.aestas.homelab будет доступна на домене 'grafana.dh.aestas.homelab'.
      # Можете изменить на свой сразу, либо следовать шагам руководства и сменить его после установки.
      publicDomainTemplate: "%s.dh.aestas.homelab"
      # Способ реализации протокола HTTPS, используемый модулями Deckhouse.
      https:
        certManager:
          # Использовать самоподписанные сертификаты для модулей Deckhouse.
          clusterIssuerName: aestas-ca
    # Имя storage class, который будет использоваться для всех компонентов Deckhouse (Prometheus, Grafana, OpenVPN и т. д.).
    storageClass: localpath-deckhouse-system
---
# Настройки модуля user-authn.
# https://deckhouse.ru/documentation/v1/modules/150-user-authn/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: user-authn
spec:
  version: 1
  enabled: true
  settings:
    controlPlaneConfigurator:
      dexCAMode: FromIngressSecret
    # Включение доступа к API-серверу Kubernetes через Ingress.
    # https://deckhouse.ru/documentation/v1/modules/150-user-authn/configuration.html#parameters-publishapi
    publishAPI:
      enable: true
      https:
        mode: Global
        global:
          kubeconfigGeneratorMasterCA: ""
---
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: cert-manager
spec:
  version: 1
  enabled: true
  settings:
    disableLetsencrypt: true
---
# Настройки модуля cni-cilium.
# https://deckhouse.ru/documentation/v1/modules/021-cni-cilium/configuration.html
apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: cni-cilium
spec:
  version: 1
  # Включить модуль cni-cilium
  enabled: true
  settings:
    # Настройки модуля cni-cilium
    # https://deckhouse.ru/documentation/v1/modules/021-cni-cilium/configuration.html
    tunnelMode: VXLAN



После относительно успешной установки - ругается, что
kind 'LocalPathProvisioner' is not supported by cluster

│ │ 	local-path-provisioner/: ModuleRun failed in phase 'QueueSynchronizationTasks'. Requeue task to retry after delay. Failed count is    ↵
│ │ 1. Error: run monitor: apiVersion 'deckhouse.io/v1alpha1', kind 'LocalPathProvisioner' is not supported by cluster:                    ↵
│ │ LocalPathProvisioner.deckhouse.io "" not found


выполняю:
sudo /opt/deckhouse/bin/kubectl patch nodegroup master --type json -p '[{"op": "remove", "path": "/spec/nodeTemplate/taints"}]'

Далее согласно инструкции https://deckhouse.ru/documentation/v1/modules/101-... захожу на мастер и выполняю:
openssl genrsa -out rootCAKey.pem 2048
openssl req -x509 -sha256 -new -nodes -key rootCAKey.pem -days 3650 -out rootCACert.pem

sudo /opt/deckhouse/bin/kubectl create secret tls aestas-homelab -n d8-cert-manager --key="rootCAKey.pem" --cert="rootCACert.pem"


Далее создаю
clusterissuer.yml

apiVersion: cert-manager.io/v1
kind: ClusterIssuer
metadata:
  name:  aestas-ca
spec:
  ca:
    secretName: aestas-homelab    # Имя созданного секрета.



Пытаюсь выполнить
sudo /opt/deckhouse/bin/kubectl create -f clusterissuer.yml 
Error from server (InternalError): error when creating "clusterissuer.yml": Internal error occurred: failed calling webhook "mutating.webhook.cert-manager.io": failed to call webhook: Post "https://cert-manager-webhook.d8-cert-manager.svc:443/mutate?timeout=10s": dial tcp 10.222.179.239:443: connect: operation not permitted


И на этом все - тупик. Куда копать пока непонятно.
Подскажите, быть может кто-то сталкивался с такой задачей? Где я ошибся?
  • Вопрос задан
  • 223 просмотра
Пригласить эксперта
Ответы на вопрос 1
kirill-kashin
@kirill-kashin
Здравствуйте.
Интересует версия deckhouse устанавливаемая у вас, так же нужно проверить работу самого пода deckhouse в namespace d8-system и проверить логи этого пода.
По поводу local-path-provision вы можете проверить есть-ли у вас customresourcedefenition localpath, возможно на момент создания localpathprovision еще не выкатился crd localpath.
Проверить работу подов в namespace certmanager появились-ли они и работают
Можете посмотреть о документации https://deckhouse.ru/documentation/v1/deckhouse-co... по module config global, как настроить и использовать selfsigned сертификат в своем кластере
Если будут вопросы, вы всегда можете задать их в телеграмм канале https://t.me/deckhouse
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы