다음을 통해 공유


로컬 공유 Edge 볼륨

이 문서에서는 로컬 공유 Edge 볼륨(고가용성, 지속형 로컬 스토리지) 구성을 설명합니다.

로컬 공유 Edge 볼륨이란?

로컬 공유 Edge 볼륨 기능은 Kubernetes 클러스터에 고가용성 장애 조치(failover) 가능 스토리지를 로컬로 제공합니다. 이 공유 스토리지 유형은 클라우드 인프라와 독립적으로 유지되므로 클라우드 대상에 적합하지 않을 수 있는 스크래치 공간, 임시 스토리지 및 로컬 영구 데이터에 사용하기 좋습니다.

로컬 공유 Edge 볼륨 PVC(영구 볼륨 클레임)를 만들고 PVC에 대해 Pod를 구성합니다.

  1. 다음 내용이 포함된 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
    
  2. 다음 내용이 포함된 deploymentExample.yaml라는 파일을 만듭니다. containers.namevolumes.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>
    
  3. 이러한 YAML 파일을 적용하려면 다음을 실행합니다.

    kubectl apply -f "localSharedPVC.yaml"
    kubectl apply -f "deploymentExample.yaml"
    
  4. Pod의 이름을 확인하려면 kubectl get pods를 실행합니다. 다음 단계에서 필요하므로 이 이름을 복사해 둡니다.

    참고 항목

    deploymentExample.yamlspec::replicas2로 지정되었으므로 kubectl get pods를 사용하여 두 개의 Pod가 나타납니다. 다음 단계에서 이러한 두 가지 Pod 이름 중 하나를 선택할 수 있습니다.

  5. 다음 명령을 실행하고 POD_NAME_HERE를 이전 단계에서 복사한 값으로 바꿉니다.

    kubectl exec -it pod_name_here -- sh
    
  6. deploymentExample.yaml에 지정된 대로 디렉터리를 /data 탑재 경로로 변경합니다.

  7. 예를 들어, file1.txt라는 이름의 파일을 만들고 echo "Hello World" > file1.txt를 사용하여 이 파일에 씁니다.

이전 단계를 완료했다면 Azure Monitor 및 Kubernetes 모니터링 또는 Prometheus 및 Grafana를 통한 타사 모니터링을 사용하여 배포 모니터링을 시작합니다.

다음 단계

배포 모니터링