Spec-Zone.ru › Kubernetes 1.28

CSIDriver

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

apiVersion: storage.k8s.io/v1

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

CSIDriver

CSIDriver собирает информацию о драйвере объёма интерфейса хранения контейнеров (CSI), развернутом в кластере. Контроллер Kubernetes для присоединения и отсоединения использует этот объект для определения необходимости присоединения. Kubelet использует этот объект для определения необходимости передачи информации о под в момент монтирования. Объекты 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 (boolean)

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

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

  • fsGroupPolicy (string)

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

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

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

  • podInfoOnMount (boolean)

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

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

    Следующий VolumeConext будет передан, если 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. Она требуется только для драйверов, которые поддерживают оба режима VolumeLifecycleMode "Persistent" и "Ephemeral". Другие драйверы могут оставить информацию о под отключённой и/или проигнорировать это поле. Так как Kubernetes 1.15 не поддерживает это поле, драйверы могут поддерживать только один режим при развертывании в таком кластере, и развертывание определяет, какой это режим, например, через параметр командной строки драйвера.

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

  • requiresRepublish (boolean)

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

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

  • seLinuxMount (boolean)

    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 (boolean)

    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": <временная метка окончания срока действия в RFC3339>, }, ... }

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

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

    • tokenRequests.audience (string), необходимо

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

    • tokenRequests.expirationSeconds (int64)

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

  • volumeLifecycleModes ([]string)

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

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

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

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

Spec-Zone.ru

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