Csi-node-driver-registrar#
Csi-node-driver-registrar - компонент управляет регистрацией драйверов для устройств хранения данных на узлах DropApp Plus. Обеспечивает регистрацию драйвера на каждом узле, который будет использоваться для работы с хранилищами данных. Компонент предоставляет API для регистрации драйверов и запускается в DropApp Plus в виде DaemonSet.
Последовательность выполнения#
Примечание
Все приведенные компоненты csi-node-driver-registrar используются вместе для управления томами и хранилищами данных в DropApp Plus с помощью CSI стандарта.
Csi-node-driver-registrar представляет собой дополнительный контейнер, который извлекает информацию о драйвере (используя NodeGetInfo) из конечной точки CSI и регистрирует ее в kubelet на этом узле с помощью механизма регистрации подключаемого модуля kubelet.
Kubelet напрямую выполняет вызовы CSI NodeGetInfo, NodeStageVolume и NodePublishVolume для драйверов CSI. Он использует механизм регистрации подключаемого модуля kubelet для обнаружения сокета домена unix для взаимодействия с драйвером CSI. Следовательно, все драйверы CSI должны использовать этот sidecar-контейнер для регистрации в kubelet.
Таблица. Параметры командной строки.
Синтаксис флага |
Значение |
|---|---|
|
Путь к сокету драйвера внутри модуля, который контейнер Csi-node-driver-registrar будет использовать для выполнения операций CSI (например, |
|
Путь к сокету драйвера CSI на хост-узле, который kubelet будет использовать для выполнения операций CSI (например, |
Csi-node-driver-registrar не взаимодействует с API DropApp Plus, поэтому правила RBAC не нужны.
Csi-node-driver-registrar должен иметь возможность монтировать тома hostPath и иметь права доступа к файлам.
Получите доступ к сокету драйвера CSI (путь:
/var/lib/kubelet/plugins/<drivername.example.com>/).Получите доступ к регистрационному сокету (путь:
/var/lib/kubelet/plugins_registry/). Убедитесь, что плагин для регистрации доступен на хосте, на котором запущен DropApp Plus. Обычно это можно проверить, выполнив командуoc get pods -n kube-system. Если виден pod с именемetcd-<имя_хоста>, то плагин доступен.Проверьте работоспособность csi-node-driver-registrar:
containers: - name: csi-driver-registrar image: dappregistry/sig-storage/csi-node-driver-registrar:v2.5.1 args: - "--v=5" - "--csi-address=/csi/csi.sock" - "--kubelet-registration-path=/var/lib/kubelet/plugins/<drivername.example.com>/csi.sock" livenessProbe: exec: command: - /csi-node-driver-registrar - --kubelet-registration-path=/var/lib/kubelet/plugins/<drivername.example.com>/csi.sock - --mode=kubelet-registration-probe initialDelaySeconds: 30 timeoutSeconds: 15Выше приведена конфигурация контейнера для DropApp Plus, который используется для регистрации DropApp Plus CSI Driver. В контейнере используется образ Docker, он содержит программу csi-node-driver-registrar, которая регистрирует DropApp Plus CSI драйвер в кластере.
Контейнер используется для запуска программы для регистрации драйвера DropApp Plus. Драйвер – это компонент, который позволяет узлам DropApp Plus подключаться к блочным устройствам, таким как диски или сетевые хранилища. В данном случае, контейнер используется для регистрации драйвера DropApp Plus в системе.
Флаг
--mode=kubelet-registration-probeмодифицирует csi-node-driver-registrar в зонд, проверяющий, прошла ли регистрация подключаемого модуля kubelet успешно. Значение--kubelet-registration-pathдолжно быть таким же, как задано в аргументах контейнера,--csi-addressв этом режиме не требуется.Если
--http-endpointустановлено, то csi-node-driver-registrar предоставляет конечную точку проверки работоспособности по указанному адресу и пути/healthz, указывая, существует ли сокет регистрации.Примените спецификацию:
containers: - name: csi-driver-registrar image: /sig-storage/csi-node-driver-registrar:v2.5.1 args: - "--csi-address=/csi/csi.sock" - "--kubelet-registration-path=/var/lib/kubelet/plugins/<drivername.example.com>/csi.sock" # Адрес не являтся существующим и приведен в качестве примера. - "--health-port=9809" volumeMounts: - name: plugin-dir mountPath: /csi - name: registration-dir mountPath: /registration ports: - containerPort: 9809 name: healthz livenessProbe: httpGet: path: /healthz port: healthz initialDelaySeconds: 5 timeoutSeconds: 5 volumes: - name: registration-dir hostPath: path: /var/lib/kubelet/plugins_registry/ type: Directory - name: plugin-dir hostPath: path: /var/lib/kubelet/plugins/<drivername.example.com>/ # Адрес не являтся существующим и приведен в качестве примера. type: DirectoryOrCreateВыше представлен контейнер для DropApp Plus, используемый для регистрации DropApp Plus Controller Manager в кластере DropApp Plus. В конфигурации контейнера используется образ Docker с программой csi-node-driver-registrar. Контейнер также содержит два тома -
/csiи/registration, которые используются для хранения данных регистрации DropApp Plus Controller. Порт 9809 используется для проверки работоспособности контейнера. Liveness Probe проверяет работоспособность контейнера каждые5секунд.
Результат#
Csi-node-driver-registrar настроен и готов к использованию.