Skip to main content
이 제품의 최신 릴리즈를 사용할 수 있습니다.
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

Kubernetes 및 Trident 오브젝트

기여자

REST API를 사용하여 리소스 객체를 읽고 쓰면서 Kubernetes 및 Trident와 상호 작용할 수 있습니다. Kubernetes 및 Trident, Trident 및 스토리지와 Kubernetes 및 스토리지 간의 관계를 결정하는 몇 가지 리소스 개체가 있습니다. 이러한 오브젝트 중 일부는 Kubernetes를 통해 관리되며 나머지는 Trident를 통해 관리됩니다.

개체가 서로 어떻게 상호 작용합니까?

오브젝트, 목표 및 상호 작용 방식을 이해하는 가장 쉬운 방법은 Kubernetes 사용자의 스토리지에 대한 단일 요청을 따르는 것입니다.

  1. 사용자가 이전에 관리자가 구성한 Kubernetes에서 특정 크기의 StorageClass 새로운 것을 요청하는 PersistentVolume 가 생성됩니다 PersistentVolumeClaim.

  2. Kubernetes에서는 StorageClass Trident를 프로비저닝으로 식별하고 요청된 클래스에 대한 볼륨을 프로비저닝하는 방법을 Trident에 알려주는 매개 변수를 포함합니다.

  3. Trident는 일치하는 항목을 식별하고 StoragePools 클래스에 대한 볼륨을 프로비저닝하는 데 사용할 수 있는 동일한 이름을 사용하여 해당 StorageClass 이름을 Backends 확인합니다.

  4. Trident은 일치하는 백엔드에서 스토리지를 프로비저닝하고 두 개의 오브젝트를 생성합니다.: Kubernetes에서 볼륨을 검색, 마운트 및 처리하는 방법을 Kubernetes에 알려주는 Kubernetes와 실제 스토리지 간의 관계를 유지하는 Trident의 볼륨을 PersistentVolume 생성합니다. PersistentVolume

  5. Kubernetes는 를 새로운 PersistentVolume 에 바인딩합니다. PersistentVolumeClaim PersistentVolume이 실행되는 모든 호스트에서 마운트가 포함된 Pod PersistentVolumeClaim

  6. 사용자가 Trident를 가리키는 를 사용하여 기존 PVC의 VolumeSnapshotClassVolumeSnapshot 작성합니다.

  7. Trident는 PVC와 연결된 볼륨을 식별하고 백엔드에 볼륨의 스냅샷을 생성합니다. `VolumeSnapshotContent`스냅샷을 식별하는 방법에 대해 Kubernetes에 지시하는 도 생성합니다.

  8. 사용자는 소스로 를 사용하여 VolumeSnapshot 을 만들 수 PersistentVolumeClaim 있습니다.

  9. Trident는 필요한 스냅샷을 식별하고 및 를 Volume 생성하는 것과 관련된 동일한 단계를 PersistentVolume 수행합니다.

팁 Kubernetes 오브젝트에 대한 자세한 내용은 Kubernetes 설명서의 섹션을 읽어보는 것이 좋습니다 "영구 볼륨".

Kubernetes PersistentVolumeClaim 오브젝트

Kubernetes PersistentVolumeClaim 개체는 Kubernetes 클러스터 사용자가 만든 스토리지에 대한 요청입니다.

Trident는 표준 사양 외에도 사용자가 백엔드 구성에서 설정한 기본값을 무효화하려는 경우 다음 볼륨별 주석을 지정할 수 있도록 합니다.

주석 볼륨 옵션 지원되는 드라이버

trident.netapp.io/fileSystem

파일 시스템

ONTAP-SAN, solidfire-SAN, ONTAP-SAN - 경제성

trident.netapp.io/cloneFromPVC

CloneSourceVolume

ONTAP-NAS, ONTAP-SAN, solidfire-SAN, Azure-NetApp-파일, GCP-CV, ONTAP-SAN - 경제성

trident.netapp.io/splitOnClone

SplitOnClone 을 참조하십시오

ONTAP-NAS, ONTAP-SAN

trident.netapp.io/protocol

프로토콜

모두

trident.netapp.io/exportPolicy

내보내기 정책

ONTAP-NAS, ONTAP-NAS-이코노미, ONTAP-NAS-Flexgroup

trident.netapp.io/snapshotPolicy

스냅샷 정책

ONTAP-NAS, ONTAP-NAS-이코노미, ONTAP-NAS-Flexgroup, ONTAP-SAN

