Внимание! При изменении настроек модуля пересоздания существующих объектов Machines в кластере НЕ происходит (новые объекты Machine будут создаваться с новыми параметрами). Пересоздание происходит только при изменении параметров NodeGroup и YandexInstanceClass. Подробнее в документации модуля node-manager.

В модуле реализовано 3 алерта.

Storage

Модуль автоматически создает StorageClass’ы, покрывающие все варианты дисков в Yandex Cloud:

Тип Имя StorageClass Комментарии
network-hdd network-hdd  
network-ssd network-ssd  
network-ssd-nonreplicated network-ssd-nonreplicated  
network-ssd-io-m3 network-ssd-io-m3 Размер дисков должен быть кратен 93 ГБ

Вы можете отфильтровать ненужные StorageClass’ы с помощью параметра exclude.

Важная информация об увеличении размера PVC

Из-за особенностей работы volume-resizer, CSI и Yandex Cloud API после увеличения размера PVC необходимо:

  1. На узле, где находится под, выполнить команду kubectl cordon <имя_узла>.
  2. Удалить под.
  3. Убедиться, что увеличение размера произошло успешно. В объекте PVC не будет condition Resizing.

    Состояние FileSystemResizePending не является проблемой.

  4. На узле, где находится под, выполнить команду kubectl uncordon <имя_узла>.

LoadBalancer

Модуль подписывается на объекты Service с типом LoadBalancer и создает соответствующие NetworkLoadBalancer и TargetGroup в Yandex Cloud.

Больше информации в документации Kubernetes Cloud Controller Manager for Yandex Cloud.

Чтобы настроить модуль, используйте custom resource ModuleConfig с именем cloud-provider-yandex (подробнее о настройке Deckhouse…).

Пример ресурса ModuleConfig/cloud-provider-yandex для настройки модуля:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: cloud-provider-yandex
spec:
  version: 1
  enabled: true
  settings: # <-- Параметры модуля из раздела "Параметры" ниже.

Параметры

Версия схемы: 1

  • settings
    объект
    • settings.additionalExternalNetworkIDs
      массив строк

      Список Network ID, которые будут считаться ExternalIP при перечислении адресов у Node.

      По умолчанию: []

    • settings.storageClass
      объект
      • settings.storageClass.default
        строка

        Имя StorageClass, который будет использоваться в кластере по умолчанию.

        Если параметр не задан, фактическим StorageClass’ом по умолчанию будет один из следующих:

        • Присутствующий в кластере произвольный StorageClass с default-аннотацией.
        • Лексикографически первый StorageClass из создаваемых модулем.

        Пример:

        default: network-hdd
        
      • settings.storageClass.exclude
        массив строк

        Полные имена (или regex-выражения имен) StorageClass, которые не будут созданы в кластере.

        Пример:

        exclude:
        - network-ssd-.*
        - network-hdd