로컬 공유 Edge 볼륨
이 문서에서는 로컬 공유 Edge 볼륨(고가용성, 지속형 로컬 스토리지) 구성을 설명합니다.
로컬 공유 Edge 볼륨이란?
로컬 공유 Edge 볼륨 기능은 Kubernetes 클러스터에 고가용성 장애 조치(failover) 가능 스토리지를 로컬로 제공합니다. 이 공유 스토리지 유형은 클라우드 인프라와 독립적으로 유지되므로 클라우드 대상에 적합하지 않을 수 있는 스크래치 공간, 임시 스토리지 및 로컬 영구 데이터에 사용하기 좋습니다.
로컬 공유 Edge 볼륨 PVC(영구 볼륨 클레임)를 만들고 PVC에 대해 Pod를 구성합니다.
다음 내용이 포함된
localSharedPVC.yaml
라는 파일을 만듭니다. 영구 볼륨 클레임의 이름으로metadata.name
값을 수정합니다. 그런 다음 줄 8에서 의도한 사용 Pod와 일치하는 네임스페이스를 지정합니다.metadata.name
값은 다음 단계의deploymentExample.yaml
마지막 줄에서 참조됩니다.spec.resources.requests.storage
매개 변수는 영구 볼륨의 크기를 결정합니다. 이 예제에서는 2GB이지만 필요에 맞게 수정할 수 있습니다.참고 항목
소문자와 숫자만 사용할 수 있습니다. 자세한 내용은 Kubernetes 개체 명명 설명서를 참조하세요.
kind: PersistentVolumeClaim apiVersion: v1 metadata: ### Create a name for your PVC ### name: <create-a-pvc-name-here> ### Use a namespace that matches your intended consuming pod, or "default" ### namespace: <intended-consuming-pod-or-default-here> spec: accessModes: - ReadWriteMany resources: requests: storage: 2Gi storageClassName: unbacked-sc
다음 내용이 포함된
deploymentExample.yaml
라는 파일을 만듭니다.containers.name
및volumes.persistentVolumeClaim.claimName
에 대한 값을 추가합니다.spec.replicas
매개 변수는 만들 복제본 Pod 수를 결정합니다. 이 예제에서는 2이지만 필요에 맞게 수정할 수 있습니다.참고 항목
소문자와 숫자만 사용할 수 있습니다. 자세한 내용은 Kubernetes 개체 명명 설명서를 참조하세요.
apiVersion: apps/v1 kind: Deployment metadata: name: localsharededgevol-deployment ### This will need to be unique for every volume you choose to create spec: replicas: 2 selector: matchLabels: name: wyvern-testclientdeployment template: metadata: name: wyvern-testclientdeployment labels: name: wyvern-testclientdeployment spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchExpressions: - key: app operator: In values: - wyvern-testclientdeployment topologyKey: kubernetes.io/hostname containers: ### Specify the container in which to launch the busy box. ### - name: <create-a-container-name-here> image: 'mcr.microsoft.com/mirror/docker/library/busybox:1.35' command: - "/bin/sh" - "-c" - "dd if=/dev/urandom of=/data/acsalocalsharedtestfile count=16 bs=1M && while true; do ls /data &>/dev/null || break; sleep 1; done" volumeMounts: ### This name must match the following volumes::name attribute ### - name: wyvern-volume ### This mountPath is where the PVC will be attached to the pod's filesystem ### mountPath: /data volumes: ### User-defined name that is used to link the volumeMounts. This name must match volumeMounts::name as previously specified. ### - name: wyvern-volume persistentVolumeClaim: ### This claimName must refer to your PVC metadata::name from lsevPVC.yaml. claimName: <your-pvc-metadata-name-from-line-5-of-pvc-yaml>
이러한 YAML 파일을 적용하려면 다음을 실행합니다.
kubectl apply -f "localSharedPVC.yaml" kubectl apply -f "deploymentExample.yaml"
Pod의 이름을 확인하려면
kubectl get pods
를 실행합니다. 다음 단계에서 필요하므로 이 이름을 복사해 둡니다.참고 항목
deploymentExample.yaml
의spec::replicas
가2
로 지정되었으므로kubectl get pods
를 사용하여 두 개의 Pod가 나타납니다. 다음 단계에서 이러한 두 가지 Pod 이름 중 하나를 선택할 수 있습니다.다음 명령을 실행하고
POD_NAME_HERE
를 이전 단계에서 복사한 값으로 바꿉니다.kubectl exec -it pod_name_here -- sh
deploymentExample.yaml
에 지정된 대로 디렉터리를/data
탑재 경로로 변경합니다.예를 들어,
file1.txt
라는 이름의 파일을 만들고echo "Hello World" > file1.txt
를 사용하여 이 파일에 씁니다.
이전 단계를 완료했다면 Azure Monitor 및 Kubernetes 모니터링 또는 Prometheus 및 Grafana를 통한 타사 모니터링을 사용하여 배포 모니터링을 시작합니다.