ydb-platform / nbs

Network Block Store
Apache License 2.0
50 stars 14 forks source link

[NBS] Включение Configs Dispatcher в сервисах nbs/nfs/etc #370

Open EvgeniyKozev opened 4 months ago

EvgeniyKozev commented 4 months ago

Для того, что бы ноды захватывали конфигурации из CMS их нужно переключить на новый CMS, а так же включить Configs Dispatcher, что бы захватывать изменения в CMS без рестартов сервиса.

  1. Нужно переключить получение CMS на новый путь при рестрате. https://github.com/ydb-platform/nbs/blob/1ec032ce3b77cd0ab24fb754b1b644df75a65399/cloud/blockstore/libs/disk_agent/config_initializer.cpp#L27
  2. В NBS используются только следующие сервисы, однако Configs Dispatcher не должен захватывать конфиги для всех т.к. некоторые настраиваются локально. https://github.com/ydb-platform/nbs/blob/a11ddd6efb3c935849ba724ba699782aab1b9abe/contrib/ydb/core/driver_lib/run/config.h#L15
Enjection commented 4 months ago

https://github.com/ydb-platform/nbs/pull/595 пуллрик с подъемом yaml-конфига на старте. Забегая вперёд можно будет по лейблй точечно включить или выключить для набора нод. Почти наверняка нужно добавить дополнительных лейблов, кроме node_type.

В ydb набор по-умолчанию:

branch = tags/releases/ydb/stable-23-3-25
dynamic = false # динамическая или статическая нода
node_host = host.example.com
node_id = 20
node_type = # сейчас не проставляется
rev = 4888e36fa06082102e6b0e16e5d485d0d32fef45
tenant = # тенант из параметра --node-type
Enjection commented 4 months ago

https://github.com/ydb-platform/ydb/pull/2397 добавил denylist / allowlist, можно явно указать список ConfigItems которые игнорить или наоборот.