5.12. Azure File CSI Driver Operator


5.12.1. 개요

OpenShift Container Platform은 Microsoft Azure File Storage용 CSI(Container Storage Interface) 드라이버를 사용하여 PV(영구 볼륨)를 프로비저닝할 수 있습니다.

CSI Operator 및 드라이버를 사용할 때는 영구 스토리지CSI 볼륨 구성에 대해 숙지하는 것이 좋습니다.

Azure File 스토리지 자산에 마운트되는 CSI 프로비저닝 PV를 생성하기 위해 OpenShift Container Platform은 openshift-cluster-csi-drivers 네임스페이스에 기본적으로 Azure File CSI Driver Operator 및 Azure File CSI 드라이버를 설치합니다.

  • Azure File CSI Driver Operator 는 PVC(영구 볼륨 클레임)를 생성하는 데 사용할 수 있는 azurefile-csi 라는 스토리지 클래스를 제공합니다. 필요한 경우 이 기본 스토리지 클래스를 비활성화할 수 있습니다( 기본 스토리지 클래스 관리참조).
  • Azure File CSI 드라이버 를 사용하면 Azure File PV를 생성하고 마운트할 수 있습니다. Azure File CSI 드라이버는 필요에 따라 스토리지 볼륨을 생성할 수 있으므로 클러스터 관리자가 스토리지를 사전 프로비저닝할 필요가 없어 동적 볼륨 프로비저닝을 지원합니다.

Azure File CSI Driver Operator는 다음을 지원하지 않습니다.

  • 가상 하드 디스크(VHD)
  • FIPS(Federal Information Processing Standard) 모드가 있는 노드에서는 SMB(Server Message Block) 파일 공유에 대해 활성화됩니다. 그러나 NFS(네트워크 파일 시스템)는 FIPS 모드를 지원합니다.

지원되는 기능에 대한 자세한 내용은 지원되는 CSI 드라이버 및 기능을 참조하십시오.

5.12.2. NFS 지원

OpenShift Container Platform 4.14 이상에서는 다음 주의 사항과 함께 NFS(Network File System) Driver Operator를 지원합니다.

  • 컨트롤 플레인 노드에 예약된 Azure File NFS 볼륨을 사용하여 Pod를 생성하면 마운트가 거부됩니다.

    이 문제를 해결하려면 컨트롤 플레인 노드를 예약할 수 있고 작업자 노드에서 Pod를 실행할 수 있는 경우 nodeSelector 또는 Affinity를 사용하여 작업자 노드에서 Pod를 예약합니다.

  • FS 그룹 정책 동작:

    중요

    NFS를 사용하는 Azure File CSI는 Pod에서 요청한 fsGroupChangePolicy를 준수하지 않습니다. NFS를 사용하는 Azure File CSI는 Pod에서 요청한 정책에 관계없이 기본 OnRootMismatch FS 그룹 정책을 적용합니다.

  • Azure File CSI Operator는 NFS의 스토리지 클래스를 자동으로 생성하지 않습니다. 수동으로 생성해야 합니다. 다음과 유사한 파일을 사용합니다.

    apiVersion: storage.k8s.io/v1
    kind: StorageClass
    metadata:
      name: <storage-class-name> 
    1
    
    provisioner: file.csi.azure.com 
    2
    
    parameters:
      protocol: nfs 
    3
    
      skuName: Premium_LRS  # available values: Premium_LRS, Premium_ZRS
    mountOptions:
      - nconnect=4
    Copy to Clipboard
    1
    스토리지 클래스 이름입니다.
    2
    Azure File CSI 공급자를 지정합니다.
    3
    NFS를 스토리지 백엔드 프로토콜로 지정합니다.

5.12.3. CSI 정보

스토리지 벤더는 일반적으로 Kubernetes의 일부로 스토리지 드라이버를 제공합니다. CSI(Container Storage Interface) 구현을 통해 타사 공급자는 코어 Kubernetes 코드를 변경하지 않고도 표준 인터페이스를 사용하여 스토리지 플러그인을 제공할 수 있습니다.

CSI Operator는 in-tree 볼륨 플러그인에서 사용할 수 없는 볼륨 스냅샷과 같은 OpenShift Container Platform 사용자 스토리지 옵션을 제공합니다.

5.12.4. Azure File의 정적 프로비저닝

정적 프로비저닝을 위해 클러스터 관리자는 실제 스토리지의 세부 정보를 정의하는 PV(영구 볼륨)를 생성합니다. 그런 다음 클러스터 사용자는 이러한 PV를 사용하는 PVC(영구 볼륨 클레임)를 생성할 수 있습니다.

사전 요구 사항

  • 관리자 권한을 사용하여 OpenShift Container Platform 클러스터에 액세스

절차

