Menu Close

6.2.6. Azure File 객체 정의

Azure File 스토리지 클래스는 시크릿을 사용하여 Azure 파일 공유를 만드는 데 필요한 Azure 스토리지 계정 이름과 스토리지 계정 키를 저장합니다. 이러한 권한은 다음 절차의 일부로 생성됩니다.

절차

  1. 시크릿을 작성하고 볼 수 있는 액세스를 허용하는 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
    시크릿을 표시하고 작성하는 클러스터 역할의 이름입니다.
  2. 서비스 계정에 클러스터 역할을 추가합니다.

    $ oc adm policy add-cluster-role-to-user <persistent-volume-binder-role>

    출력 예

     system:serviceaccount:kube-system:persistent-volume-binder

  3. 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 스토리지 계정 이름입니다. 스토리지 계정이 제공되면 skuNamelocation이 무시됩니다. 스토리지 계정이 제공되지 않으면 스토리지 클래스는 정의된 skuNamelocation과 일치하는 계정의 리소스 그룹과 연관된 스토리지 계정을 검색합니다.

6.2.6.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
1
마운트된 디렉터리에 사용할 사용자 ID를 지정합니다.
2
마운트된 디렉터리에 사용할 그룹 ID를 지정합니다.
3
심볼릭 링크를 활성화합니다.