대체: 클라우드 수집 에지 볼륨에 대한 OneLake 구성
이 문서에서는 OneLake Lakehouses에 대한 클라우드 수집 에지 볼륨(로컬 제거를 통한 Blob 업로드)의 대체 구성에 대해 설명합니다.
확장 ID용 OneLake 구성
OneLake 작업 영역에 확장 ID 추가
- OneLake 포털로 이동합니다(예:
https://youraccount.powerbi.com
). - 작업 영역을 만들거나 작업 영역으로 이동합니다.
- 액세스 관리를 선택합니다.
- 사람 또는 그룹 추가를 선택합니다.
- Azure Arc 설치를 통해 사용하도록 설정된 Azure 컨테이너 스토리지에서 확장 이름을 입력합니다. 이 이름은 테넌트 내에서 고유해야 합니다.
- 권한에 대한 드롭다운을 시청자에서 기여자로 변경합니다.
- 추가를 선택합니다.
클라우드 수집 PVC(영구 볼륨 클레임) 만들기
다음 내용이 포함된
cloudIngestPVC.yaml
라는 파일을 만듭니다. 영구 볼륨 클레임의 이름으로metadata.name
값을 수정합니다. 이 이름은 다음 단계에 나오는deploymentExample.yaml
의 마지막 줄에서 참조됩니다. 또한 소비할 Pod로metadata.namespace
값을 업데이트해야 합니다. 소비할 Pod가 없으면metadata.namespace
값은default
입니다.참고 항목
소문자와 숫자만 사용할 수 있습니다. 자세한 내용은 Kubernetes 개체 명명 설명서를 참조하세요.
kind: PersistentVolumeClaim apiVersion: v1 metadata: ### Create a nane 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: cloud-backed-sc
cloudIngestPVC.yaml
을 적용하려면 다음을 실행합니다.kubectl apply -f "cloudIngestPVC.yaml"
에지 볼륨에 하위 볼륨 첨부
확장 ID를 사용하여 OneLake LakeHouse에 연결하는 하위 볼륨을 만들려면 다음 프로세스를 따르면 됩니다.
다음 명령을 사용하여 에지 볼륨의 이름을 가져옵니다.
kubectl get edgevolumes
edgeSubvolume.yaml
라는 파일을 만들고 다음 콘텐츠를 복사하여 붙여 넣습니다. 다음 변수는 사용자의 정보에 따라 업데이트되어야 합니다.참고 항목
소문자와 숫자만 사용할 수 있습니다. 자세한 내용은 Kubernetes 개체 명명 설명서를 참조하세요.
metadata.name
: 하위 볼륨의 이름을 만듭니다.spec.edgevolume
: 이 이름은kubectl get edgevolumes
를 사용하여 이전 단계에서 검색되었습니다.spec.path
: 탑재 경로 아래에 사용자 고유의 하위 디렉터리 이름을 만듭니다. 다음 예제에는 이미 예제 이름(exampleSubDir
)이 포함되어 있습니다. 이 경로 이름을 변경하면deploymentExample.yaml
의 33번째 줄을 새 경로 이름으로 업데이트해야 합니다. 경로 이름을 바꾸려면 앞에 슬래시를 사용하지 마세요.spec.container
: One Lake Data Lake Lakehouse의 세부 정보입니다(예:<WORKSPACE>/<DATA_LAKE>.Datalake/Files
).spec.storageaccountendpoint
: 스토리지 계정 엔드포인트는 Power BI 웹 링크의 접두사입니다. 예를 들어 OneLake 페이지가https://contoso-motors.powerbi.com/
인 경우 엔드포인트는https://contoso-motors.dfs.fabric.microsoft.com
입니다.
apiVersion: "arccontainerstorage.azure.net/v1" kind: EdgeSubvolume metadata: name: <create-a-subvolume-name-here> spec: edgevolume: <your-edge-volume-name-here> path: exampleSubDir # If you change this path, line 33 in deploymentExample.yaml must to be updated. Don't use a preceding slash. auth: authType: MANAGED_IDENTITY storageaccountendpoint: "https://<Your AZ Site>.dfs.fabric.microsoft.com/" # Your AZ site is the root of your Power BI OneLake interface URI, such as https://contoso-motors.powerbi.com container: "<WORKSPACE>/<DATA_LAKE>.Datalake/Files" # Details of your One Lake Data Lake Lakehouse ingestPolicy: edgeingestpolicy-default # Optional: See the following instructions if you want to update the ingestPolicy with your own configuration
edgeSubvolume.yaml
을 적용하려면 다음을 실행합니다.kubectl apply -f "edgeSubvolume.yaml"
선택 사항: 기본값에서 ingestPolicy
를 수정합니다.
기본값
edgeingestpolicy-default
에서ingestPolicy
를 변경하려면 다음 콘텐츠를 담은myedgeingest-policy.yaml
이라는 파일을 만듭니다. 다음 변수는 사용자의 기본 설정에 따라 업데이트되어야 합니다.참고 항목
소문자와 숫자만 사용할 수 있습니다. 자세한 내용은 Kubernetes 개체 명명 설명서를 참조하세요.
metadata.name
:ingestPolicy
의 이름을 만듭니다. 이 이름은edgeSubvolume.yaml
의spec.ingestPolicy
섹션에서 업데이트되고 참조되어야 합니다.spec.ingest.order
: 더티 파일이 업로드되는 순서입니다. 이는 최선의 노력일 뿐 보장은 아닙니다(기본값:oldest-first
). 순서에 대한 옵션은oldest-first
또는newest-first
입니다.spec.ingest.minDelaySec
: 더티 파일이 수집되기 전까지의 최소 시간(초)입니다(기본값은 60). 이 숫자의 범위는 0~31536000입니다.spec.eviction.order
: 파일이 제거되는 방법입니다(기본값:unordered
). 제거 순서에 대한 옵션은unordered
또는never
입니다.spec.eviction.minDelaySec
: 정리된 파일이 제거될 때까지의 시간(초)입니다(기본값은 300). 이 숫자의 범위는 0~31536000입니다.
apiVersion: arccontainerstorage.azure.net/v1 kind: EdgeIngestPolicy metadata: name: <create-a-policy-name-here> # This will need to be updated and referenced in the spec.ingestPolicy section of the edgeSubvolume.yaml spec: ingest: order: <your-ingest-order> minDelaySec: <your-min-delay-sec> eviction: order: <your-eviction-order> minDelaySec: <your-min-delay-sec>
myedgeingest-policy.yaml
을 적용하려면 다음을 실행합니다.kubectl apply -f "myedgeingest-policy.yaml"
앱(Kubernetes 네이티브 애플리케이션)을 첨부합니다
PVC(영구 볼륨 클레임)에 대해 제네릭 단일 Pod(Kubernetes 네이티브 애플리케이션)를 구성하려면 다음 내용이 포함된
deploymentExample.yaml
이라는 파일을 만듭니다.containers.name
및volumes.persistentVolumeClaim.claimName
값을 원하는 값으로 바꿉니다.edgeSubvolume.yaml
에서 경로 이름을 업데이트한 경우 33번째 줄의exampleSubDir
을 새 경로 이름으로 업데이트해야 합니다.참고 항목
소문자와 숫자만 사용할 수 있습니다. 자세한 내용은 Kubernetes 개체 명명 설명서를 참조하세요.
apiVersion: apps/v1 kind: Deployment metadata: name: cloudingestedgevol-deployment ### This must be unique for each deployment 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/azure-cli:2.57.0@sha256:c7c8a97f2dec87539983f9ded34cd40397986dcbed23ddbb5964a18edae9cd09 command: - "/bin/sh" - "-c" - "dd if=/dev/urandom of=/data/exampleSubDir/esaingesttestfile 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 is attached to the pod's filesystem ### mountPath: "/data" volumes: ### User-defined name that's 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 claimName: <your-pvc-metadata-name-from-line-5-of-pvc-yaml>
deploymentExample.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
탑재 경로로 변경합니다.에지 볼륨에 하위 볼륨 연결 섹션의 2단계에서
path
로 지정한 이름을 가진 디렉터리가 표시되어야 합니다. 이제cd
가/YOUR_PATH_NAME_HERE
가 되므로YOUR_PATH_NAME_HERE
를 사용자의 세부 정보로 바꿉니다.예를 들어,
file1.txt
라는 이름의 파일을 만들고echo "Hello World" > file1.txt
를 사용하여 이 파일에 씁니다.Azure Portal에서 스토리지 계정으로 이동하여 에지 볼륨에 하위 볼륨 연결의 2단계에서 지정된 컨테이너를 찾습니다. 컨테이너를 선택하면 컨테이너 내에
file1.txt
가 채워진 것을 확인할 수 있습니다. 파일이 아직 나타나지 않았다면, 약 1분 정도 기다립니다. 에지 볼륨은 업로드하기 전에 1분간 기다립니다.
다음 단계
이러한 단계를 완료한 후 Prometheus 및 Grafana와 함께 Azure Monitor 및 Kubernetes 모니터링 또는 타사 모니터링을 사용하여 배포 모니터링을 시작합니다.