Spec-Zone.ru › Kubernetes

CSIDriver

CSIDriver собирает информацию о драйвере объёма интерфейса хранения контейнеров (CSI), развернутом в кластере.

apiVersion: storage.k8s.io/v1

import "k8s.io/api/storage/v1"

CSIDriver

CSIDriver собирает информацию о драйвере объёма интерфейса хранения контейнеров (CSI), развернутом в кластере. Контроллер Kubernetes attach detach использует этот объект для определения, требуется ли операция attach. Kubelet использует этот объект для определения, нужно ли передавать информацию о pod при монтировании. Объекты CSIDriver не имеют пространства имён.

  • apiVersion: storage.k8s.io/v1

  • kind: CSIDriver

  • metadata (ObjectMeta)

    Стандартные метаданные объекта. metadata.Name указывает имя драйвера CSI, на который ссылается этот объект; оно ДОЛЖНО совпадать с именем, возвращаемым вызовом CSI GetPluginName() для этого драйвера. Имя драйвера должно содержать не более 63 символов, начинаться и заканчиваться буквенно-цифровым символом ([a-z0-9A-Z]), содержать дефисы (-), точки (.) и буквенно-цифровые символы между ними. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

  • spec (CSIDriverSpec), обязательный

    spec представляет собой спецификацию драйвера CSI.

CSIDriverSpec

