Deckhouse Kubernetes Platform на Deckhouse Virtualization Platform (DVP)

Перед установкой обязательно проверьте:

  • Квоты облачного провайдера для развёртывания кластера.
  • На ВМ установлен пакет cloud-init. После старта ВМ запущены службы cloud-config.service, cloud-final.service, cloud-init.service.
  • В шаблоне виртуальной машины присутствует только один диск.

Дополнительные требования и сведения

  • Для ContainerdV2 на узлах кластера ОС на виртуальных машинах должна соответствовать требованиям:
    • ядро Linux версии 5.8 и новее;
    • поддержка CgroupsV2;
    • systemd версии 244 и новее;
    • поддержка модуля ядра erofs.

    Подробнее в разделе «ClusterConfiguration».

  • Начиная с версии 1.74 в Deckhouse появился механизм контроля целостности модулей (защита от подмены и модификаций). Он включается автоматически, если на узлах ОС поддерживает модуль ядра erofs. Если erofs недоступен, Deckhouse продолжит работать как раньше, но контроль целостности будет отключён, и в мониторинге появится алерт о недоступности механизма.

Чтобы развернуть Deckhouse Kubernetes Platform на DVP, выполните предварительную настройку в системе виртуализации. Для этого создайте пользователя (ServiceAccount), назначьте ему права и получите kubeconfig.

  1. Создайте пользователя (ServiceAccount и токен), выполнив следующую команду:

    d8 k create -f -<<EOF
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: sa-demo
      namespace: default
    ---
    apiVersion: v1
    kind: Secret
    metadata:
      name: sa-demo-token
      namespace: default
      annotations:
        kubernetes.io/service-account.name: sa-demo
    type: kubernetes.io/service-account-token
    EOF
    
  2. Назначьте созданному пользователю роль. Для этого выполните:

    d8 k create -f -<<EOF
    apiVersion: rbac.authorization.k8s.io/v1
    kind: RoleBinding
    metadata:
      name: sa-demo-rb
      namespace: default
    subjects:
      - kind: ServiceAccount
        name: sa-demo
        namespace: default
    roleRef:
      kind: ClusterRole
      name: d8:use:role:manager
      apiGroup: rbac.authorization.k8s.io
    EOF
    
  3. Включите выдачу kubeconfig через API. Откройте настройки модуля user-authn (создайте ресурс ModuleConfig user-authn, если его нет):

    d8 k edit mc user-authn
    
  4. Добавьте следующую секцию в блок settings и сохраните изменения:

    publishAPI:
      enabled: true
    
  5. Сгенерируйте kubeconfig в веб-интерфейсе kubeconfigurator. Адрес интерфейса зависит от publicDomainTemplate (например, kubeconfig.kube.my при шаблоне %s.kube.my).