6.12.4. Azure File의 정적 프로비저닝
정적 프로비저닝을 위해 클러스터 관리자는 실제 스토리지의 세부 정보를 정의하는 PV(영구 볼륨)를 생성합니다. 그런 다음 클러스터 사용자는 이러한 PV를 사용하는 PVC(영구 볼륨 클레임)를 생성할 수 있습니다.
사전 요구 사항
- 관리자 권한을 사용하여 OpenShift Container Platform 클러스터에 액세스
프로세스
Azure 파일에 정적 프로비저닝을 사용하려면 다음을 수행합니다.
Azure 스토리지 계정에 대한 시크릿을 아직 생성하지 않은 경우 지금 생성합니다.
이 시크릿에는 다음과 같은 매우 구체적인 형식의 Azure 스토리지 계정 이름과 키가 두 개의 키-값 쌍을 포함해야 합니다.
-
azurestorageaccountname: <storage_account_name> azurestorageaccountkey: <account_key>azure-secret 이라는 보안을 생성하려면 다음 명령을 실행합니다.
oc create secret generic azure-secret -n <namespace_name> --type=Opaque --from-literal=azurestorageaccountname="<storage_account_name>" --from-literal=azurestorageaccountkey="<account_key>"1 2
-
다음 예제 YAML 파일을 사용하여 PV를 생성합니다.
PV YAML 파일의 예
apiVersion: v1 kind: PersistentVolume metadata: annotations: pv.kubernetes.io/provisioned-by: file.csi.azure.com name: pv-azurefile spec: capacity: storage: 5Gi1 accessModes: - ReadWriteMany2 persistentVolumeReclaimPolicy: Retain3 storageClassName: <sc-name>4 mountOptions: - dir_mode=07775 - file_mode=0777 - uid=0 - gid=0 - cache=strict6 - nosharesock7 - actimeo=308 - nobrl9 csi: driver: file.csi.azure.com volumeHandle: "{resource-group-name}#{account-name}#{file-share-name}"10 volumeAttributes: shareName: EXISTING_FILE_SHARE_NAME11 nodeStageSecretRef: name: azure-secret12 namespace: <my-namespace>13 - 1
- 볼륨 크기.
- 2
- 액세스 모드. 읽기-쓰기 및 마운트 권한을 정의합니다. 자세한 내용은 추가 리소스 에서 액세스 모드를 참조하십시오.
- 3
- 회수 정책. 해제 후 볼륨을 사용하여 클러스터에 수행할 작업을 지시합니다. 허용되는 값은
Retain,Recycle또는Delete입니다. - 4
- 스토리지 클래스 이름입니다. 이 이름은 PVC에서 이 특정 PV에 바인딩하는 데 사용됩니다. 정적 프로비저닝의 경우
StorageClass오브젝트가 존재할 필요는 없지만 PV 및 PVC의 이름이 일치해야 합니다. - 5
- 보안을 강화하려면 이 권한을 수정합니다.
- 6
- 캐시 모드. 허용되는 값은
none,strict및loose입니다. 기본값은strict입니다. - 7
- 재연결 레이스 가능성을 줄이기 위해 를 사용합니다.
- 8
- CIFS 클라이언트가 서버에서 속성 정보를 요청하기 전에 파일 또는 디렉터리의 속성을 캐시하는 시간(초)입니다.
- 9
- 서버에 대한 바이트 범위 잠금 요청 및 POSIX 잠금에 문제가 있는 애플리케이션에 대해 전송을 비활성화합니다.
- 10
volumeHandle이 클러스터 전체에서 고유해야 합니다.resource-group-name은 스토리지 계정이 있는 Azure 리소스 그룹입니다.- 11
- 파일 공유 이름. 파일 공유 이름만 사용합니다. 전체 경로를 사용하지 마십시오.
- 12
- 이 절차의 1단계에서 생성된 시크릿 이름을 제공합니다. 이 예에서는 azure-secret 입니다.
- 13
- 시크릿이 생성된 네임스페이스입니다. PV를 사용하는 네임스페이스여야 합니다.
다음 예제 파일을 사용하여 PV를 참조하는 PVC를 생성합니다.
PVC YAML 파일의 예
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: <pvc-name>1 namespace: <my-namespace>2 spec: volumeName: pv-azurefile3 storageClassName: <sc-name>4 accessModes: - ReadWriteMany5 resources: requests: storage: 5Gi6 - 1
- PVC 이름입니다.
- 2
- PVC의 네임스페이스입니다.
- 3
- 이전 단계에서 생성한 PV의 이름입니다.
- 4
- 스토리지 클래스 이름입니다. 이 이름은 PVC에서 이 특정 PV에 바인딩하는 데 사용됩니다. 정적 프로비저닝의 경우
StorageClass오브젝트가 존재할 필요는 없지만 PV 및 PVC의 이름이 일치해야 합니다. - 5
- 액세스 모드. PVC에 대해 요청된 읽기-쓰기 액세스를 정의합니다. 클레임은 특정 액세스 모드로 스토리지를 요청할 때 볼륨과 동일한 규칙을 사용합니다. 자세한 내용은 추가 리소스 에서 액세스 모드를 참조하십시오.
- 6
- PVC 크기.
다음 명령을 실행하여 PVC가 생성되고
Bound상태에 있는지 확인합니다.$ oc get pvc <pvc-name>1 - 1
- PVC의 이름입니다.
출력 예
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE pvc-name Bound pv-azurefile 5Gi ReadWriteMany my-sc 7m2s