네임스페이스 간에 NFS 볼륨 공유
Trident 사용하면 기본 네임스페이스에 볼륨을 생성하고 하나 이상의 보조 네임스페이스에서 공유할 수 있습니다.
특징
TridentVolumeReference CR을 사용하면 하나 이상의 Kubernetes 네임스페이스에서 ReadWriteMany(RWX) NFS 볼륨을 안전하게 공유할 수 있습니다. 이 Kubernetes 기반 솔루션은 다음과 같은 이점을 제공합니다.
-
보안을 보장하기 위한 다양한 수준의 액세스 제어
-
모든 Trident NFS 볼륨 드라이버와 함께 작동합니다.
-
tridentctl이나 기타 비네이티브 Kubernetes 기능에 대한 의존성 없음
이 다이어그램은 두 개의 Kubernetes 네임스페이스에서 NFS 볼륨을 공유하는 것을 보여줍니다.
빠른 시작
몇 단계만 거치면 NFS 볼륨 공유를 설정할 수 있습니다.
볼륨을 공유하도록 소스 PVC를 구성합니다.소스 네임스페이스 소유자는 소스 PVC의 데이터에 액세스할 수 있는 권한을 부여합니다.
대상 네임스페이스에 CR을 생성할 수 있는 권한을 부여합니다.클러스터 관리자는 대상 네임스페이스 소유자에게 TridentVolumeReference CR을 생성할 수 있는 권한을 부여합니다.
대상 네임스페이스에 TridentVolumeReference를 생성합니다.대상 네임스페이스의 소유자는 소스 PVC를 참조하기 위해 TridentVolumeReference CR을 생성합니다.
대상 네임스페이스에 하위 PVC를 만듭니다.대상 네임스페이스의 소유자는 소스 PVC의 데이터 소스를 사용하기 위해 하위 PVC를 생성합니다.
소스 및 대상 네임스페이스 구성
보안을 보장하려면 네임스페이스 간 공유에 소스 네임스페이스 소유자, 클러스터 관리자, 대상 네임스페이스 소유자의 협업과 조치가 필요합니다. 각 단계마다 사용자 역할이 지정됩니다.
-
소스 네임스페이스 소유자: PVC를 생성합니다.(
pvc1) 대상 네임스페이스와 공유할 수 있는 권한을 부여하는 소스 네임스페이스에서(namespace2)를 사용하여shareToNamespace주석.kind: PersistentVolumeClaim apiVersion: v1 metadata: name: pvc1 namespace: namespace1 annotations: trident.netapp.io/shareToNamespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100GiTrident PV와 백엔드 NFS 스토리지 볼륨을 생성합니다.
-
쉼표로 구분된 목록을 사용하여 PVC를 여러 네임스페이스에 공유할 수 있습니다. 예를 들어,
trident.netapp.io/shareToNamespace: namespace2,namespace3,namespace4. -
다음을 사용하여 모든 네임스페이스에 공유할 수 있습니다.
*. 예를 들어,trident.netapp.io/shareToNamespace: * -
PVC를 업데이트하여 다음을 포함할 수 있습니다.
shareToNamespace언제든지 주석을 달 수 있습니다.
-
-
클러스터 관리자: 대상 네임스페이스 소유자에게 대상 네임스페이스에 TridentVolumeReference CR을 생성할 수 있는 권한을 부여하기 위해 적절한 RBAC가 있는지 확인하세요.
-
대상 네임스페이스 소유자: 소스 네임스페이스를 참조하는 대상 네임스페이스에 TridentVolumeReference CR을 생성합니다.
pvc1.apiVersion: trident.netapp.io/v1 kind: TridentVolumeReference metadata: name: my-first-tvr namespace: namespace2 spec: pvcName: pvc1 pvcNamespace: namespace1 -
대상 네임스페이스 소유자: PVC 생성(
pvc2) 대상 네임스페이스에(namespace2)를 사용하여shareFromPVC소스 PVC를 지정하는 주석입니다.kind: PersistentVolumeClaim apiVersion: v1 metadata: annotations: trident.netapp.io/shareFromPVC: namespace1/pvc1 name: pvc2 namespace: namespace2 spec: accessModes: - ReadWriteMany storageClassName: trident-csi resources: requests: storage: 100Gi대상 PVC의 크기는 소스 PVC보다 작거나 같아야 합니다.
Trident 다음을 읽습니다. shareFromPVC 대상 PVC에 주석을 추가하고 자체 저장 리소스가 없는 종속 볼륨으로 대상 PV를 생성하여 소스 PV를 가리키고 소스 PV 저장 리소스를 공유합니다. 대상 PVC와 PV는 정상적으로 바인딩된 것으로 나타납니다.
공유 볼륨 삭제
여러 네임스페이스에서 공유되는 볼륨을 삭제할 수 있습니다. Trident 소스 네임스페이스에서 볼륨에 대한 액세스를 제거하고 볼륨을 공유하는 다른 네임스페이스에 대한 액세스를 유지합니다. 볼륨을 참조하는 모든 네임스페이스가 제거되면 Trident 볼륨을 삭제합니다.
사용 tridentctl get 하위 볼륨을 쿼리하려면
를 사용하여[tridentctl 유틸리티를 실행하면 됩니다 get 하위 볼륨을 가져오는 명령입니다. 자세한 내용은 링크를 참조하세요:../trident-reference/tridentctl.html[tridentctl 명령 및 옵션].
Usage: tridentctl get [option]
플래그:
-
`-h, --help: 볼륨에 대한 도움말. -
--parentOfSubordinate string: 하위 소스 볼륨에 대한 쿼리를 제한합니다. -
--subordinateOf string: 볼륨의 하위 항목으로 쿼리를 제한합니다.
제한 사항
-
Trident 대상 네임스페이스가 공유 볼륨에 쓰는 것을 막을 수 없습니다. 공유 볼륨 데이터를 덮어쓰는 것을 방지하려면 파일 잠금이나 다른 프로세스를 사용해야 합니다.
-
소스 PVC에 대한 액세스를 제거하여 취소할 수 없습니다.
shareToNamespace또는shareFromNamespace주석이나 삭제TridentVolumeReference크.알. 접근 권한을 취소하려면 하위 PVC를 삭제해야 합니다. -
하위 볼륨에서는 스냅샷, 복제 및 미러링이 불가능합니다.
더 많은 정보를 원하시면
네임스페이스 간 볼륨 액세스에 대해 자세히 알아보려면 다음을 참조하세요.
-
데모를 시청하세요"넷앱TV" .