trident.netapp.io/snapshotReserve

snapshotReserve

ONTAP-NAS, ONTAP-NAS-flexgroup, ONTAP-SAN, GCP-CV

trident.netapp.io/snapshotDirectory

스냅샷 디렉토리

ONTAP-NAS, ONTAP-NAS-이코노미, ONTAP-NAS-Flexgroup

trident.netapp.io/unixPermissions

unixPermissions

ONTAP-NAS, ONTAP-NAS-이코노미, ONTAP-NAS-Flexgroup

trident.netapp.io/blockSize

블록 크기

solidfire-SAN

생성된 PV에 Reclaim 정책이 있는 경우 Delete, Trident는 PV가 해제될 때(즉, 사용자가 PVC를 삭제할 때) PV와 Backing Volume을 모두 삭제한다. 삭제 작업이 실패할 경우 Trident는 PV를 해당 상태로 표시하고 성공할 때까지 또는 PV를 수동으로 삭제할 때까지 주기적으로 작업을 다시 시도합니다. PV가 정책을 사용하는 경우 Retain Trident는 이 정책을 무시하고 관리자가 Kubernetes 및 백엔드에서 이 정책을 정리하여 볼륨을 제거하기 전에 백업하거나 검사할 것이라고 가정합니다. PV를 삭제해도 Trident에서 백업 볼륨을 삭제하지 않습니다. REST API를 사용하여 (`tridentctl`제거해야 합니다.)

Trident는 CSI 사양을 사용하여 볼륨 스냅샷 생성을 지원합니다. 볼륨 스냅샷을 생성하고 이를 데이터 소스로 사용하여 기존 PVC를 복제할 수 있습니다. 이렇게 하면 PVS의 시점 복제본을 스냅샷 형태로 Kubernetes에 표시할 수 있습니다. 그런 다음 스냅샷을 사용하여 새 PVS를 생성할 수 있습니다. `On-Demand Volume Snapshots`이 방법이 어떻게 작동하는지 살펴보십시오.

Trident는 또한 cloneFromPVC 클론을 생성하기 위한 및 splitOnClone 주석을 제공합니다. CSI 구현을 사용하지 않고도 이러한 주석을 사용하여 PVC를 복제할 수 있습니다.

예를 들어, 사용자가 이미 PVC를 호출한 경우 mysql 와 같은 주석을 사용하여 trident.netapp.io/cloneFromPVC: mysql 호출된 새 PVC를 생성할 수 mysqlclone 있습니다. 이 주석을 설정하면 Trident가 볼륨을 처음부터 프로비저닝하는 대신 MySQL PVC에 해당하는 볼륨을 클론합니다.

다음 사항을 고려하십시오.

  • 유휴 볼륨의 클론을 생성하는 것이 좋습니다.

  • PVC와 그 클론은 동일한 Kubernetes 네임스페이스에서 동일한 스토리지 클래스를 가져야 합니다.

  • ontap-san 드라이버에서는 와 ontap-nas 함께 trident.netapp.io/cloneFromPVC PVC 주석을 설정하는 것이 좋습니다 trident.netapp.io/splitOnClone. trident.netapp.io/splitOnClone`로 `true 설정하면 Trident은 클론 복제된 볼륨을 상위 볼륨에서 분리하므로 스토리지 효율성이 약간 떨어지는 비용을 부담하여 클론 복제된 볼륨의 수명 주기를 상위 볼륨에서 완전히 분리합니다. 이 설정을 설정하거나 false 설정하지 trident.netapp.io/splitOnClone 않으면 상위 볼륨과 클론 볼륨 간에 종속성을 생성하는 대신 백엔드의 공간 소비가 줄어들어 클론이 먼저 삭제되지 않는 한 상위 볼륨을 삭제할 수 없게 됩니다. 클론을 분할하는 것이 올바른 시나리오는 빈 데이터베이스 볼륨을 복제하여 볼륨과 해당 클론이 크게 달라질 것으로 예상되며 ONTAP에서 제공하는 스토리지 효율성의 이점을 얻지 못하는 경우입니다.

    `sample-input`디렉토리에는 Trident와 함께 사용할 PVC 정의의 예가 포함되어 있습니다. Trident 볼륨과 관련된 매개 변수 및 설정에 대한 자세한 설명은 을 참조하십시오.

Kubernetes PersistentVolume 오브젝트

