3장. CSINode [storage.k8s.io/v1]
- 설명
- CSINode는 노드에 설치된 모든 CSI 드라이버에 대한 정보를 보유합니다. CSI 드라이버는 CSINode 오브젝트를 직접 생성할 필요가 없습니다. node-driver-registrar 사이드카 컨테이너를 사용하는 한 kubelet은 kubelet 플러그인 등록의 일부로 CSI 드라이버의 CSINode 오브젝트를 자동으로 채웁니다. CSINode의 이름은 노드와 동일합니다. 오브젝트가 누락된 경우 노드에 사용 가능한 CSI 드라이버가 없거나 Kubelet 버전이 이 오브젝트를 생성하지 않을 만큼 충분히 낮은 것입니다. CSINode에는 해당 노드 오브젝트를 가리키는 OwnerReference가 있습니다.
- 유형
-
object
- 필수 항목
-
spec
-
3.1. 사양
속성 | 유형 | 설명 |
---|---|---|
|
| APIVersion은 버전이 지정된 이 오브젝트 표현의 스키마를 정의합니다. 서버는 인식된 스키마를 최신 내부 값으로 변환해야 하며, 인식되지 않는 값을 거부할 수 있습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources |
|
| kind는 이 오브젝트가 나타내는 REST 리소스에 해당하는 문자열 값입니다. 서버는 클라이언트에서 요청을 제출한 끝점에서 이를 유추할 수 있습니다. CamelCase로 업데이트할 수 없습니다. 자세한 내용은 https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds |
| 표준 오브젝트의 metadata. metadata.name은 Kubernetes 노드 이름이어야 합니다. | |
|
| CSINodeSpec에는 노드에 설치된 모든 CSI 드라이버의 사양에 대한 정보가 있습니다. |
3.1.1. .spec
- 설명
- CSINodeSpec에는 노드에 설치된 모든 CSI 드라이버의 사양에 대한 정보가 있습니다.
- 유형
-
object
- 필수 항목
-
드라이버
-
속성 | 유형 | 설명 |
---|---|---|
|
| 드라이버는 노드에 존재하는 모든 CSI 드라이버의 정보 목록입니다. 목록의 모든 드라이버가 제거되면 비어 있을 수 있습니다. |
|
| CSINodeDriver에는 노드에 설치된 하나의 CSI 드라이버의 사양에 대한 정보가 들어 있습니다. |
3.1.2. .spec.drivers
- 설명
- 드라이버는 노드에 존재하는 모든 CSI 드라이버의 정보 목록입니다. 목록의 모든 드라이버가 제거되면 비어 있을 수 있습니다.
- 유형
-
array
3.1.3. .spec.drivers[]
- 설명
- CSINodeDriver에는 노드에 설치된 하나의 CSI 드라이버의 사양에 대한 정보가 들어 있습니다.
- 유형
-
object
- 필수 항목
-
name
-
nodeID
-
속성 | 유형 | 설명 |
---|---|---|
|
| VolumeNodeResources는 볼륨 스케줄링을 위한 리소스 제한 세트입니다. |
|
| name은 이 오브젝트가 참조하는 CSI 드라이버의 이름을 나타냅니다. 해당 드라이버에 대한 CSI GetPluginName() 호출에서 반환한 이름과 동일해야 합니다. |
|
| 드라이버 관점에서 노드의 NODEID입니다. 이 필드를 사용하면 Kubernetes가 노드의 nomenclature를 공유하지 않는 스토리지 시스템과 통신할 수 있습니다. 예를 들어 Kubernetes는 지정된 노드를 "node1"로 참조할 수 있지만 스토리지 시스템은 "nodeA"와 동일한 노드를 참조할 수 있습니다. Kubernetes에서 특정 노드에 볼륨을 연결하기 위해 스토리지 시스템에 명령을 발행하는 경우 이 필드를 사용하여 스토리지 시스템이 이해할 ID를 사용하여 노드 이름을 참조할 수 있습니다(예: "node1" 대신 "nodeA"). 이 필드는 필수입니다. |
|
| topologyKeys는 드라이버에서 지원하는 키 목록입니다. 클러스터에서 드라이버를 초기화하면 이해할 수 있는 토폴로지 키 세트(예: "company.com/zone", "company.com/region")를 제공합니다. 노드에서 드라이버가 초기화되면 값과 함께 동일한 토폴로지 키를 제공합니다. kubelet은 이러한 토폴로지 키를 자체 노드 오브젝트의 라벨로 노출합니다. Kubernetes에서 프로비저닝을 인식하면 이 목록을 사용하여 노드 오브젝트에서 검색하고 드라이버로 다시 전달해야 하는 레이블을 결정할 수 있습니다. 다른 노드에서 다른 토폴로지 키를 사용할 수 있습니다. 드라이버에서 토폴로지를 지원하지 않는 경우 비어 있을 수 있습니다. |
3.1.4. .spec.drivers[].allocatable
- 설명
- VolumeNodeResources는 볼륨 스케줄링을 위한 리소스 제한 세트입니다.
- 유형
-
object
속성 | 유형 | 설명 |
---|---|---|
|
| count는 노드에서 사용할 수 있는 CSI 드라이버에서 관리하는 최대 고유 볼륨 수를 나타냅니다. 노드에 연결 및 마운트된 볼륨은 두 번이 아닌 한 번 사용되는 것으로 간주됩니다. 동일한 노드의 여러 Pod에서 공유하는 고유 볼륨에도 동일한 규칙이 적용됩니다. 이 필드를 지정하지 않으면 이 노드에서 지원되는 볼륨 수가 바인딩되지 않습니다. |