Azure Arc에서 사용하도록 설정된 AKS에서 영구 볼륨 사용

적용 대상: Azure Stack HCI 22H2의 AKS, Windows Server의 AKS

이 문서에서는 AKS Arc(Azure Arc)에서 사용하도록 설정된 AKS의 Kubernetes Pod에 사용할 장기 스토리지를 제공하는 영구 볼륨을 프로비전, 사용 및 삭제하는 방법을 설명합니다.

영구 볼륨은 Kubernetes Pod와 함께 사용하도록 프로비전된 스토리지의 일부를 나타냅니다. 영구 볼륨은 하나 이상의 Pod에서 사용할 수 있으며 장기 스토리지를 위한 것입니다. Pod 또는 노드 수명 주기와도 독립적입니다.

Windows 및 Linux 노드 모두에 대해 영구 볼륨을 프로비전할 수 있지만 이 문서에서는 Windows 애플리케이션에서 사용할 영구 볼륨을 만드는 방법을 설명합니다. 자세한 내용은 Kubernetes의 영구 볼륨을 참조하세요.

시작하기 전에

시작하는 데 필요한 항목은 다음과 같습니다.

영구적 볼륨 클레임 만들기

PVC(영구적 볼륨 클레임)을 사용하여 스토리지 클래스를 기반으로 하는 스토리지를 자동으로 프로비전합니다. 볼륨 클레임을 만들려면 먼저 라는 pvc-akshci-csi.yaml 파일을 만들고 다음 YAML 정의를 복사하여 붙여넣습니다. PVC에는 ReadWriteOnce 액세스 권한이 있는 10GB 크기의 디스크가 필요합니다. 기본 스토리지 클래스는 스토리지 클래스(vhdx)로 지정됩니다.

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
 name: pvc-akshci-csi
spec:
 accessModes:
 - ReadWriteOnce
 resources:
  requests:
   storage: 10Gi

볼륨을 만들려면 Azure Stack HCI 클러스터의 서버 중 하나에 있는 관리 PowerShell 세션에서 다음 명령을 실행합니다. Enter-PSSession 또는 원격 데스크톱과 같은 메서드를 사용하여 서버에 연결합니다.

kubectl create -f pvc-akshci-csi.yaml 

다음 출력은 영구 볼륨 클레임이 성공적으로 생성되었음을 보여줍니다.

출력:

persistentvolumeclaim/pvc-akshci-csi created

영구 볼륨 사용

영구 볼륨을 사용하려면 라는 winwebserver.yaml 파일을 만들고 다음 YAML 정의를 복사하여 붙여넣습니다. 그런 다음 영구 볼륨 클레임 및 vhdx에 대한 액세스 권한이 있는 Pod를 만듭니다.

다음 YAML 정의 mountPath 에서 는 컨테이너 내에 볼륨을 탑재하는 경로입니다. Pod를 성공적으로 만든 후에는 C:\에서 만든 하위 디렉터리 mntmnt 내에서 생성된 하위 디렉터리 akshciscsi가 표시됩니다.

apiVersion: apps/v1 
kind: Deployment 
metadata: 
  labels: 
    app: win-webserver 
  name: win-webserver 
spec: 
  replicas: 1 
  selector: 
    matchLabels: 
      app: win-webserver 
  template: 
    metadata: 
      labels: 
        app: win-webserver 
      name: win-webserver 
    spec: 
     containers: 
      - name: windowswebserver 
        image: mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019 
        ports:  
          - containerPort: 80    
        volumeMounts: 
            - name: akshciscsi 
              mountPath: "/mnt/akshciscsi" 
     volumes: 
        - name: akshciscsi 
          persistentVolumeClaim: 
            claimName:  pvc-akshci-csi 
     nodeSelector: 
      kubernetes.io/os: windows 

위의 YAML 정의를 사용하여 Pod를 만들려면 다음을 실행합니다.

kubectl create -f winwebserver.yaml 

Pod가 실행 중인지 확인하려면 다음 명령을 실행합니다. 이미지를 끌어당기는 데 시간이 걸리기 때문에 Pod가 실행 중 상태가 될 때까지 몇 분 정도 기다립니다.

kubectl get pods -o wide 

Pod가 실행되면 다음 명령을 실행하여 Pod 상태 봅니다.

kubectl.exe describe pod %podName% 

볼륨이 Pod에 탑재되었는지 확인하려면 다음 명령을 실행합니다.

kubectl exec -it %podname% cmd.exe 

영구 볼륨 클레임 삭제

영구 볼륨 클레임을 삭제하기 전에 다음을 실행하여 앱 배포를 삭제해야 합니다.

kubectl delete deployments win-webserver

그런 다음, 다음을 실행하여 영구 볼륨 클레임을 삭제할 수 있습니다.

kubectl delete PersistentVolumeClaim pvc-akshci-csi

다음 단계