Kubernetes PersistentVolume 오브젝트는 Kubernetes 클러스터에 사용할 수 있는 스토리지 부분을 나타냅니다. 사용 포드와 독립적인 라이프 사이클이 있습니다.

참고 Trident은 PersistentVolume 오브젝트를 생성하고 이 오브젝트가 프로비저닝하는 볼륨을 기반으로 Kubernetes 클러스터에 자동으로 등록합니다. 스스로 관리할 수 없습니다.

Trident 기반 PVC를 생성할 때 StorageClass Trident는 해당 저장소 클래스를 사용하여 새 볼륨을 프로비저닝하고 해당 볼륨에 대한 새 PV를 등록합니다. 프로비저닝 볼륨과 해당 PV를 구성할 때 Trident는 다음 규칙을 따릅니다.

  • Trident는 Kubernetes의 PV 이름과 스토리지 프로비저닝에 사용되는 내부 이름을 생성합니다. 두 경우 모두 이름은 해당 범위에서 고유합니다.

  • 볼륨의 크기는 플랫폼에 따라 가장 가까운 할당 가능한 수량으로 반올림될 수 있지만 PVC에서 요청된 크기와 최대한 가깝게 일치합니다.

Kubernetes StorageClass 오브젝트

일련의 속성을 사용하여 스토리지를 프로비저닝하기 위해 Kubernetes StorageClass 오브젝트는 에서 이름으로 PersistentVolumeClaims 지정됩니다. 스토리지 클래스 자체는 사용할 구축 소유자를 식별하고 프로비저닝이 이해할 수 있는 조건으로 해당 자산 세트를 정의합니다.

관리자가 만들고 관리해야 하는 두 가지 기본 개체 중 하나입니다. 다른 하나는 Trident 백엔드 객체입니다.

Trident를 사용하는 Kubernetes StorageClass 개체는 다음과 같습니다.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: <Name>
provisioner: csi.trident.netapp.io
mountOptions: <Mount Options>
parameters:
  <Trident Parameters>
allowVolumeExpansion: true
volumeBindingMode: Immediate

이러한 매개 변수는 Trident에만 해당되며 Trident에 클래스에 볼륨을 프로비저닝하는 방법을 알려줍니다.

스토리지 클래스 매개 변수는 다음과 같습니다.

속성 유형 필수 요소입니다 설명

속성

[string] 문자열을 매핑합니다

아니요

아래의 특성 섹션을 참조하십시오

스토리지 풀

Map [string] StringList 입니다

아니요

내의 스토리지 풀 목록에 백엔드 이름 매핑

추가 StoragePools

Map [string] StringList 입니다

아니요

내의 스토리지 풀 목록에 백엔드 이름 매핑

excludeStoragePools를 참조하십시오

Map [string] StringList 입니다

아니요

내의 스토리지 풀 목록에 백엔드 이름 매핑

스토리지 속성 및 가능한 값은 스토리지 풀 선택 특성 및 Kubernetes 속성으로 분류할 수 있습니다.

스토리지 풀 선택 특성입니다

이러한 매개 변수는 지정된 유형의 볼륨을 프로비저닝하는 데 사용해야 하는 Trident 관리 스토리지 풀을 결정합니다.

속성 유형 제공합니다 요청하십시오 에 의해 지원됩니다

미디어 1

문자열

HDD, 하이브리드, SSD

풀에는 이 유형의 미디어가 포함되어 있으며, 하이브리드는 둘 모두를 의미합니다

지정된 미디어 유형입니다

ONTAP-NAS, ONTAP-NAS-이코노미, ONTAP-NAS-Flexgroup, ONTAP-SAN, solidfire-SAN

프로비저닝 유형

문자열

얇고 두껍습니다

풀은 이 프로비저닝 방법을 지원합니다

프로비저닝 방법이 지정되었습니다

Thick: All ONTAP; Thin: All ONTAP & solidfire-SAN

백엔드 유형

문자열

ONTAP-NAS, ONTAP-NAS-이코노미, ONTAP-NAS-Flexgroup, ONTAP-SAN, solidfire-SAN, GCP-CV, Azure-NetApp-파일, ONTAP-SAN-이코노미

풀이 이 백엔드 유형에 속합니다

백엔드가 지정되었습니다

모든 드라이버

스냅샷 수

불입니다

참, 거짓

풀은 스냅샷이 있는 볼륨을 지원합니다

스냅샷이 활성화된 볼륨

ONTAP-NAS, ONTAP-SAN, solidfire-SAN, GCP-CV

복제

불입니다

참, 거짓