Azure 파일에 정적 프로비저닝을 사용하려면 다음을 수행합니다.

  1. 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
      Copy to Clipboard
      1
      & lt;namespace_name& gt;을 PV가 사용되는 네임스페이스로 설정합니다.
      2
      < storage_account_name> 및 < account_ key>에 대한 값을 제공합니다.
  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: 5Gi 
    1
    
      accessModes:
        - ReadWriteMany 
    2
    
      persistentVolumeReclaimPolicy: Retain 
    3
    
      storageClassName: <sc-name> 
    4
    
      mountOptions:
        - dir_mode=0777  
    5
    
        - file_mode=0777
        - uid=0
        - gid=0
        - cache=strict  
    6
    
        - nosharesock  
    7
    
        - actimeo=30  
    8
    
        - nobrl  
    9
    
      csi:
        driver: file.csi.azure.com
        volumeHandle: "{resource-group-name}#{account-name}#{file-share-name}" 
    10
    
        volumeAttributes:
          shareName: EXISTING_FILE_SHARE_NAME  
    11
    
        nodeStageSecretRef:
          name: azure-secret 
    12
    
          namespace: <my-namespace> 
    13
    Copy to Clipboard

    1
    볼륨 크기.
    2
    액세스 모드. 읽기-쓰기 및 마운트 권한을 정의합니다. 자세한 내용은 추가 리소스 아래에서 액세스 모드를 참조하십시오.
    3
    회수 정책. 해제 후 볼륨을 사용하여 클러스터에 수행할 작업을 지시합니다. 허용되는 값은 Retain,Recycle 또는 Delete 입니다.
    4
    스토리지 클래스 이름입니다. 이 이름은 PVC에서 이 특정 PV에 바인딩하는 데 사용됩니다. 정적 프로비저닝의 경우 StorageClass 오브젝트가 존재할 필요는 없지만 PV 및 PVC의 이름이 일치해야 합니다.
    5
    보안을 강화하려면 이 권한을 수정합니다.
    6
    캐시 모드. 허용되는 값은 none,strictloose 입니다. 기본값은 strict 입니다.
    7
    재연결 레이스 가능성을 줄이기 위해 를 사용합니다.
    8
    CIFS 클라이언트가 서버에서 속성 정보를 요청하기 전에 파일 또는 디렉터리의 속성을 캐시하는 시간(초)입니다.
    9
    서버에 대한 바이트 범위 잠금 요청 및 POSIX 잠금에 문제가 있는 애플리케이션에 대해 전송을 비활성화합니다.
    10
    volumeHandle 이 클러스터 전체에서 고유해야 합니다. resource-group-name 은 스토리지 계정이 있는 Azure 리소스 그룹입니다.
    11
    파일 공유 이름. 파일 공유 이름만 사용합니다. 전체 경로를 사용하지 마십시오.
    12
    이 절차의 1단계에서 생성된 시크릿 이름을 제공합니다. 이 예에서는 azure-secret 입니다.
    13
    시크릿이 생성된 네임스페이스입니다. PV를 사용하는 네임스페이스여야 합니다.
  3. 다음 예제 파일을 사용하여 PV를 참조하는 PVC를 생성합니다.

    PVC YAML 파일의 예

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: <pvc-name> 
    1
    
      namespace: <my-namespace> 
    2
    
    spec:
      volumeName: pv-azurefile 
    3
    
      storageClassName: <sc-name> 
    4
    
      accessModes:
        - ReadWriteMany 
    5
    
      resources:
        requests:
          storage: 5Gi 
    6
    Copy to Clipboard

    1
    PVC 이름입니다.
    2
    PVC의 네임스페이스입니다.
    3
    이전 단계에서 생성한 PV의 이름입니다.
    4
    스토리지 클래스 이름입니다. 이 이름은 PVC에서 이 특정 PV에 바인딩하는 데 사용됩니다. 정적 프로비저닝의 경우 StorageClass 오브젝트가 존재할 필요는 없지만 PV 및 PVC의 이름이 일치해야 합니다.
    5
    액세스 모드. PVC에 대해 요청된 읽기-쓰기 액세스를 정의합니다. 클레임은 특정 액세스 모드로 스토리지를 요청할 때 볼륨과 동일한 규칙을 사용합니다. 자세한 내용은 추가 리소스 아래에서 액세스 모드를 참조하십시오.
    6
    PVC 크기.
  4. 다음 명령을 실행하여 PVC가 생성되고 Bound 상태에 있는지 확인합니다.

    $ oc get pvc <pvc-name> 
    1
    Copy to Clipboard
    1
    PVC의 이름입니다.

    출력 예

    NAME       STATUS    VOLUME         CAPACITY   ACCESS MODES   STORAGECLASS   AGE
    pvc-name   Bound     pv-azurefile   5Gi        ReadWriteMany  my-sc          7m2s
    Copy to Clipboard

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat