CSIStorageCapacity
apiVersion: storage.k8s.io/v1
import "k8s.io/api/storage/v1"
CSIStorageCapacity
CSIStorageCapacity хранит результат одного вызова CSI GetCapacity. Для данного StorageClass это описывает доступную емкость в определённом сегменте топологии. Это можно использовать при рассмотрении места для создания новых PersistentVolumes.
Например, это может выражаться следующим образом: - StorageClass "standard" имеет "1234 GiB" доступной в "topology.kubernetes.io/zone=us-east1" - StorageClass "localssd" имеет "10 GiB" доступной в "kubernetes.io/hostname=knode-abc123"
Следующие три случая все подразумевают, что доступная емкость отсутствует для определенной комбинации: - нет объекта с подходящей топологией и именем storage class - такой объект существует, но емкость не задана - такой объект существует, но емкость равна нулю
Производитель этих объектов может решить, какой подход более подходит.
Они используются kube-scheduler, когда CSI-драйвер выбирает планирование, учитывающее емкость, с помощью CSIDriverSpec.StorageCapacity. Планировщик сравнивает MaximumVolumeSize с запрошенным размером ожидающих томов, чтобы отфильтровать неподходящие узлы. Если MaximumVolumeSize не задан, он переходит к сравниванию с менее точной емкостью Capacity. Если и это не задано, планировщик предполагает, что емкость недостаточна, и пробует другой узел.
-
apiVersion: storage.k8s.io/v1
-
kind: CSIStorageCapacity
-
metadata (ObjectMeta)
Стандартные метаданные объекта. Имя не имеет конкретного смысла. Оно должно быть доменным поддоменом (допускаются точки, 253 символа). Для избежания конфликтов с другими CSI-драйверами в кластере рекомендуется использовать csisc-<uuid>, сгенерированное имя или имя обратного домена, заканчивающееся уникальным именем CSI-драйвера.
Объекты имеют пространства имён.
Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
-
storageClassName (строка), обязательно
storageClassName представляет имя StorageClass, к которому относится сообщаемая емкость. Оно должно соответствовать тем же требованиям, что и имя объекта StorageClass (не пустое, доменный поддомен). Если этот объект больше не существует, объект CSIStorageCapacity устарел и должен быть удалён его создателем. Это поле неизменяемо.
-
capacity (Quantity)
capacity — это значение, сообщённое CSI-драйвером в его GetCapacityResponse для GetCapacityRequest с топологией и параметрами, соответствующими предыдущим полям.
Семантика в настоящее время (спецификация CSI 1.2) определена следующим образом: доступная ёмкость в байтах хранилища, которое можно использовать для выделения томов. Если не установлено, эта информация в настоящее время недоступна.
-
maximumVolumeSize (Quantity)
maximumVolumeSize — это значение, сообщённое CSI-драйвером в его GetCapacityResponse для GetCapacityRequest с топологией и параметрами, соответствующими предыдущим полям.
Определено с версии CSI spec 1.4.0 как максимальный размер, который может быть использован в поле CreateVolumeRequest.capacity_range.required_bytes для создания тома с теми же параметрами, что и в GetCapacityRequest. Соответствующее значение в API Kubernetes — ResourceRequirements.Requests в запросе на том.
-
nodeTopology (LabelSelector)
nodeTopology определяет, какие узлы имеют доступ к хранилищу, для которого была сообщена емкость. Если не установлено, хранилище недоступно ни с одного узла в кластере. Если пусто, хранилище доступно со всех узлов. Это поле неизменяемо.
CSIStorageCapacityList
CSIStorageCapacityList — это коллекция объектов CSIStorageCapacity.
-
apiVersion: storage.k8s.io/v1
-
kind: CSIStorageCapacityList
-
metadata (ListMeta)
Стандартные метаданные списка Дополнительная информация: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
-
items ([]CSIStorageCapacity), обязательно
Map: уникальные значения в ключе name будут сохранены во время слияния
items — это список объектов CSIStorageCapacity.
© 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-storage-capacity-v1/