풀은 볼륨 클론을 지원합니다

클론이 활성화된 볼륨

ONTAP-NAS, ONTAP-SAN, solidfire-SAN, GCP-CV

암호화

불입니다

참, 거짓

풀은 암호화된 볼륨을 지원합니다

암호화가 활성화된 볼륨입니다

ONTAP-NAS, ONTAP-NAS-이코노미, ONTAP-NAS-Flexgroups, ONTAP-SAN

IOPS

내부

양의 정수입니다

풀은 이 범위에서 IOPS를 보장할 수 있습니다

볼륨은 이러한 IOPS를 보장합니다

solidfire-SAN

1: ONTAP Select 시스템에서 지원되지 않습니다

대부분의 경우 요청된 값이 프로비저닝에 직접적인 영향을 미치며, 예를 들어 일반 프로비저닝을 요청하면 볼륨이 걸쭉하게 프로비저닝됩니다. 하지만 Element 스토리지 풀은 제공된 IOPS 최소 및 최대값을 사용하여 요청된 값이 아닌 QoS 값을 설정합니다. 이 경우 요청된 값은 스토리지 풀을 선택하는 데만 사용됩니다.

을 혼자 사용하여 특정 등급의 요구사항을 충족하는 데 필요한 스토리지 품질을 모델링하는 것이 좋습니다 attributes. Trident는 사용자가 지정한 의 _ALL_과(와) 일치하는 스토리지 풀을 자동으로 검색하여 attributes 선택합니다.

를 사용하여 클래스에 적합한 풀을 자동으로 선택할 수 없는 경우 attributesadditionalStoragePools 매개 변수를 사용하여 storagePools 풀을 더 구체화하거나 특정 풀 세트를 선택할 수도 있습니다.

매개 변수를 사용하여 지정된 풀과 일치하는 풀 세트를 추가로 제한할 attributesstoragePools 있습니다. 즉, Trident는 및 storagePools 매개 변수로 식별되는 풀의 교집합을 attributes 프로비저닝에 사용합니다. 매개 변수만 사용하거나 둘 다 함께 사용할 수 있습니다.

매개 변수를 사용하면 및 storagePools 매개 변수로 선택한 풀에 관계없이 Trident에서 프로비저닝에 사용하는 풀 세트를 확장할 attributesadditionalStoragePools 있습니다.

매개 변수를 사용하여 Trident에서 프로비저닝에 사용하는 풀 세트를 필터링할 수 excludeStoragePools 있습니다. 이 매개 변수를 사용하면 일치하는 풀이 모두 제거됩니다.

additionalStoragePools 매개 변수에서 storagePools 각 항목은 형식으로 <backend>:<storagePoolList>`지정됩니다. 여기서 는 지정된 백엔드에 대해 쉼표로 구분된 스토리지 풀 목록입니다. `<storagePoolList> 예를 들어 에 대한 값은 additionalStoragePools 다음과 ontapnas_192.168.1.100:aggr1,aggr2;solidfire_192.168.1.101:bronze`같을 수 있습니다. 이러한 목록에는 백엔드 및 목록 값 모두에 대한 regex 값이 적용됩니다. 을 사용하여 백엔드 및 해당 풀의 목록을 가져올 수 `tridentctl get backend 있습니다.

Kubernetes 특성

이러한 특성은 동적 프로비저닝 중 Trident가 스토리지 풀/백엔드를 선택하는 데 아무런 영향을 주지 않습니다. 대신 이러한 특성은 Kubernetes 영구 볼륨에서 지원하는 매개 변수만 제공합니다. 작업자 노드는 파일 시스템 생성 작업을 담당하며 xfsprogs와 같은 파일 시스템 유틸리티가 필요할 수 있습니다.

속성 유형 설명 관련 드라이버 Kubernetes 버전

fsType입니다

문자열

ext4, ext3, xfs

블록 볼륨의 파일 시스템 유형입니다

solidfire-SAN, ONTAP-NAS, ONTAP-NAS-이코노미, ONTAP-NAS-Flexgroup, ONTAP-SAN, ONTAP-SAN - 경제성

모두

allowVolumeExpansion

부울

참, 거짓

PVC 크기 증가에 대한 지원을 활성화 또는 비활성화합니다

ONTAP-NAS, ONTAP-NAS-이코노미, ONTAP-NAS-Flexgroup, ONTAP-SAN, ONTAP-SAN-이코노미, solidfire-SAN, GCP-CV, Azure-NetApp-파일

