7.3.7. Azure File 객체 정의
Azure File 스토리지 클래스는 시크릿을 사용하여 Azure 파일 공유를 만드는 데 필요한 Azure 스토리지 계정 이름과 스토리지 계정 키를 저장합니다. 이러한 권한은 다음 절차의 일부로 생성됩니다.
절차
시크릿을 작성하고 볼 수 있는 액세스를 허용하는
ClusterRole
오브젝트를 정의합니다.apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: # name: system:azure-cloud-provider name: <persistent-volume-binder-role> 1 rules: - apiGroups: [''] resources: ['secrets'] verbs: ['get','create']
- 1
- 시크릿을 표시하고 작성하는 클러스터 역할의 이름입니다.
서비스 계정에 클러스터 역할을 추가합니다.
$ oc adm policy add-cluster-role-to-user <persistent-volume-binder-role>
출력 예
system:serviceaccount:kube-system:persistent-volume-binder
Azure File
StorageClass
오브젝트를 만듭니다.kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: <azure-file> 1 provisioner: kubernetes.io/azure-file parameters: location: eastus 2 skuName: Standard_LRS 3 storageAccount: <storage-account> 4 reclaimPolicy: Delete volumeBindingMode: Immediate
- 1
- StorageClass의 이름입니다. 영구 볼륨 클래임은 이 스토리지 클래스를 사용하여 관련 영구 볼륨을 프로비저닝합니다.
- 2
eastus
와 같은 Azure 스토리지 계정의 위치입니다. 기본값은 비어 있습니다. 즉, OpenShift Container Platform 클러스터 위치에 새 Azure 스토리지 계정이 만들어집니다.- 3
- Azure 스토리지 계정의 SKU 계층입니다 (예:
Standard_LRS)
. 기본값은 비어 있습니다. 즉,Standard_LRS
SKU를 사용하여 새 Azure 스토리지 계정이 만들어집니다. - 4
- Azure 스토리지 계정 이름입니다. 스토리지 계정이 제공되면
skuName
및location
이 무시됩니다. 스토리지 계정이 제공되지 않으면 스토리지 클래스는 정의된skuName
및location
과 일치하는 계정의 리소스 그룹과 연관된 스토리지 계정을 검색합니다.
7.3.7.1. Azure File 사용시 고려 사항
기본 Azure File 스토리지 클래스는 다음 파일 시스템 기능을 지원하지 않습니다.
- 심볼릭 링크
- 하드 링크
- 확장 속성
- 스파스 파일
- 명명된 파이프
또한 Azure File이 마운트되는 디렉터리의 소유자 ID (UID)는 컨테이너의 프로세스 UID와 다릅니다. 마운트된 디렉터리에 사용할 특정 사용자 ID를 정의하기 위해 StorageClass
오브젝트에서 uid
마운트 옵션을 지정할 수 있습니다.
다음 StorageClass
오브젝트는 마운트된 디렉터리의 심볼릭 링크를 활성화한 상태에서 사용자 및 그룹 ID를 변경하는 방법을 보여줍니다.
kind: StorageClass apiVersion: storage.k8s.io/v1 metadata: name: azure-file mountOptions: - uid=1500 1 - gid=1500 2 - mfsymlinks 3 provisioner: kubernetes.io/azure-file parameters: location: eastus skuName: Standard_LRS reclaimPolicy: Delete volumeBindingMode: Immediate