Внимание! При изменении настроек модуля пересоздания существующих объектов 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

  • additionalExternalNetworkIDs
    массив строк

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

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

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

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

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

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

      Пример:

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

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

      Пример:

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