1.11 이상

볼륨BindingMode 를 선택합니다

문자열

Immediate, WaitForFirstConsumer입니다

볼륨 바인딩 및 동적 프로비저닝이 수행될 시기를 선택합니다

모두

1.19-1.26

팁
  • fsType`매개 변수는 SAN LUN에 대해 원하는 파일 시스템 유형을 제어하는 데 사용됩니다. 또한, Kubernetes는 스토리지 클래스에 의 존재를 사용하여 `fsType 파일 시스템이 있음을 나타냅니다. 볼륨 소유권은 가 설정된 경우에만 Pod의 보안 컨텍스트를 fsType 사용하여 제어할 수 fsGroup 있습니다. 컨텍스트를 사용한 볼륨 소유권 설정에 대한 개요는 fsGroup"Kubernetes: Pod 또는 컨테이너의 보안 컨텍스트를 구성합니다"참조하십시오. Kubernetes는 fsGroup 다음과 같은 경우에만 값을 적용합니다.

    • fsType 는 스토리지 클래스에서 설정됩니다.

    • PVC 액세스 모드는 RWO입니다.

    NFS 스토리지 드라이버의 경우 파일 시스템이 NFS 내보내기의 일부로 이미 존재합니다. fsGroup`스토리지 클래스를 사용하려면 를 지정해야 `fsType 합니다. 또는 null이 아닌 값으로 설정할 수 있습니다. nfs

  • 볼륨 확장에 대한 자세한 내용은 을 "볼륨 확장"참조하십시오.

  • Trident 설치 관리자 번들은 에서 Trident와 함께 사용할 수 있는 몇 가지 예제 스토리지 클래스 정의를 sample-input/storage-class-*.yaml제공합니다. Kubernetes 스토리지 클래스를 삭제하면 해당 Trident 스토리지 클래지도 삭제됩니다.

Kubernetes VolumeSnapshotClass 오브젝트

Kubernetes VolumeSnapshotClass 오브젝트는 과 `StorageClasses`유사합니다. 이 기능을 사용하면 여러 스토리지 클래스를 정의할 수 있으며, 스냅샷을 필요한 스냅샷 클래스와 연결하기 위해 볼륨 스냅숏에서 참조할 수 있습니다. 각 볼륨 스냅샷은 단일 볼륨 스냅샷 클래스와 연결됩니다.

스냅샷을 생성하려면 관리자가 를 VolumeSnapshotClass 정의해야 합니다. 볼륨 스냅샷 클래스는 다음과 같은 정의로 생성됩니다.

apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
  name: csi-snapclass
driver: csi.trident.netapp.io
deletionPolicy: Delete
`driver`클래스의 볼륨 스냅샷에 대한 요청이 Trident에 의해 처리되도록 Kubernetes에 `csi-snapclass` 지정합니다. 는 `deletionPolicy` 스냅샷을 삭제해야 할 때 수행할 작업을 지정합니다.  `deletionPolicy`를 로 설정하면 `Delete` 스냅샷이 삭제될 때 스토리지 클러스터의 기본 스냅샷과 볼륨 스냅샷 객체가 제거됩니다. 또는 로 설정하면 `Retain` `VolumeSnapshotContent` 및 물리적 스냅샷이 보존됩니다.

Kubernetes VolumeSnapshot 오브젝트

Kubernetes VolumeSnapshot 개체는 볼륨의 스냅샷 생성을 위한 요청입니다. PVC는 사용자가 볼륨에 대해 요청하는 것처럼 볼륨 스냅샷은 사용자가 기존 PVC의 스냅샷을 생성하도록 요청하는 것입니다.

볼륨 스냅샷 요청이 들어오면 Trident는 백엔드에서 볼륨의 스냅샷 생성을 자동으로 관리하고 고유한 개체를 생성하여 스냅샷을 표시합니다
VolumeSnapshotContent. 기존 PVC에서 스냅샷을 생성하고 새 PVC를 생성할 때 스냅샷을 DataSource로 사용할 수 있습니다.

참고 VolumeSnapshot의 생수는 소스 PVC와는 독립적입니다. 소스 PVC가 삭제된 후에도 스냅샷이 지속됩니다. 연관된 스냅샷이 있는 PVC를 삭제할 때 Trident는 이 PVC에 대한 백업 볼륨을 * Deleting * 상태로 표시하지만 완전히 제거하지는 않습니다. 연결된 모든 스냅샷이 삭제되면 볼륨이 제거됩니다.

