Задача проста - хотел бы посмотреть и пощупать что из себя представляет 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
И на этом все - тупик. Куда копать пока непонятно.
Подскажите, быть может кто-то сталкивался с такой задачей? Где я ошибся?