CSIDriverSpec — это спецификация CSIDriver.

  • attachRequired (логическое значение)

    attachRequired указывает, что этот драйвер CSI требует операции attach (потому что он реализует метод CSI ControllerPublishVolume()), и что контроллер Kubernetes attach detach должен вызывать интерфейс прикрепления объёма, который проверяет состояние volumeattachment и ожидает, пока объём не будет подключён перед продолжением монтирования. CSI external-attacher координирует работу с драйвером CSI объёма и обновляет состояние volumeattachment, когда операция attach завершается. Если функция CSIDriverRegistry включена и значение установлено в false, операция attach будет пропущена. В противном случае операция attach будет вызвана.

    Это поле неизменяемо.

  • fsGroupPolicy (строка)

    fsGroupPolicy определяет, поддерживает ли базовый объём изменение владельца и разрешений объёма перед монтированием. Для получения дополнительной информации см. конкретные значения FSGroupPolicy.

    Это поле было неизменяемым в Kubernetes < 1.29 и теперь является изменяемым.

    По умолчанию используется ReadWriteOnceWithFSType, который будет проверять каждый объём, чтобы определить, должен ли Kubernetes изменять владение и разрешения объёма. При использовании политики по умолчанию определённая группа fsGroup будет применена только в том случае, если тип fstype определён, а режим доступа объёма содержит ReadWriteOnce.

  • podInfoOnMount (логическое значение)

    podInfoOnMount указывает, требует ли этот драйвер CSI дополнительной информации о pod (например, podName, podUID и т. д.) во время операций монтирования, если установлено значение true. Если установлено значение false, информация о pod не будет передаваться при монтировании. По умолчанию значение false.

    Драйвер CSI определяет podInfoOnMount как часть развертывания драйвера. Если значение true, Kubelet передаст информацию о pod как VolumeContext в вызовах CSI NodePublishVolume(). Драйвер CSI отвечает за парсинг и валидацию информации, переданной в качестве VolumeContext.

    Следующий VolumeContext будет передан, если podInfoOnMount установлено в true. Этот список может увеличиваться, но префикс будет использоваться. "csi.storage.k8s.io/pod.name": pod.Name "csi.storage.k8s.io/pod.namespace": pod.Namespace "csi.storage.k8s.io/pod.uid": string(pod.UID) "csi.storage.k8s.io/ephemeral": "true", если объём является временным встроенным объёмом, определённым CSIVolumeSource, в противном случае "false"

    "csi.storage.k8s.io/ephemeral" — это новая функция в Kubernetes 1.16. Она необходима только для драйверов, которые поддерживают как режим "Persistent", так и "Ephemeral" VolumeLifecycleMode. Другие драйверы могут отключить информацию о pod и/или игнорировать это поле. Поскольку Kubernetes 1.15 не поддерживает это поле, драйверы могут поддерживать только один режим при развертывании в таком кластере, и развертывание определяет этот режим, например, через параметр командной строки драйвера.

    Это поле было неизменяемым в Kubernetes < 1.29 и теперь является изменяемым.

  • requiresRepublish (логическое значение)

    requiresRepublish указывает, что драйвер CSI хочет, чтобы NodePublishVolume вызывался периодически для отражения любых возможных изменений в смонтированном объёме. По умолчанию значение false.

    Примечание: после успешного первого вызова NodePublishVolume последующие вызовы NodePublishVolume должны только обновлять содержимое объёма. Новые точки монтирования не будут видны запущенному контейнеру.

  • seLinuxMount (логическое значение)

    seLinuxMount указывает, поддерживает ли драйвер CSI параметр монтирования "-o context".

    Когда значение "true", драйвер CSI должен гарантировать, что все объёмы, предоставляемые этим драйвером CSI, могут быть смонтированы отдельно с различными -o context параметрами. Это характерно для хранилищ, которые предоставляют объёмы как файловые системы на блочных устройствах или как независимые общие объёмы. Kubernetes вызовет NodeStage / NodePublish с параметром монтирования "-o context=xyz", когда монтирует объём ReadWriteOncePod, используемый в Pod, для которого явно установлен контекст SELinux. В будущем это может быть расширено на другие режимы доступа к объёму. В любом случае Kubernetes будет гарантировать, что объём будет смонтирован только с одним контекстом SELinux.

    Когда значение "false", Kubernetes не будет передавать никаких специальных параметров монтирования SELinux драйверу. Это характерно для объёмов, которые представляют собой подкаталоги большей общей файловой системы.

    Значение по умолчанию "false".

  • storageCapacity (логическое значение)

    storageCapacity указывает, что драйвер CSI объёма хочет, чтобы планирование pod учитывало объём хранилища, который драйвер развертывания будет сообщать, создавая объекты CSIStorageCapacity с информацией о ёмкости, если значение установлено в true.

    Проверка может быть включена сразу же при развертывании драйвера. В этом случае предоставление новых объёмов с задержкой привязки приостановится до тех пор, пока развертывание драйвера не опубликует подходящий объект CSIStorageCapacity.

    В качестве альтернативы, драйвер может быть развернут с неопределённым или ложным значением поля и его можно будет изменить позже, когда информация о ёмкости хранилища будет опубликована.

    Это поле было неизменяемым в Kubernetes <= 1.22 и теперь является изменяемым.

  • tokenRequests ([]TokenRequest)

    Атомарно: будет заменено во время слияния

    tokenRequests указывает, что драйвер CSI нуждается в токенах учётных записей службы pod, для которого он монтирует объём, для выполнения необходимой аутентификации. Kubelet передаст токены в VolumeContext в вызовах CSI NodePublishVolume. Драйвер CSI должен разобрать и проверить следующий VolumeContext: "csi.storage.k8s.io/serviceAccount.tokens": { "<audience>": { "token": <token>, "expirationTimestamp": <timestamp окончания срока действия в формате RFC3339>, }, ... }

    Примечание: Аудитории в каждом TokenRequest должны быть разными, и не более одного токена может быть пустой строкой. Для получения нового токена после истечения срока действия можно использовать RequiresRepublish для периодического запуска NodePublishVolume.

    TokenRequest содержит параметры токена учётной записи службы.

    • tokenRequests.audience (строка), обязательный

      audience — это целевая аудитория токена в "TokenRequestSpec". По умолчанию она будет соответствовать аудиториям kube apiserver.

    • tokenRequests.expirationSeconds (int64)

      expirationSeconds — это срок действия токена в "TokenRequestSpec". У него такое же значение по умолчанию, как и в "ExpirationSeconds" в "TokenRequestSpec".

  • volumeLifecycleModes ([]string)

    Установлено: уникальные значения будут сохранены во время слияния

    volumeLifecycleModes определяет, какие типы объёмов поддерживает этот драйвер CSI. По умолчанию, если список пустой, используется "Persistent", что соответствует использованию, определённому в спецификации CSI и реализованному в Kubernetes через обычный механизм PV/PVC.

    Другой режим — "Ephemeral". В этом режиме объёмы определяются непосредственно в спецификации под с помощью CSIVolumeSource, и их жизненный цикл привязан к жизненному циклу этого pod. Драйверу необходимо учитывать это, так как он получит только вызов NodePublishVolume для такого объёма.

    Для получения дополнительной информации об реализации этого режима см. https://kubernetes-csi.github.io/docs/ephemeral-local-volumes.html Драйвер может поддерживать один или несколько режимов, и в будущем могут быть добавлены другие режимы.

    Это поле — бета-версия. Это поле неизменяемо.

CSIDriverList

CSIDriverList — это коллекция объектов CSIDriver.

  • apiVersion: storage.k8s.io/v1

  • kind: CSIDriverList

  • metadata (ListMeta)

    Стандартные метаданные списка. Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata

  • items ([]CSIDriver), обязательный

    items — это список CSIDriver

© 2024 The Kubernetes Authors | Documentation Distributed under CC BY 4.0
Copyright © 2024 The Linux Foundation ®. All rights reserved.
https://kubernetes.io/docs/reference/kubernetes-api/config-and-storage-resources/csi-driver-v1/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API