Kubernetes VolumeSnapshotContent 오브젝트

Kubernetes VolumeSnapshotContent 개체는 이미 프로비저닝된 볼륨에서 생성된 스냅샷을 나타냅니다. 이 스냅샷은 A와 유사하며 PersistentVolume 스토리지 클러스터에서 프로비저닝된 스냅샷을 나타냅니다. 및 PersistentVolume 객체와 마찬가지로 PersistentVolumeClaim 스냅샷이 생성될 때 VolumeSnapshotContent 객체는 스냅샷 생성을 요청한 객체에 대한 일대일 매핑을 VolumeSnapshot 유지합니다.

`VolumeSnapshotContent`객체에는 와 같이 스냅샷을 고유하게 식별하는 세부 정보가 `snapshotHandle` 포함됩니다.  `snapshotHandle`PV의 이름과 개체 이름의 고유한 조합입니다. `VolumeSnapshotContent`

스냅샷 요청이 들어오면 Trident가 백엔드에 스냅샷을 생성합니다. 스냅샷이 생성된 후 Trident는 개체를 구성하여 VolumeSnapshotContent 스냅샷을 Kubernetes API에 노출합니다.

참고 일반적으로 오브젝트를 관리할 필요가 VolumeSnapshotContent 없습니다. 단, Astra Trident 외부에 를 생성하려는 경우에는 "볼륨 스냅샷을 가져옵니다"예외입니다.

Kubernetes CustomResourceDefinition 오브젝트

Kubernetes 사용자 지정 리소스는 관리자가 정의하며 비슷한 객체를 그룹화하는 데 사용되는 Kubernetes API의 엔드포인트입니다. Kubernetes에서는 오브젝트 컬렉션을 저장하기 위한 사용자 지정 리소스의 생성을 지원합니다. 을 실행하여 이러한 리소스 정의를 가져올 수 kubectl get crds 있습니다.

사용자 정의 리소스 정의(CRD) 및 관련 오브젝트 메타데이터는 Kubernetes에서 메타데이터 저장소에 저장됩니다. 따라서 Trident를 위한 별도의 저장소가 필요하지 않습니다.

Astra Trident는 오브젝트를 사용하여 CustomResourceDefinition Trident 백엔드, Trident 스토리지 클래스 및 Trident 볼륨과 같은 Trident 오브젝트의 ID를 유지합니다. 이러한 오브젝트는 Trident에서 관리합니다. 또한 CSI 볼륨 스냅샷 프레임워크는 볼륨 스냅샷을 정의하는 데 필요한 일부 CRD를 소개합니다.

CRD는 Kubernetes를 구성하는 것입니다. 위에 정의된 리소스의 객체는 Trident에 의해 생성됩니다. 간단히 말해, 을 사용하여 백엔드를 생성하면 tridentctl Kubernetes에서 사용할 수 있도록 해당 tridentbackends CRD 개체가 생성됩니다.

다음은 Trident의 CRD에 대해 고려해야 할 몇 가지 사항입니다.

  • Trident가 설치되면 일련의 CRD가 생성되어 다른 리소스 유형과 마찬가지로 사용할 수 있습니다.

  • 명령을 사용하여 Trident를 제거하면 tridentctl uninstall Trident Pod가 삭제되지만 생성된 CRD는 정리되지 않습니다. Trident를 완전히 제거하고 처음부터 다시 구성하는 방법은 을 참조하십시오"Trident를 제거합니다".

Astra Trident StorageClass 오브젝트

Trident은 Provisioner 필드에 지정된 csi.trident.netapp.io Kubernetes 오브젝트와 일치하는 스토리지 클래스를 StorageClass 생성합니다. 스토리지 클래스 이름은 이 클래스가 나타내는 Kubernetes 개체의 이름과 StorageClass 일치합니다.

참고 Kubernetes에서 이러한 오브젝트는 Trident을 Provisioner로 사용하는 Kubernetes를 등록할 때 자동으로 StorageClass 생성됩니다.

스토리지 클래스는 볼륨에 대한 일련의 요구 사항으로 구성됩니다. Trident는 이러한 요구 사항을 각 스토리지 풀에 있는 속성과 일치시킵니다. 일치하는 경우 해당 스토리지 풀이 해당 스토리지 클래스를 사용하여 볼륨을 프로비저닝할 수 있는 유효한 타겟입니다.

