4장. CSIStorageCapacity [storage.k8s.io/v1]
- 설명
CSIStorageCapacity는 하나의 CSI GetCapacity 호출 결과를 저장합니다. 지정된 StorageClass의 경우 특정 토폴로지 세그먼트에서 사용 가능한 용량을 설명합니다. 이는 새 PersistentVolume을 인스턴스화할 위치를 고려할 때 사용할 수 있습니다.
예를 들어, StorageClass "standard"에는 "topology.kubernetes.io/zone=us-east1"에서 사용할 수 있는 "1234GiB" - StorageClass "localssd"에는 "kubernetes.io/hostname=knode-abc123"에서 "10GiB"를 사용할 수 있습니다.
다음 세 가지 경우 모두 특정 조합에 사용할 수 있는 용량이 없음을 의미합니다. - 적절한 토폴로지 및 스토리지 클래스 이름이 있는 오브젝트가 없음 - 이러한 오브젝트가 존재하지만 용량은 설정되지 않음 - 이러한 객체는 존재하지만 용량은 0입니다.
이러한 오브젝트의 생산자는 어떤 접근 방식이 더 적합한지 결정할 수 있습니다.
CSI 드라이버가 CSIDriverSpec.StorageCapacity를 사용하여 용량 인식 스케줄링을 선택할 때 kube-scheduler에서 사용합니다. 스케줄러는 MaximumVolumeSize를 보류 볼륨의 요청된 크기와 비교하여 적합하지 않은 노드를 필터링합니다. MaximumVolumeSize가 설정되지 않은 경우 덜 정확한 용량과 비교하면 됩니다. 또한 설정되지 않은 경우 스케줄러는 해당 용량이 충분하지 않다고 가정하고 다른 노드를 시도합니다.
- 유형
-
object
- 필수 항목
-
storageClassName
-
4.1. 사양
속성 | 유형 | 설명 |
---|---|---|
|
| APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
| capacity는 이전 필드와 일치하는 토폴로지 및 매개변수를 사용하여 GetCapacityRequest에 대해 GetCapacityResponse의 CSI 드라이버에서 보고하는 값입니다. 의미 체계는 현재 (CSI 사양 1.2)로 정의됩니다. 사용 가능한 용량은 볼륨을 프로비저닝하는 데 사용할 수 있는 스토리지의 바이트 단위로 정의됩니다. 설정되지 않은 경우 현재 해당 정보를 사용할 수 없습니다. | |
|
| kind는 이 오브젝트가 나타내는 REST 리소스에 해당하는 문자열 값입니다. 서버는 클라이언트에서 요청을 제출한 끝점에서 이를 유추할 수 있습니다. CamelCase로 업데이트할 수 없습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| maximumVolumeSize는 이전 필드와 일치하는 토폴로지 및 매개변수를 사용하여 GetCapacityRequest에 대해 GetCapacityResponse의 CSI 드라이버에서 보고하는 값입니다. CSI 사양 1.4.0은 CreateVolumeRequest.capacity_range.required_bytes 필드에서 사용할 수 있는 가장 큰 크기로 정의되므로 GetCapacityRequest의 매개변수와 동일한 매개변수를 사용하여 볼륨을 생성합니다. Kubernetes API의 해당 값은 볼륨 클레임의 ResourceRequirements.Requests입니다. | |
| 표준 오브젝트의 메타데이터입니다. 이름에는 특별한 의미가 없습니다. DNS 하위 도메인이어야 합니다(할당할 수 있는 점, 253자). 클러스터의 다른 CSI 드라이버와 충돌하지 않도록 권장 사항은 csisc-<uuid>, 생성된 이름 또는 고유 CSI 드라이버 이름으로 끝나는 역방향 도메인 이름을 사용하는 것입니다. 오브젝트는 네임스페이스가 지정됩니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata | |
| NodeTopology는 보고된 용량을 위한 스토리지에 액세스할 수 있는 노드를 정의합니다. 설정되지 않은 경우 클러스터의 노드에서 스토리지에 액세스할 수 없습니다. 비어 있는 경우 모든 노드에서 스토리지에 액세스할 수 있습니다. 이 필드는 변경할 수 없습니다. | |
|
| storageClassName은 보고된 용량이 적용되는 StorageClass의 이름을 나타냅니다. StorageClass 오브젝트의 이름과 동일한 요구 사항(비어 있음, DNS 하위 도메인)을 충족해야 합니다. 해당 오브젝트가 더 이상 존재하지 않는 경우 CSIStorageCapacity 오브젝트는 사용되지 않으며 작성자가 제거해야 합니다. 이 필드는 변경할 수 없습니다. |