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의 영구 볼륨을 참조 하세요.
시작하기 전에
시작하기 위해 필요한 항목은 다음과 같습니다.
- 하나 이상의 Windows 작업자 노드가 있는 Kubernetes 클러스터입니다.
- Kubernetes 클러스터에 액세스할 kubeconfig 파일입니다.
영구적 볼륨 클레임 만들기
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 로컬 클러스터의 서버 중 하나에서 관리 PowerShell 세션에서 다음 명령을 실행합니다. Enter-PSSession 또는 원격 데스크톱과 같은 메서드를 사용하여 서버에 연결합니다.
kubectl create -f pvc-akshci-csi.yaml
다음 출력은 영구 볼륨 클레임이 성공적으로 생성되었음을 보여 줍니다.
출력:
persistentvolumeclaim/pvc-akshci-csi created
영구 볼륨 사용
영구 볼륨을 사용하려면 이름이 지정된 winwebserver.yaml
파일을 만들고 다음 YAML 정의를 복사하여 붙여넣습니다. 그런 다음 영구 볼륨 클레임 및 vhdx에 대한 액세스 권한이 있는 Pod를 만듭니다.
다음 YAML 정의 mountPath
에서 컨테이너 내부에 볼륨을 탑재하는 경로입니다. Pod를 성공적으로 만든 후에는 C:\에서 생성된 하위 디렉터리 mnt와 mnt 내에서 생성된 하위 디렉터리 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