REST API를 사용하여 스토리지 클래스를 직접 정의하는 스토리지 클래스 구성을 생성할 수 있습니다. 하지만 Kubernetes 구축의 경우 새 Kubernetes 오브젝트를 등록할 때 새 Kubernetes 오브젝트를 생성할 것으로 StorageClass 예상됩니다.

Astra Trident 백엔드 개체

백엔드는 Trident가 볼륨을 프로비저닝하는 스토리지 공급자를 나타냅니다. 단일 Trident 인스턴스가 원하는 수의 백엔드를 관리할 수 있습니다.

참고 이것은 직접 만들고 관리하는 두 가지 개체 유형 중 하나입니다. 다른 하나는 Kubernetes StorageClass 개체입니다.

이러한 개체를 구성하는 방법에 대한 자세한 내용은 을 "백엔드 구성 중"참조하십시오.

Astra Trident StoragePool 오브젝트

스토리지 풀은 각 백엔드에서 용량 할당에 사용할 수 있는 고유한 위치를 나타냅니다. ONTAP의 경우 SVM에 있는 애그리게이트와 대응합니다. NetApp HCI/SolidFire의 경우 관리자 지정 QoS 밴드에 해당합니다. Cloud Volumes Service의 경우 클라우드 공급자 지역에 해당합니다. 각 스토리지 풀에는 고유한 스토리지 특성 세트가 있으며, 이 특성 집합은 성능 특성과 데이터 보호 특성을 정의합니다.

다른 오브젝트와 달리 스토리지 풀 후보 는 항상 자동으로 검색되고 관리됩니다.

Astra Trident Volume 오브젝트

볼륨은 NFS 공유 및 iSCSI LUN과 같은 백엔드 엔드포인트로 구성된 기본 프로비저닝 단위입니다. Kubernetes에서 이러한 항목은 에 직접 PersistentVolumes 대응합니다. 볼륨을 생성할 때 볼륨의 용량을 할당할 수 있는 위치와 크기를 결정하는 스토리지 클래스가 있는지 확인합니다.

참고
  • Kubernetes에서 이러한 오브젝트는 자동으로 관리됩니다. 프로비저닝 Trident를 보려면 해당 Trident를 확인하십시오.

  • 연결된 스냅샷이 있는 PV를 삭제하면 해당 Trident 볼륨이 * Deleting * 상태로 업데이트됩니다. Trident 볼륨을 삭제하려면 볼륨의 스냅샷을 제거해야 합니다.

볼륨 구성은 프로비저닝된 볼륨에 있어야 하는 속성을 정의합니다.

속성 유형 필수 요소입니다 설명

버전

문자열

아니요

Trident API 버전("1")

이름

문자열

생성할 볼륨의 이름입니다

storageClass 를 선택합니다

문자열

볼륨을 프로비저닝할 때 사용할 스토리지 클래스입니다

크기

문자열

용량 할당할 볼륨의 크기(바이트)입니다

프로토콜

문자열

아니요

사용할 프로토콜 유형;"파일" 또는 "블록"

내부 이름

문자열

아니요

스토리지 시스템에 있는 객체의 이름으로, Trident에서 생성

CloneSourceVolume

문자열

아니요

ONTAP(NAS, SAN) 및 SolidFire - *: 복제할 볼륨의 이름입니다

SplitOnClone 을 참조하십시오

문자열

아니요

ONTAP(NAS, SAN): 상위 클론에서 클론을 분할합니다

스냅샷 정책

문자열

아니요

ONTAP - *: 사용할 스냅샷 정책

snapshotReserve

문자열

아니요

ONTAP - *: 스냅숏용으로 예약된 볼륨의 비율입니다

내보내기 정책

문자열

아니요

ONTAP-NAS *: 사용할 엑스포트 정책

스냅샷 디렉토리

불입니다

아니요

ONTAP-NAS *: 스냅샷 디렉토리가 표시되는지 여부를 나타냅니다

unixPermissions

문자열

아니요

ONTAP-NAS *: 초기 UNIX 권한

블록 크기

문자열

아니요

SolidFire - *: 블록/섹터 크기

파일 시스템

문자열

아니요

파일 시스템 유형입니다

Trident는 internalName 볼륨을 생성할 때 생성됩니다. 이 단계는 두 단계로 구성됩니다. 먼저 저장소 접두사(백엔드 구성의 기본값 또는 접두사)를 볼륨 이름에 접두사로 붙이고 trident 양식 이름이 <prefix>-<volume-name> 만들어집니다. 그런 다음 백엔드에서 허용되지 않는 문자를 대체하여 이름을 삭제하는 작업을 진행합니다. ONTAP 백엔드의 경우 하이픈을 밑줄로 바꿉니다(따라서 내부 이름은 이 됨 <prefix>_<volume-name>). 요소 백엔드의 경우 밑줄을 하이픈으로 바꿉니다.

