다음을 통해 공유


Azure Kubernetes Service에 대한 Azure NetApp Files 이중 프로토콜 볼륨 프로비전

Azure Kubernetes Service용 Azure NetApp Files를 구성한 후 Azure Kubernetes Service에 대한 Azure NetApp Files 볼륨을 프로비전할 수 있습니다.

Azure NetApp Files에서는 NFS(NFSv3 또는 NFSv4.1), SMB 및 이중 프로토콜(NFSv3과 SMB 또는 NFSv4.1과 SMB)을 사용하여 볼륨을 만들 수 있습니다.

이 문서에서는 NFS 또는 SMB를 사용하여 듀얼 프로토콜 액세스를 위한 볼륨을 정적으로 프로비전하는 방법을 보여 줍니다.

시작하기 전에

Azure Kubernetes Service에서 이중 프로토콜 볼륨 프로비전

이 섹션에서는 Azure NetApp Files 이중 프로토콜 볼륨을 Kubernetes에 정적으로 노출하는 방법을 설명합니다. SMB 및 NFS 프로토콜 모두에 대한 지침이 제공됩니다. SMB를 통해 Windows 작업자 노드에, NFS를 통해 Linux 작업자 노드에 동일한 볼륨을 노출할 수 있습니다.

NFS에 대한 영구 볼륨 만들기

  1. 나중에 사용할 변수를 정의합니다. myresourcegroup, myaccountname, mypool1, myvolname을 이중 프로토콜 볼륨의 적절한 값으로 바꿉니다.

    RESOURCE_GROUP="myresourcegroup"
    ANF_ACCOUNT_NAME="myaccountname"
    POOL_NAME="mypool1"
    VOLUME_NAME="myvolname"
    
  2. az netappfiles volume show 명령을 사용하여 볼륨의 세부 정보를 나열합니다.

    az netappfiles volume show \
        --resource-group $RESOURCE_GROUP \
        --account-name $ANF_ACCOUNT_NAME \
        --pool-name $POOL_NAME \
        --volume-name $VOLUME_NAME -o JSON
    

    다음 출력은 실제 값으로 실행된 위 명령의 예입니다.

    {
      ...
      "creationToken": "myfilepath2",
      ...
      "mountTargets": [
        {
          ...
          "ipAddress": "10.0.0.4",
          ...
        }
      ],
      ...
    }
    
  3. 파일 pv-nfs.yaml을 만들고 다음 YAML에 복사합니다. 서버가 이전 단계의 출력 IP 주소와 일치하고 경로가 위 creationToken의 출력과 일치하는지 확인합니다. 용량은 2단계의 볼륨 크기와도 일치해야 합니다.

    apiVersion: v1
    kind: PersistentVolume
    metadata:
      name: pv-nfs
    spec:
      capacity:
        storage: 100Gi
      accessModes:
        - ReadWriteMany
      mountOptions:
        - vers=3
      nfs:
        server: 10.0.0.4
        path: /myfilepath2
    
  4. kubectl apply 명령을 사용하여 영구 볼륨을 만듭니다.

    kubectl apply -f pv-nfs.yaml
    
  5. kubectl describe 명령을 사용하여 영구 볼륨의 상태가 Available인지 확인합니다.

    kubectl describe pv pv-nfs
    

NFS에 대한 영구 볼륨 클레임 만들기

  1. 파일 pvc-nfs.yaml을 만들고 다음 YAML에 복사합니다. 이 매니페스트는 사용자가 만든 PV와 일치하는 100Gi 스토리지 및 ReadWriteMany 액세스 모드에 대해 pvc-nfs라는 PVC를 만들고 사용자가 만든 PV와 일치하는지 확인합니다.

    apiVersion: v1
    kind: PersistentVolumeClaim
    metadata:
      name: pvc-nfs
    spec:
      accessModes:
        - ReadWriteMany
      storageClassName: ""
      resources:
        requests:
          storage: 100Gi
    
  2. kubectl apply 명령을 사용하여 영구 볼륨 클레임을 만듭니다.

    kubectl apply -f pvc-nfs.yaml
    
  3. 명령을 사용하여 영구 볼륨 클레임의 상태Boundkubectl describe인지 확인합니다.

    kubectl describe pvc pvc-nfs
    

NFS를 사용하여 Pod 내에 탑재

  1. 파일 nginx-nfs.yaml을 만들고 다음 YAML에 복사합니다. 이 매니페스트는 영구 볼륨 클레임을 사용하는 nginx Pod를 정의합니다.

    kind: Pod
    apiVersion: v1
    metadata:
      name: nginx-nfs
    spec:
      containers:
      - image: mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine
        name: nginx-nfs
        command:
        - "/bin/sh"
        - "-c"
        - while true; do echo $(date) >> /mnt/azure/outfile; sleep 1; done
        volumeMounts:
        - name: disk01
          mountPath: /mnt/azure
      volumes:
      - name: disk01
        persistentVolumeClaim:
          claimName: pvc-nfs
    
  2. kubectl applykubectl-apply 명령을 사용하여 Pod를 만듭니다.

    kubectl apply -f nginx-nfs.yaml
    
  3. kubectl apply 명령을 사용하여 Pod가 Running인지 확인합니다.

    kubectl describe pod nginx-nfs
    
  4. Pod에 연결하기 위해 kubectl exec를 사용하여 볼륨이 Pod에 탑재되었는지 확인한 다음, df -h를 사용하여 볼륨이 탑재되었는지 확인합니다.

    kubectl exec -it nginx-nfs -- sh
    
    / # df -h
    Filesystem             Size  Used Avail Use% Mounted on
    ...
    10.0.0.4:/myfilepath2  100T  384K  100T   1% /mnt/azure
    ...
    

다음 단계

Astra Trident는 Azure NetApp Files를 통해 많은 기능을 지원합니다. 자세한 내용은 다음을 참조하세요.