볼륨 구성을 사용하여 REST API를 사용하여 볼륨을 직접 프로비저닝할 수 있지만, Kubernetes 구축에서는 대부분의 사용자가 표준 Kubernetes 방법을 사용할 것으로 PersistentVolumeClaim 예상됩니다. Trident는 프로비저닝 프로세스의 일부로 이 볼륨 개체를 자동으로 만듭니다.

Astra Trident Snapshot 오브젝트

스냅샷은 볼륨의 시점 복제본으로, 새 볼륨을 용량 할당하거나 복구 상태를 복구하는 데 사용할 수 있습니다. Kubernetes에서 이들 항목은 오브젝트에 직접 VolumeSnapshotContent 대응합니다. 각 스냅샷은 스냅샷에 대한 데이터의 소스인 볼륨에 연결됩니다.

Snapshot 개체에는 아래 나열된 속성이 있습니다.

속성 유형 필수 요소입니다 설명

버전

문자열

Trident API 버전("1")

이름

문자열

Trident 스냅샷 개체의 이름입니다

내부 이름

문자열

스토리지 시스템의 Trident 스냅샷 개체의 이름입니다

볼륨 이름

문자열

스냅샷이 생성된 영구 볼륨의 이름입니다

볼륨 국제 이름

문자열

스토리지 시스템에서 연결된 Trident 볼륨 개체의 이름입니다

참고 Kubernetes에서 이러한 오브젝트는 자동으로 관리됩니다. 프로비저닝 Trident를 보려면 해당 Trident를 확인하십시오.

Kubernetes 오브젝트 요청이 생성될 때 VolumeSnapshot Trident는 백업 스토리지 시스템에 스냅샷 개체를 생성하여 작동합니다. 이 스냅샷 객체의 은 internalName UID VolumeSnapshot 객체의 접두사와 결합하여 생성됩니다 snapshot-(예: snapshot-e8d8a0ca-9826-11e9-9807-525400f3f660). volumeNamevolumeInternalName 는 백업 볼륨의 세부 정보를 가져와서 채워집니다.

Astra Trident ResourceQuota 객체

Trident deamonset은 system-node-critical Trident가 정상적인 노드 종료 중에 볼륨을 식별 및 정리하고, Trident demonset Pod가 리소스 압력이 높은 클러스터에서 낮은 우선 순위로 워크로드를 사전 설정할 수 있도록 하기 위해 Kubernetes에서 사용 가능한 가장 높은 우선 순위 클래스인 우선 순위 클래스를 사용합니다.

이를 위해 Astra Trident는 객체를 사용하여 ResourceQuota Trident demonset의 "시스템 노드 중요" 우선 순위 클래스가 충족되도록 합니다. 구축 및 demonset 생성 전에 Astra Trident가 오브젝트를 찾고 ResourceQuota 있지 않은 경우 이를 적용합니다.

기본 리소스 할당량 및 우선 순위 클래스에 대해 더 많은 제어가 필요한 경우 Helm 차트를 사용하여 개체를 생성하거나 구성할 ResourceQuotacustom.yaml 있습니다.

다음은 Trident 데모의 우선 순위를 지정하는 'ResourceQuota' 개체의 예입니다.

apiVersion: <version>
kind: ResourceQuota
metadata:
  name: trident-csi
  labels:
    app: node.csi.trident.netapp.io
spec:
  scopeSelector:
     matchExpressions:
       - operator : In
         scopeName: PriorityClass
         values: ["system-node-critical"]

리소스 할당량에 대한 자세한 내용은 을 "Kubernetes: 리소스 할당량"참조하십시오.

설치가 실패하면 정리합니다 ResourceQuota

드물지만 개체를 만든 후 설치에 실패하는 경우 ResourceQuota 먼저 시도한 "제거 중"다음 다시 설치합니다.

이렇게 해도 문제가 해결되지 않으면 개체를 수동으로 ResourceQuota 제거합니다.

제거 ResourceQuota

자체 리소스 할당을 제어하려는 경우 명령을 사용하여 Astra Trident 개체를 제거할 수 있습니다 ResourceQuota.

kubectl delete quota trident-csi -n trident